533 lines
14 KiB
Bash
533 lines
14 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||
|
|
# contributor license agreements. See the NOTICE file distributed with
|
||
|
|
# this work for additional information regarding copyright ownership.
|
||
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||
|
|
# (the "License"); you may not use this file except in compliance with
|
||
|
|
# the License. You may obtain a copy of the License at
|
||
|
|
#
|
||
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
#
|
||
|
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
# See the License for the specific language governing permissions and
|
||
|
|
# limitations under the License.
|
||
|
|
|
||
|
|
basepath=$(
|
||
|
|
cd $(dirname $0)
|
||
|
|
pwd
|
||
|
|
)
|
||
|
|
declare down_dir="${basepath}/tmp_down_dir"
|
||
|
|
declare build_dir="${basepath}/tmp_build_dir"
|
||
|
|
declare packet_dir="${basepath}/tmp_packet_dir"
|
||
|
|
declare install_lib_dir="${basepath}/bin"
|
||
|
|
declare static_package_dir="${basepath}/tmp_static_package_dir"
|
||
|
|
declare fname_openssl="openssl*.tar.gz"
|
||
|
|
|
||
|
|
declare fname_libevent="libevent*.zip"
|
||
|
|
declare fname_jsoncpp="jsoncpp*.zip"
|
||
|
|
declare fname_boost="boost*.tar.gz"
|
||
|
|
declare fname_openssl_down="openssl-1.1.1d.tar.gz"
|
||
|
|
declare fname_libevent_down="release-2.1.11-stable.zip"
|
||
|
|
declare fname_jsoncpp_down="0.10.7.zip"
|
||
|
|
declare fname_boost_down="1.58.0/boost_1_58_0.tar.gz"
|
||
|
|
|
||
|
|
PrintParams() {
|
||
|
|
echo "=========================================one key build help============================================"
|
||
|
|
echo "sh build.sh [no build libevent:noEvent] [no build json:noJson] [no build boost:noBoost] [ execution test:test]"
|
||
|
|
echo "usage: sh build.sh noJson noEvent noBoost test"
|
||
|
|
echo "=========================================one key build help============================================"
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
if test "$(uname)" = "Linux"; then
|
||
|
|
declare cpu_num=$(cat /proc/cpuinfo | grep "processor" | wc -l)
|
||
|
|
elif test "$(uname)" = "Darwin" ; then
|
||
|
|
declare cpu_num=$(sysctl -n machdep.cpu.thread_count)
|
||
|
|
fi
|
||
|
|
|
||
|
|
declare need_build_openssl=1
|
||
|
|
declare need_build_libevent=1
|
||
|
|
declare need_build_jsoncpp=1
|
||
|
|
declare need_build_boost=1
|
||
|
|
declare enable_asan=0
|
||
|
|
declare enable_lsan=0
|
||
|
|
declare verbose=1
|
||
|
|
declare codecov=0
|
||
|
|
declare debug=0
|
||
|
|
declare test=0
|
||
|
|
|
||
|
|
pasres_arguments() {
|
||
|
|
for var in "$@"; do
|
||
|
|
case "$var" in
|
||
|
|
noOpenSSL)
|
||
|
|
need_build_openssl=0
|
||
|
|
;;
|
||
|
|
noEvent)
|
||
|
|
need_build_libevent=0
|
||
|
|
;;
|
||
|
|
noJson)
|
||
|
|
need_build_jsoncpp=0
|
||
|
|
;;
|
||
|
|
noBoost)
|
||
|
|
need_build_boost=0
|
||
|
|
;;
|
||
|
|
asan)
|
||
|
|
enable_asan=1
|
||
|
|
;;
|
||
|
|
lsan)
|
||
|
|
enable_lsan=1
|
||
|
|
;;
|
||
|
|
noVerbose)
|
||
|
|
verbose=0
|
||
|
|
;;
|
||
|
|
codecov)
|
||
|
|
codecov=1
|
||
|
|
;;
|
||
|
|
debug)
|
||
|
|
debug=1
|
||
|
|
;;
|
||
|
|
test)
|
||
|
|
test=1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
}
|
||
|
|
pasres_arguments $@
|
||
|
|
|
||
|
|
PrintParams() {
|
||
|
|
echo "###########################################################################"
|
||
|
|
if [ $need_build_openssl -eq 0 ]; then
|
||
|
|
echo "no need build openssl lib"
|
||
|
|
else
|
||
|
|
echo "need build openssl lib"
|
||
|
|
fi
|
||
|
|
if [ $need_build_jsoncpp -eq 0 ]; then
|
||
|
|
echo "no need build jsoncpp lib"
|
||
|
|
else
|
||
|
|
echo "need build jsoncpp lib"
|
||
|
|
fi
|
||
|
|
if [ $need_build_libevent -eq 0 ]; then
|
||
|
|
echo "no need build libevent lib"
|
||
|
|
else
|
||
|
|
echo "need build libevent lib"
|
||
|
|
fi
|
||
|
|
if [ $need_build_boost -eq 0 ]; then
|
||
|
|
echo "no need build boost lib"
|
||
|
|
else
|
||
|
|
echo "need build boost lib"
|
||
|
|
fi
|
||
|
|
if [ $enable_asan -eq 1 ]; then
|
||
|
|
echo "enable asan reporting"
|
||
|
|
else
|
||
|
|
echo "disable asan reporting"
|
||
|
|
fi
|
||
|
|
if [ $enable_lsan -eq 1 ]; then
|
||
|
|
echo "enable lsan reporting"
|
||
|
|
else
|
||
|
|
echo "disable lsan reporting"
|
||
|
|
fi
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
echo "no need print detail logs"
|
||
|
|
else
|
||
|
|
echo "need print detail logs"
|
||
|
|
fi
|
||
|
|
if [ $codecov -eq 1 ]; then
|
||
|
|
echo "run unit tests with code coverage"
|
||
|
|
else
|
||
|
|
echo "run unit tests without code coverage"
|
||
|
|
fi
|
||
|
|
if [ $debug -eq 1 ]; then
|
||
|
|
echo "enable debug"
|
||
|
|
else
|
||
|
|
echo "disable debug"
|
||
|
|
fi
|
||
|
|
if [ $test -eq 1 ]; then
|
||
|
|
echo "build unit tests"
|
||
|
|
else
|
||
|
|
echo "without build unit tests"
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "###########################################################################"
|
||
|
|
echo ""
|
||
|
|
}
|
||
|
|
|
||
|
|
Prepare() {
|
||
|
|
if [ -e ${down_dir} ]; then
|
||
|
|
echo "${down_dir} is exist"
|
||
|
|
#cd ${down_dir}
|
||
|
|
#ls |grep -v ${fname_libevent} |grep -v ${fname_jsoncpp} | grep -v ${fname_boost} |xargs rm -rf
|
||
|
|
else
|
||
|
|
mkdir -p ${down_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ${basepath}
|
||
|
|
if [ -e ${fname_openssl} ]; then
|
||
|
|
mv -f ${basepath}/${fname_openssl} ${down_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -e ${fname_libevent} ]; then
|
||
|
|
mv -f ${basepath}/${fname_libevent} ${down_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -e ${fname_jsoncpp} ]; then
|
||
|
|
mv -f ${basepath}/${fname_jsoncpp} ${down_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -e ${fname_boost} ]; then
|
||
|
|
mv -f ${basepath}/${fname_boost} ${down_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -e ${build_dir} ]; then
|
||
|
|
echo "${build_dir} is exist"
|
||
|
|
#rm -rf ${build_dir}/*
|
||
|
|
else
|
||
|
|
mkdir -p ${build_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -e ${packet_dir} ]; then
|
||
|
|
echo "${packet_dir} is exist"
|
||
|
|
#rm -rf ${packet_dir}/*
|
||
|
|
else
|
||
|
|
mkdir -p ${packet_dir}
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -e ${install_lib_dir} ]; then
|
||
|
|
echo "${install_lib_dir} is exist"
|
||
|
|
else
|
||
|
|
mkdir -p ${install_lib_dir}
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
BuildOpenSSL() {
|
||
|
|
if [ $need_build_openssl -eq 0 ]; then
|
||
|
|
echo "no need build openssl lib"
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ${down_dir}
|
||
|
|
if [ -e ${fname_openssl} ]; then
|
||
|
|
echo "${fname_openssl} is exist"
|
||
|
|
else
|
||
|
|
wget https://www.openssl.org/source/old/1.1.1/${fname_openssl_down} -O ${fname_openssl_down}
|
||
|
|
fi
|
||
|
|
tar -zxvf ${fname_openssl} &> unzipopenssl.txt
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
openssl_dir=$(ls | grep ^openssl | grep .*[^gz]$)
|
||
|
|
cd ${openssl_dir}
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo "build openssl static #####################"
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
./config shared CFLAGS=-fPIC CPPFLAGS=-fPIC --prefix=${install_lib_dir} --openssldir=${install_lib_dir} &> opensslconfig.txt
|
||
|
|
else
|
||
|
|
./config shared CFLAGS=-fPIC CPPFLAGS=-fPIC --prefix=${install_lib_dir} --openssldir=${install_lib_dir}
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
echo "build openssl without detail log."
|
||
|
|
make depend &> opensslbuild.txt
|
||
|
|
make -j $cpu_num &> opensslbuild.txt
|
||
|
|
else
|
||
|
|
make depend
|
||
|
|
make -j $cpu_num
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
make install
|
||
|
|
echo "build openssl success."
|
||
|
|
}
|
||
|
|
|
||
|
|
BuildLibevent() {
|
||
|
|
if [ $need_build_libevent -eq 0 ]; then
|
||
|
|
echo "no need build libevent lib"
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
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 libevent-${fname_libevent_down}
|
||
|
|
fi
|
||
|
|
unzip -o ${fname_libevent} &> unziplibevent.txt
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
libevent_dir=$(ls | grep ^libevent | grep .*[^zip^txt]$)
|
||
|
|
cd ${libevent_dir}
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
./autogen.sh
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo "build libevent static #####################"
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
./configure --enable-static=yes --enable-shared=no CFLAGS="-fPIC -I${install_lib_dir}/include" CPPFLAGS="-fPIC -I${install_lib_dir}/include" LDFLAGS="-L${install_lib_dir}/lib" --prefix=${install_lib_dir} &> libeventconfig.txt
|
||
|
|
else
|
||
|
|
./configure --enable-static=yes --enable-shared=no CFLAGS="-fPIC -I${install_lib_dir}/include" CPPFLAGS="-fPIC -I${install_lib_dir}/include" LDFLAGS="-L${install_lib_dir}/lib" --prefix=${install_lib_dir}
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
echo "build libevent without detail log."
|
||
|
|
make -j $cpu_num &> libeventbuild.txt
|
||
|
|
else
|
||
|
|
make -j $cpu_num
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
make install
|
||
|
|
echo "build linevent success."
|
||
|
|
}
|
||
|
|
|
||
|
|
BuildJsonCPP() {
|
||
|
|
if [ $need_build_jsoncpp -eq 0 ]; then
|
||
|
|
echo "no need build jsoncpp lib"
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ${down_dir}
|
||
|
|
|
||
|
|
if [ -e ${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}
|
||
|
|
fi
|
||
|
|
unzip -o ${fname_jsoncpp} &> unzipjsoncpp.txt
|
||
|
|
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
|
||
|
|
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
|
||
|
|
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
|
||
|
|
fi
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
make -j $cpu_num &> jsoncppbuild.txt
|
||
|
|
else
|
||
|
|
make -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
|
||
|
|
echo " ./bin/lib directory is not libjsoncpp.a"
|
||
|
|
cp ${install_lib_dir}/lib/x86_64-linux-gnu/libjsoncpp.a ${install_lib_dir}/lib/
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
BuildBoost() {
|
||
|
|
if [ $need_build_boost -eq 0 ]; then
|
||
|
|
echo "no need build boost lib"
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
cd ${down_dir}
|
||
|
|
if [ -e ${fname_boost} ]; then
|
||
|
|
echo "${fname_boost} is exist"
|
||
|
|
else
|
||
|
|
wget http://sourceforge.net/projects/boost/files/boost/${fname_boost_down}
|
||
|
|
fi
|
||
|
|
tar -zxvf ${fname_boost} &> unzipboost.txt
|
||
|
|
boost_dir=$(ls | grep ^boost | grep .*[^gz]$)
|
||
|
|
cd ${boost_dir}
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
./bootstrap.sh
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo "build boost static #####################"
|
||
|
|
pwd
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
echo "build boost without detail log."
|
||
|
|
./b2 -j$cpu_num cflags=-fPIC cxxflags=-fPIC --with-atomic --with-thread --with-system --with-chrono --with-date_time --with-log --with-regex --with-serialization --with-filesystem --with-locale --with-iostreams threading=multi link=static release install --prefix=${install_lib_dir} &> boostbuild.txt
|
||
|
|
else
|
||
|
|
./b2 -j$cpu_num cflags=-fPIC cxxflags=-fPIC --with-atomic --with-thread --with-system --with-chrono --with-date_time --with-log --with-regex --with-serialization --with-filesystem --with-locale --with-iostreams threading=multi link=static release install --prefix=${install_lib_dir}
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
BuildRocketMQClient() {
|
||
|
|
cd ${build_dir}
|
||
|
|
echo "============start to build rocketmq client cpp.========="
|
||
|
|
local ROCKETMQ_CMAKE_FLAG=""
|
||
|
|
if [ $test -eq 1 ]; then
|
||
|
|
if [ $codecov -eq 1 ]; then
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DRUN_UNIT_TEST=ON -DCODE_COVERAGE=ON"
|
||
|
|
else
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DRUN_UNIT_TEST=ON -DCODE_COVERAGE=OFF"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DRUN_UNIT_TEST=OFF -DCODE_COVERAGE=OFF"
|
||
|
|
fi
|
||
|
|
if [ $enable_asan -eq 1 ]; then
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DENABLE_ASAN=ON"
|
||
|
|
else
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DENABLE_ASAN=OFF"
|
||
|
|
fi
|
||
|
|
if [ $enable_lsan -eq 1 ]; then
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DENABLE_LSAN=ON"
|
||
|
|
else
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DENABLE_LSAN=OFF"
|
||
|
|
fi
|
||
|
|
if [ $debug -eq 1 ]; then
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DCMAKE_BUILD_TYPE=Debug"
|
||
|
|
else
|
||
|
|
ROCKETMQ_CMAKE_FLAG=$ROCKETMQ_CMAKE_FLAG" -DCMAKE_BUILD_TYPE=Release"
|
||
|
|
fi
|
||
|
|
cmake .. $ROCKETMQ_CMAKE_FLAG
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
echo "build rocketmq without detail log."
|
||
|
|
make -j $cpu_num &> buildclient.txt
|
||
|
|
else
|
||
|
|
make -j $cpu_num
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
echo "build error....."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
#sudo make install
|
||
|
|
PackageRocketMQStatic
|
||
|
|
}
|
||
|
|
|
||
|
|
BuildGoogleTest() {
|
||
|
|
if [ $test -eq 0 ]; then
|
||
|
|
echo "no need build google test lib"
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
if [ -f ./bin/lib/libgtest.a ]; then
|
||
|
|
echo "libgteest already exist no need build test"
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
cd ${down_dir}
|
||
|
|
if [ -e release-1.8.1.tar.gz ]; then
|
||
|
|
echo "${fname_boost} is exist"
|
||
|
|
else
|
||
|
|
wget https://github.com/abseil/googletest/archive/release-1.8.1.tar.gz
|
||
|
|
fi
|
||
|
|
if [ ! -d "googletest-release-1.8.1" ]; then
|
||
|
|
tar -zxvf release-1.8.1.tar.gz &> googletest.txt
|
||
|
|
fi
|
||
|
|
cd googletest-release-1.8.1
|
||
|
|
mkdir -p build
|
||
|
|
cd build
|
||
|
|
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
|
||
|
|
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
|
||
|
|
fi
|
||
|
|
if [ $verbose -eq 0 ]; then
|
||
|
|
make -j $cpu_num &> gtestbuild.txt
|
||
|
|
else
|
||
|
|
make -j $cpu_num
|
||
|
|
fi
|
||
|
|
if [ $? -ne 0 ]; then
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
make install
|
||
|
|
|
||
|
|
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
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
ExecutionTesting() {
|
||
|
|
if [ $test -eq 0 ]; then
|
||
|
|
echo "Build success without executing unit tests."
|
||
|
|
return 0
|
||
|
|
fi
|
||
|
|
echo "############# unit test start ###########"
|
||
|
|
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 ###########"
|
||
|
|
}
|
||
|
|
|
||
|
|
PackageRocketMQStatic() {
|
||
|
|
echo "############# Start package static rocketmq library. #############"
|
||
|
|
if test "$(uname)" = "Linux"; then
|
||
|
|
#packet libevent,jsoncpp,boost,rocketmq,Signature to one librocketmq.a
|
||
|
|
cp -f ${basepath}/libs/signature/lib/libSignature.a ${install_lib_dir}/lib
|
||
|
|
ar -M <${basepath}/package_rocketmq.mri
|
||
|
|
cp -f librocketmq.a ${install_lib_dir}
|
||
|
|
elif test "$(uname)" = "Darwin" ; then
|
||
|
|
mkdir -p ${static_package_dir}
|
||
|
|
cd ${static_package_dir}
|
||
|
|
cp -f ${basepath}/libs/signature/lib/libSignature.a .
|
||
|
|
cp -f ${install_lib_dir}/lib/lib*.a .
|
||
|
|
cp -f ${install_lib_dir}/librocketmq.a .
|
||
|
|
echo "Md5 Hash RocketMQ Before:"
|
||
|
|
md5sum librocketmq.a
|
||
|
|
local dir=`ls *.a | grep -E 'gtest|gmock'`
|
||
|
|
for i in $dir
|
||
|
|
do
|
||
|
|
rm -rf $i
|
||
|
|
done
|
||
|
|
libtool -no_warning_for_no_symbols -static -o librocketmq.a *.a
|
||
|
|
echo "Md5 Hash RocketMQ After:"
|
||
|
|
md5sum librocketmq.a
|
||
|
|
echo "Try to copy $(pwd)/librocketmq.a to ${install_lib_dir}/"
|
||
|
|
cp -f librocketmq.a ${install_lib_dir}/
|
||
|
|
cd ${basepath}
|
||
|
|
rm -rf ${static_package_dir}
|
||
|
|
fi
|
||
|
|
echo "############# Package static rocketmq library success.#############"
|
||
|
|
}
|
||
|
|
|
||
|
|
PrintParams
|
||
|
|
Prepare
|
||
|
|
BuildOpenSSL
|
||
|
|
BuildLibevent
|
||
|
|
BuildJsonCPP
|
||
|
|
BuildBoost
|
||
|
|
BuildGoogleTest
|
||
|
|
BuildRocketMQClient
|
||
|
|
ExecutionTesting
|