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/28 01:30:28 UTC
[rocketmq-client-cpp] branch re_dev updated: fix: compatible with
the old version of cmake
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 fcecc8d fix: compatible with the old version of cmake
fcecc8d is described below
commit fcecc8dba97972d4c934b00cadc97a07406b563d
Author: James Yin <yw...@hotmail.com>
AuthorDate: Sun Mar 28 09:30:02 2021 +0800
fix: compatible with the old version of cmake
---
build.sh => build.compatible.sh | 167 +++++++++++++++++++---------------------
build.sh | 32 +++++---
2 files changed, 101 insertions(+), 98 deletions(-)
diff --git a/build.sh b/build.compatible.sh
similarity index 53%
copy from build.sh
copy to build.compatible.sh
index 9d7967b..4427f26 100755
--- a/build.sh
+++ b/build.compatible.sh
@@ -18,20 +18,19 @@
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============================================"
@@ -74,7 +73,7 @@ pasres_arguments() {
done
}
-pasres_arguments "$@"
+pasres_arguments $@
PrintParams() {
echo "###########################################################################"
@@ -118,40 +117,42 @@ PrintParams() {
}
Prepare() {
- cd "${basepath}"
-
- if [ -e "${down_dir}" ]; then
+ 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}"
- fi
-
- if [ -e ${fname_gtest} ]; then
- mv -f ${basepath}/${fname_gtest} "${down_dir}"
+ mv -f ${basepath}/${fname_jsoncpp} ${down_dir}
fi
- if [ -e "${build_dir}" ]; then
+ if [ -e ${build_dir} ]; then
echo "${build_dir} is exist"
else
- mkdir -p "${build_dir}"
+ mkdir -p ${build_dir}
fi
- if [ -e "${install_lib_dir}" ]; then
+ if [ -e ${packet_dir} ]; then
+ echo "${packet_dir} is exist"
+ else
+ mkdir -p ${packet_dir}
+ fi
+
+ if [ -e ${install_lib_dir} ]; then
echo "${install_lib_dir} is exist"
else
- mkdir -p "${install_lib_dir}"
+ mkdir -p ${install_lib_dir}
fi
}
@@ -161,21 +162,17 @@ BuildSpdlog() {
return 0
fi
- 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
+ cd ${down_dir}
+ if [ -e ${fname_spdlog} ]; then
echo "${fname_spdlog} is exist"
else
- wget "https://github.com/gabime/spdlog/archive/${fname_spdlog_down}" -O "${down_dir}/spdlog-${fname_spdlog_down}"
+ wget https://github.com/gabime/spdlog/archive/${fname_spdlog_down} -O 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)
+ unzip -o ${fname_spdlog} >unzipspdlog.txt 2>&1
- cp -r "${spdlog_dir}/include" "${install_lib_dir}"
+ spdlog_dir=$(ls | grep spdlog | grep .*[^zip]$)
+ cd ${spdlog_dir}
+ cp -r include ${install_lib_dir}
echo "build spdlog success."
}
@@ -186,37 +183,30 @@ BuildLibevent() {
return 0
fi
- 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
+ cd ${down_dir}
+ if [ -e ${fname_libevent} ]; then
echo "${fname_libevent} is exist"
else
- wget "https://github.com/libevent/libevent/archive/${fname_libevent_down}" -O "${down_dir}/libevent-${fname_libevent_down}"
+ wget https://github.com/libevent/libevent/archive/${fname_libevent_down} -O 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)
+ unzip -o ${fname_libevent} >unziplibevent.txt 2>&1
- echo "build libevent static #####################"
- pushd "${libevent_dir}"
+ libevent_dir=$(ls | grep libevent | grep .*[^zip]$)
+ cd ${libevent_dir}
./autogen.sh
+ echo "build libevent static #####################"
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}"
+ ./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 > "${down_dir}/libeventbuild.txt" 2>&1
+ make -j $cpu_num >libeventbuild.txt 2>&1
else
make -j $cpu_num
fi
make install
- popd
-
echo "build libevent success."
}
@@ -226,59 +216,57 @@ BuildJsonCPP() {
return 0
fi
- if [ -d "${basepath}/bin/include/jsoncpp" ]; then
- echo "jsoncpp already exist no need build test"
- return 0
- fi
+ cd ${down_dir}
- if [ -e ${down_dir}/${fname_jsoncpp} ]; then
+ if [ -e ${fname_jsoncpp} ]; then
echo "${fname_jsoncpp} is exist"
else
- wget "https://github.com/open-source-parsers/jsoncpp/archive/${fname_jsoncpp_down}" -O "${down_dir}/jsoncpp-${fname_jsoncpp_down}"
+ wget https://github.com/open-source-parsers/jsoncpp/archive/${fname_jsoncpp_down} -O jsoncpp-${fname_jsoncpp_down}
fi
- 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)
-
+ unzip -o ${fname_jsoncpp} >unzipjsoncpp.txt 2>&1
+ jsoncpp_dir=$(ls | grep ^jsoncpp | grep .*[^zip]$)
+ cd ${jsoncpp_dir}
+ mkdir build
+ cd build
echo "build jsoncpp static ######################"
if [ $verbose -eq 0 ]; then
echo "build jsoncpp without detail log."
- 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
+ cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir} >jsoncppbuild.txt 2>&1
else
- 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}"
+ cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir}
fi
if [ $verbose -eq 0 ]; then
- cmake --build "${jsoncpp_dir}/build" -j $cpu_num > "${down_dir}/jsoncppbuild.txt" 2>&1
+ make -j $cpu_num >jsoncppbuild.txt 2>&1
else
- cmake --build "${jsoncpp_dir}/build" -j $cpu_num
+ make -j $cpu_num
fi
- cmake --install "${jsoncpp_dir}/build"
- if [ ! -f "${install_lib_dir}/lib/libjsoncpp.a" ]; then
+ make install
+ echo "build jsoncpp success."
+ 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 -S "${basepath}" -B "${build_dir}" -DLibevent_USE_STATIC_LIBS=ON -DJSONCPP_USE_STATIC_LIBS=ON -DBUILD_ROCKETMQ_STATIC=ON -DBUILD_ROCKETMQ_SHARED=OFF
+ cmake -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 -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
+ 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
else
- 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
+ cmake .. -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."
- cmake --build "${build_dir}" -j $cpu_num > "${build_dir}/buildclient.txt" 2>&1
+ make -j $cpu_num >buildclient.txt 2>&1
else
- cmake --build "${build_dir}" -j $cpu_num
+ make -j $cpu_num
fi
- #sudo cmake --install "${build_dir}"
+ #sudo make install
}
BuildGoogleTest() {
@@ -287,37 +275,40 @@ BuildGoogleTest() {
return 0
fi
- if [ -f "${install_lib_dir}/lib/libgtest.a" ]; then
+ if [ -f ./bin/lib/libgtest.a ]; then
echo "libgtest already exist no need build test"
return 0
fi
- if [ -e ${down_dir}/${fname_gtest} ]; then
- echo "${fname_gtest} is exist"
+ cd ${down_dir}
+ if [ -e release-1.10.0.tar.gz ]; then
+ echo "${fname_boost} is exist"
else
- wget "https://github.com/abseil/googletest/archive/${fname_gtest_down}" -O "${down_dir}/googletest-${fname_gtest_down}"
+ wget https://github.com/abseil/googletest/archive/release-1.10.0.tar.gz
fi
- 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)
-
+ if [ ! -d "googletest-release-1.10.0" ]; then
+ tar -zxvf release-1.10.0.tar.gz >googletest.txt 2>&1
+ fi
+ cd googletest-release-1.10.0
+ mkdir build
+ cd build
echo "build googletest static #####################"
if [ $verbose -eq 0 ]; then
echo "build googletest without detail log."
- 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
+ cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir} >googletestbuild.txt 2>&1
else
- 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}"
+ cmake .. -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${install_lib_dir}
fi
if [ $verbose -eq 0 ]; then
- cmake --build "${gtest_dir}/build" -j $cpu_num > "${down_dir}/gtestbuild.txt" 2>&1
+ make -j $cpu_num >gtestbuild.txt 2>&1
else
- cmake --build "${gtest_dir}/build" -j $cpu_num
+ make -j $cpu_num
fi
- cmake --install "${gtest_dir}/build"
+ make install
- 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
}
@@ -327,7 +318,7 @@ ExecutionTesting() {
return 0
fi
echo "############# unit test start ###########"
- cd "${build_dir}"
+ cd ${build_dir}
if [ $verbose -eq 0 ]; then
ctest
else
diff --git a/build.sh b/build.sh
index 9d7967b..ed7a1cb 100755
--- a/build.sh
+++ b/build.sh
@@ -21,6 +21,18 @@ basepath=$(
cd $(dirname "$0")
pwd
)
+
+function version_lt() {
+ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$2"
+}
+
+cmake_version=$(cmake --version | head -n 1 | awk '{ print $3; }')
+if version_lt "${cmake_version}" "3.15"; then
+ # shellcheck source=build.compatible.sh
+ "${basepath}/build.compatible.sh"
+ exit 0
+fi
+
down_dir="${basepath}/tmp_down_dir"
build_dir="${basepath}/tmp_build_dir"
install_lib_dir="${basepath}/bin"
@@ -137,7 +149,7 @@ Prepare() {
if [ -e ${fname_jsoncpp} ]; then
mv -f ${basepath}/${fname_jsoncpp} "${down_dir}"
fi
-
+
if [ -e ${fname_gtest} ]; then
mv -f ${basepath}/${fname_gtest} "${down_dir}"
fi
@@ -171,7 +183,7 @@ BuildSpdlog() {
else
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
+ 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)
@@ -196,7 +208,7 @@ BuildLibevent() {
else
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
+ 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)
@@ -210,7 +222,7 @@ BuildLibevent() {
fi
if [ $verbose -eq 0 ]; then
echo "build libevent without detail log."
- make -j $cpu_num > "${down_dir}/libeventbuild.txt" 2>&1
+ make -j $cpu_num >"${down_dir}/libeventbuild.txt" 2>&1
else
make -j $cpu_num
fi
@@ -236,7 +248,7 @@ BuildJsonCPP() {
else
wget "https://github.com/open-source-parsers/jsoncpp/archive/${fname_jsoncpp_down}" -O "${down_dir}/jsoncpp-${fname_jsoncpp_down}"
fi
- unzip -o ${down_dir}/${fname_jsoncpp} -d "${down_dir}" > "${down_dir}/unzipjsoncpp.txt" 2>&1
+ 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)
@@ -248,7 +260,7 @@ BuildJsonCPP() {
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
- cmake --build "${jsoncpp_dir}/build" -j $cpu_num > "${down_dir}/jsoncppbuild.txt" 2>&1
+ cmake --build "${jsoncpp_dir}/build" -j $cpu_num >"${down_dir}/jsoncppbuild.txt" 2>&1
else
cmake --build "${jsoncpp_dir}/build" -j $cpu_num
fi
@@ -274,7 +286,7 @@ BuildRocketMQClient() {
fi
if [ $verbose -eq 0 ]; then
echo "build rocketmq without detail log."
- cmake --build "${build_dir}" -j $cpu_num > "${build_dir}/buildclient.txt" 2>&1
+ cmake --build "${build_dir}" -j $cpu_num >"${build_dir}/buildclient.txt" 2>&1
else
cmake --build "${build_dir}" -j $cpu_num
fi
@@ -297,19 +309,19 @@ BuildGoogleTest() {
else
wget "https://github.com/abseil/googletest/archive/${fname_gtest_down}" -O "${down_dir}/googletest-${fname_gtest_down}"
fi
- tar -zxvf ${down_dir}/${fname_gtest} -C "${down_dir}" > "${down_dir}/unzipgtest.txt" 2>&1
+ 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 -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
+ 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 -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
- cmake --build "${gtest_dir}/build" -j $cpu_num > "${down_dir}/gtestbuild.txt" 2>&1
+ cmake --build "${gtest_dir}/build" -j $cpu_num >"${down_dir}/gtestbuild.txt" 2>&1
else
cmake --build "${gtest_dir}/build" -j $cpu_num
fi