You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by if...@apache.org on 2021/03/27 12:15:18 UTC
[rocketmq-client-cpp] branch re_dev updated: refactor: build.sh
This is an automated email from the ASF dual-hosted git repository.
ifplusor pushed a commit to branch re_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git
The following commit(s) were added to refs/heads/re_dev by this push:
new db0e209 refactor: build.sh
db0e209 is described below
commit db0e20972a78d70930acce5eaff1456408b72c73
Author: James Yin <yw...@hotmail.com>
AuthorDate: Sat Mar 27 20:12:35 2021 +0800
refactor: build.sh
---
build.sh | 211 ++++++++++++++++++++++++++-------------------------------------
1 file changed, 88 insertions(+), 123 deletions(-)
diff --git a/build.sh b/build.sh
index ee1cbfa..9d7967b 100755
--- a/build.sh
+++ b/build.sh
@@ -18,19 +18,20 @@
set -e
basepath=$(
- cd $(dirname $0)
+ cd $(dirname "$0")
pwd
)
down_dir="${basepath}/tmp_down_dir"
build_dir="${basepath}/tmp_build_dir"
-packet_dir="${basepath}/tmp_packet_dir"
install_lib_dir="${basepath}/bin"
fname_spdlog="spdlog*.zip"
fname_libevent="libevent*.zip"
fname_jsoncpp="jsoncpp*.zip"
+fname_gtest="googletest*.tar.gz"
fname_spdlog_down="v1.5.0.zip"
fname_libevent_down="release-2.1.11-stable.zip"
fname_jsoncpp_down="0.10.6.zip"
+fname_gtest_down="release-1.10.0.tar.gz"
PrintParams() {
echo "=========================================one key build help============================================"
@@ -73,7 +74,7 @@ pasres_arguments() {
done
}
-pasres_arguments $@
+pasres_arguments "$@"
PrintParams() {
echo "###########################################################################"
@@ -117,42 +118,40 @@ PrintParams() {
}
Prepare() {
- if [ -e ${down_dir} ]; then
+ cd "${basepath}"
+
+ if [ -e "${down_dir}" ]; then
echo "${down_dir} is exist"
else
- mkdir -p ${down_dir}
+ mkdir -p "${down_dir}"
fi
- cd ${basepath}
-
if [ -e ${fname_spdlog} ]; then
- mv -f ${basepath}/${fname_spdlog} ${down_dir}
+ mv -f ${basepath}/${fname_spdlog} "${down_dir}"
fi
if [ -e ${fname_libevent} ]; then
- mv -f ${basepath}/${fname_libevent} ${down_dir}
+ mv -f ${basepath}/${fname_libevent} "${down_dir}"
fi
if [ -e ${fname_jsoncpp} ]; then
- mv -f ${basepath}/${fname_jsoncpp} ${down_dir}
+ mv -f ${basepath}/${fname_jsoncpp} "${down_dir}"
fi
-
- if [ -e ${build_dir} ]; then
- echo "${build_dir} is exist"
- else
- mkdir -p ${build_dir}
+
+ if [ -e ${fname_gtest} ]; then
+ mv -f ${basepath}/${fname_gtest} "${down_dir}"
fi
- if [ -e ${packet_dir} ]; then
- echo "${packet_dir} is exist"
+ if [ -e "${build_dir}" ]; then
+ echo "${build_dir} is exist"
else
- mkdir -p ${packet_dir}
+ mkdir -p "${build_dir}"
fi
- if [ -e ${install_lib_dir} ]; then
+ if [ -e "${install_lib_dir}" ]; then
echo "${install_lib_dir} is exist"
else
- mkdir -p ${install_lib_dir}
+ mkdir -p "${install_lib_dir}"
fi
}
@@ -162,20 +161,21 @@ BuildSpdlog() {
return 0
fi
- cd ${down_dir}
- if [ -e ${fname_spdlog} ]; then
+ if [ -d "${basepath}/bin/include/spdlog" ]; then
+ echo "spdlog already exist no need build test"
+ return 0
+ fi
+
+ if [ -e ${down_dir}/${fname_spdlog} ]; then
echo "${fname_spdlog} is exist"
else
- wget https://github.com/gabime/spdlog/archive/${fname_spdlog_down} -O spdlog-${fname_spdlog_down}
- fi
- unzip -o ${fname_spdlog} >unzipspdlog.txt 2>&1
- if [ $? -ne 0 ]; then
- exit 1
+ wget "https://github.com/gabime/spdlog/archive/${fname_spdlog_down}" -O "${down_dir}/spdlog-${fname_spdlog_down}"
fi
+ unzip -o ${down_dir}/${fname_spdlog} -d "${down_dir}" > "${down_dir}/unzipspdlog.txt" 2>&1
+
+ spdlog_dir=$(ls -d ${down_dir}/spdlog* | grep -v zip)
- spdlog_dir=$(ls | grep spdlog | grep .*[^zip]$)
- cd ${spdlog_dir}
- cp -r include ${install_lib_dir}
+ cp -r "${spdlog_dir}/include" "${install_lib_dir}"
echo "build spdlog success."
}
@@ -186,45 +186,37 @@ BuildLibevent() {
return 0
fi
- cd ${down_dir}
- if [ -e ${fname_libevent} ]; then
+ if [ -d "${basepath}/bin/include/event2" ]; then
+ echo "spdlog already exist no need build test"
+ return 0
+ fi
+
+ if [ -e ${down_dir}/${fname_libevent} ]; then
echo "${fname_libevent} is exist"
else
- wget https://github.com/libevent/libevent/archive/${fname_libevent_down} -O libevent-${fname_libevent_down}
- fi
- unzip -o ${fname_libevent} >unziplibevent.txt 2>&1
- if [ $? -ne 0 ]; then
- exit 1
+ wget "https://github.com/libevent/libevent/archive/${fname_libevent_down}" -O "${down_dir}/libevent-${fname_libevent_down}"
fi
+ unzip -o ${down_dir}/${fname_libevent} -d "${down_dir}" > "${down_dir}/unziplibevent.txt" 2>&1
+
+ libevent_dir=$(ls -d ${down_dir}/libevent* | grep -v zip)
- libevent_dir=$(ls | grep libevent | grep .*[^zip]$)
- cd ${libevent_dir}
- if [ $? -ne 0 ]; then
- exit 1
- fi
- ./autogen.sh
- if [ $? -ne 0 ]; then
- exit 1
- fi
echo "build libevent static #####################"
+ pushd "${libevent_dir}"
+ ./autogen.sh
if [ $verbose -eq 0 ]; then
- ./configure --disable-openssl --enable-static=yes --enable-shared=no CFLAGS=-fPIC CPPFLAGS=-fPIC --prefix=${install_lib_dir} >libeventconfig.txt 2>&1
+ ./configure --disable-openssl --enable-static=yes --enable-shared=no CFLAGS=-fPIC CPPFLAGS=-fPIC --prefix="${install_lib_dir}" >libeventconfig.txt 2>&1
else
- ./configure --disable-openssl --enable-static=yes --enable-shared=no CFLAGS=-fPIC CPPFLAGS=-fPIC --prefix=${install_lib_dir}
- fi
- if [ $? -ne 0 ]; then
- exit 1
+ ./configure --disable-openssl --enable-static=yes --enable-shared=no CFLAGS=-fPIC CPPFLAGS=-fPIC --prefix="${install_lib_dir}"
fi
if [ $verbose -eq 0 ]; then
echo "build libevent without detail log."
- make -j $cpu_num >libeventbuild.txt 2>&1
+ make -j $cpu_num > "${down_dir}/libeventbuild.txt" 2>&1
else
make -j $cpu_num
fi
- if [ $? -ne 0 ]; then
- exit 1
- fi
make install
+ popd
+
echo "build libevent success."
}
@@ -234,73 +226,59 @@ BuildJsonCPP() {
return 0
fi
- cd ${down_dir}
+ if [ -d "${basepath}/bin/include/jsoncpp" ]; then
+ echo "jsoncpp already exist no need build test"
+ return 0
+ fi
- if [ -e ${fname_jsoncpp} ]; then
+ if [ -e ${down_dir}/${fname_jsoncpp} ]; then
echo "${fname_jsoncpp} is exist"
else
- wget https://github.com/open-source-parsers/jsoncpp/archive/${fname_jsoncpp_down} -O jsoncpp-${fname_jsoncpp_down}
+ wget "https://github.com/open-source-parsers/jsoncpp/archive/${fname_jsoncpp_down}" -O "${down_dir}/jsoncpp-${fname_jsoncpp_down}"
fi
- unzip -o ${fname_jsoncpp} >unzipjsoncpp.txt 2>&1
- if [ $? -ne 0 ]; then
- exit 1
- fi
- jsoncpp_dir=$(ls | grep ^jsoncpp | grep .*[^zip]$)
- cd ${jsoncpp_dir}
- if [ $? -ne 0 ]; then
- exit 1
- fi
- mkdir build
- cd build
+ unzip -o ${down_dir}/${fname_jsoncpp} -d "${down_dir}" > "${down_dir}/unzipjsoncpp.txt" 2>&1
+
+ jsoncpp_dir=$(ls -d ${down_dir}/jsoncpp* | grep -v zip)
+
echo "build jsoncpp static ######################"
if [ $verbose -eq 0 ]; then
echo "build jsoncpp without detail log."
- cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir} >jsoncppbuild.txt 2>&1
+ cmake -S "${jsoncpp_dir}" -B "${jsoncpp_dir}/build" -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${install_lib_dir}" >jsoncppbuild.txt 2>&1
else
- cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir}
- fi
- if [ $? -ne 0 ]; then
- exit 1
+ cmake -S "${jsoncpp_dir}" -B "${jsoncpp_dir}/build" -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${install_lib_dir}"
fi
if [ $verbose -eq 0 ]; then
- make -j $cpu_num >jsoncppbuild.txt 2>&1
+ cmake --build "${jsoncpp_dir}/build" -j $cpu_num > "${down_dir}/jsoncppbuild.txt" 2>&1
else
- make -j $cpu_num
+ cmake --build "${jsoncpp_dir}/build" -j $cpu_num
fi
- if [ $? -ne 0 ]; then
- exit 1
- fi
- make install
- echo "build jsoncpp success."
- if [ ! -f ${install_lib_dir}/lib/libjsoncpp.a ]; then
+ cmake --install "${jsoncpp_dir}/build"
+ if [ ! -f "${install_lib_dir}/lib/libjsoncpp.a" ]; then
echo " ./bin/lib directory is not libjsoncpp.a"
- cp ${install_lib_dir}/lib/x86_64-linux-gnu/libjsoncpp.a ${install_lib_dir}/lib/
+ cp "${install_lib_dir}/lib/x86_64-linux-gnu/libjsoncpp.a" "${install_lib_dir}/lib/"
fi
+
+ echo "build jsoncpp success."
}
BuildRocketMQClient() {
- cd ${build_dir}
echo "============start to build rocketmq client cpp.========="
if [ $test -eq 0 ]; then
- cmake -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF ..
+ cmake -S "${basepath}" -B "${build_dir}" -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF
else
if [ $codecov -eq 1 ]; then
- cmake .. -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF -DRUN_UNIT_TEST=ON -DCODE_COVERAGE=ON
+ cmake -S "${basepath}" -B "${build_dir}" -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF -DRUN_UNIT_TEST=ON -DCODE_COVERAGE=ON
else
- cmake .. -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF -DRUN_UNIT_TEST=ON
+ cmake -S "${basepath}" -B "${build_dir}" -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF -DRUN_UNIT_TEST=ON
fi
fi
if [ $verbose -eq 0 ]; then
echo "build rocketmq without detail log."
- make -j $cpu_num >buildclient.txt 2>&1
+ cmake --build "${build_dir}" -j $cpu_num > "${build_dir}/buildclient.txt" 2>&1
else
- make -j $cpu_num
+ cmake --build "${build_dir}" -j $cpu_num
fi
- if [ $? -ne 0 ]; then
- echo "build error....."
- exit 1
- fi
- #sudo make install
+ #sudo cmake --install "${build_dir}"
}
BuildGoogleTest() {
@@ -309,46 +287,37 @@ BuildGoogleTest() {
return 0
fi
- if [ -f ./bin/lib/libgtest.a ]; then
+ if [ -f "${install_lib_dir}/lib/libgtest.a" ]; then
echo "libgtest already exist no need build test"
return 0
fi
- cd ${down_dir}
- if [ -e release-1.10.0.tar.gz ]; then
- echo "${fname_boost} is exist"
+ if [ -e ${down_dir}/${fname_gtest} ]; then
+ echo "${fname_gtest} is exist"
else
- wget https://github.com/abseil/googletest/archive/release-1.10.0.tar.gz
- fi
- if [ ! -d "googletest-release-1.10.0" ]; then
- tar -zxvf release-1.10.0.tar.gz >googletest.txt 2>&1
+ wget "https://github.com/abseil/googletest/archive/${fname_gtest_down}" -O "${down_dir}/googletest-${fname_gtest_down}"
fi
- cd googletest-release-1.10.0
- mkdir build
- cd build
+ tar -zxvf ${down_dir}/${fname_gtest} -C "${down_dir}" > "${down_dir}/unzipgtest.txt" 2>&1
+
+ gtest_dir=$(ls -d ${down_dir}/googletest* | grep -v tar)
+
echo "build googletest static #####################"
if [ $verbose -eq 0 ]; then
echo "build googletest without detail log."
- cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir} >googletestbuild.txt 2>&1
+ cmake -S "${gtest_dir}" -B "${gtest_dir}/build" -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${install_lib_dir}" > "${down_dir}/googletestbuild.txt" 2>&1
else
- cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir}
- fi
- if [ $? -ne 0 ]; then
- exit 1
+ cmake -S "${gtest_dir}" -B "${gtest_dir}/build" -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${install_lib_dir}"
fi
if [ $verbose -eq 0 ]; then
- make -j $cpu_num >gtestbuild.txt 2>&1
+ cmake --build "${gtest_dir}/build" -j $cpu_num > "${down_dir}/gtestbuild.txt" 2>&1
else
- make -j $cpu_num
+ cmake --build "${gtest_dir}/build" -j $cpu_num
fi
- if [ $? -ne 0 ]; then
- exit 1
- fi
- make install
+ cmake --install "${gtest_dir}/build"
- if [ ! -f ${install_lib_dir}/lib/libgtest.a ]; then
+ if [ ! -f "${install_lib_dir}/lib/libgtest.a" ]; then
echo " ./bin/lib directory is not libgtest.a"
- cp ${install_lib_dir}/lib64/lib* ${install_lib_dir}/lib
+ cp ${install_lib_dir}/lib64/lib* "${install_lib_dir}/lib"
fi
}
@@ -358,16 +327,12 @@ ExecutionTesting() {
return 0
fi
echo "############# unit test start ###########"
- cd ${build_dir}
+ cd "${build_dir}"
if [ $verbose -eq 0 ]; then
ctest
else
ctest -V
fi
- if [ $? -ne 0 ]; then
- echo "############# unit test failed ###########"
- exit 1
- fi
echo "############# unit test finish ###########"
}