【发布时间】:2017-07-20 02:29:09
【问题描述】:
CMake 建议使用外源构建。通常我所拥有的是每个构建的小型构建脚本,因此我不必手动执行 CMake 命令。例如,我的构建目录可能如下所示:
build
|--linux
| |--build.sh
|--arm
|--build.sh
arm/build.sh 可能如下所示:
cmake \
-D CMAKE_CXX_COMPILER=${CROSS_COMPILE}g++ \
-D CMAKE_C_COMPILER=${CROSS_COMPILE}gcc \
-D CMAKE_CXX_FLAGS="-mcpu=cortex-a9" \
-D CMAKE_C_FLAGS="-mcpu=cortex-a9" \
-D CMAKE_BUILD_TYPE="" \
-G "Unix Makefiles" ../..
我喜欢这种方法如何通知开发人员支持哪些平台并且总体上很好 - 直到我想对build.sh 脚本进行版本控制。我遇到的问题是,当我将 build 添加到版本控制时,我会选择所有 CMake 构建文件和构建目录。我知道我可以“忽略”相关的目录和文件,但考虑一下如果我添加一个新构建或将一个新库添加到我的顶层会发生什么 - 然后我每次都更新 SVN 中的忽略属性。
这感觉不太容易维护,我相信有更好的方法。是否有人对为每个构建编写 CMake 命令脚本,同时在构建后保持“干净”的 SVN 状态有任何建议?
【问题讨论】: