Cmake工程的嵌套关系
编译脚本build.sh
在顶层建立build文件夹,里面放入编译脚本
#!/bin/bash
CMAKE_TYPE="MinGW Makefiles"
PROJECT_BUILD_TYPE="Release"
PROJRCT_INSTALL=""
CMAKE_VS=0
clean()
{
cd ../
if [ -d "project_cache/" ];then
cd ./project_cache
make clean
cd -
fi
rm -rf ./project_cache
rm -rf ./target
echo "clean project finish."
}
init()
{
if [ $(uname) == "Linux" ]; then
CMAKE_TYPE="Unix Makefiles"
elif [ $CMAKE_VS == 1 ]; then
CMAKE_TYPE="Visual Studio 15 2017"
else
CMAKE_TYPE="MinGW Makefiles"
fi
echo "$CMAKE_TYPE Start"
}
for i in $*
do
case $i in
"inc")
echo "inc test $i"
;;
"clean")
clean
exit 0
;;
"test")
echo "clean test $i"
;;
"Debug")
PROJECT_BUILD_TYPE=$i
;;
"VS2017")
CMAKE_VS=1
;;
"install")
PROJRCT_INSTALL="--target install"
;;
*)
echo "error $i"
exit 1
;;
esac
done
init
cd ..
if [ ! -d "project_cache/" ];then
mkdir project_cache
fi
cd project_cache
cmake -G "$CMAKE_TYPE" ../ -DCMAKE_TOOLCHAIN_FILE=../cmake_config/config.cmake -DCMAKE_BUILD_TYPE