| #!/bin/bash |
| |
| HOME_PATH=rocketmq-ons-cpp |
| CORE_LIBRARY_NAME=librocketmq_client_core |
| API_LIBRARY_NAME=libonsclient4cpp |
| |
| if test "$(uname)" = "Linux"; then |
| echo "========================start check package file for Linux======================================" |
| LIBRARY_SUFFIX=so |
| PACKAGE_NAME=aliyun-mq-linux-cpp-sdk |
| fi |
| if test "$(uname)" = "Darwin"; then |
| echo "========================start check package file for Darwin======================================" |
| LIBRARY_SUFFIX=dylib |
| PACKAGE_NAME=aliyun-mq-darwin-cpp-sdk |
| fi |
| |
| # This script must execute on project home dir |
| full_path=`pwd` |
| base_dir_name=`basename $full_path` |
| if [[ ${base_dir_name} != ${HOME_PATH} ]];then |
| echo "please execute this script on ${HOME_PATH} " |
| exit -1 |
| fi |
| |
| # Step 1, check license output |
| |
| if [[ ! -e "licenses" ]]; then |
| echo "Licenses path licenses does not exist, please check." |
| exit -1 |
| fi |
| # Step 2, check headfile output |
| |
| if [[ ! -e "src/main/cpp/include" ]]; then |
| echo "Head file path src/main/cpp/include does not exist, please check." |
| exit -2 |
| fi |
| |
| # Step 3, check lib/libonsclient4cpp.so and build/librocketmq_client_core.so |
| if [[ ! -e "build/${CORE_LIBRARY_NAME}.${LIBRARY_SUFFIX}" ]];then |
| echo "Core library build/${CORE_LIBRARY_NAME}.${LIBRARY_SUFFIX} not exits, please execute mvn install" |
| exit -3 |
| fi |
| |
| if [[ ! -e "lib/${API_LIBRARY_NAME}.${LIBRARY_SUFFIX}" ]] ;then |
| echo "ONS API Library ${API_LIBRARY_NAME}.${LIBRARY_SUFFIX} not exits, please go to /dist and execute cmake ../ then execute make." |
| exit -3 |
| fi |
| |
| # Step 4, check demos |
| if [[ ! -e "src/main/cpp/demos" ]];then |
| echo "Demo path src/main/cpp/demos does not exists, please check." |
| exit -4 |
| fi |
| |
| # Step 5, check docs |
| if [[ ! -e "doc" ]];then |
| echo "doc path doc does not exists, please check." |
| exit -5 |
| fi |
| |
| # Step 6 remove old package path |
| if [[ -e ${PACKAGE_NAME} ]] || [[ -e ${PACKAGE_NAME}.tar.gz ]];then |
| echo "find old package dir, we will delete this package file." |
| rm -rf ${PACKAGE_NAME} &>/dev/null |
| rm -rf ${PACKAGE_NAME}.tar.gz &>/dev/null |
| fi |
| echo "========================check package file success======================================" |
| |
| echo "========================start packaging ================================================" |
| mkdir -v ${PACKAGE_NAME} |
| mkdir -v ${PACKAGE_NAME}/demos |
| mkdir -v ${PACKAGE_NAME}/doc |
| |
| echo "Copy head files..." |
| cp -rf src/main/cpp/include ${PACKAGE_NAME}/include |
| echo "Copy library files......." |
| cp -rf lib ${PACKAGE_NAME}/lib |
| cp -rf build/${CORE_LIBRARY_NAME}.${LIBRARY_SUFFIX} ${PACKAGE_NAME}/lib/ |
| echo "Copy demo files............" |
| cp -f src/main/cpp/demos/*.cpp ${PACKAGE_NAME}/demos/ |
| echo "Copy demo make file................." |
| cp -f src/main/cpp/demos/CMakeLists.Release ${PACKAGE_NAME}/demos/CMakeLists.txt |
| echo "Copy changlog................." |
| cp -f doc/changelog ${PACKAGE_NAME}/doc/ |
| echo "Copy license and notice file................." |
| cp -f licenses/LICENSE-BIN ${PACKAGE_NAME}/LICENSE |
| cp -f licenses/NOTICE-BIN ${PACKAGE_NAME}/NOTICE |
| echo "========================packaging end ================================================" |
| |
| |
| echo "========================start check ================================================" |
| |
| cd ${PACKAGE_NAME}/demos |
| |
| mkdir -v dist |
| cd dist |
| cmake ../ &>/dev/null |
| if [ $? -eq 0 ];then |
| echo "cmake check success." |
| else |
| echo "check failure, execute cmake build demo occur some error." |
| exit -7 |
| fi |
| make &>/dev/null |
| if [ $? -eq 0 ];then |
| echo "check success" |
| make clean &>/dev/null |
| else |
| echo "check failure, execute make build demo occur some error." |
| exit -7 |
| fi |
| cd ../ |
| if [ -e "bin" ];then |
| echo "Remove excutable file." |
| rm -rf bin &>/dev/null |
| fi |
| if [ -e "dist" ];then |
| echo "Remove makefile file." |
| rm -rf dist &>/dev/null |
| fi |
| cd $full_path |
| tar -czf ${PACKAGE_NAME}.tar.gz ${PACKAGE_NAME}/* &>/dev/null |
| |
| echo "========================check end ================================================" |