在不同的构建设置之间切换

时间:2014-10-25 10:08:10

标签: caching cmake cmake-gui

对于模糊的标题感到抱歉,我不确定如何正确地说出这一点。我想编写一个cmake脚本,允许使用不同的位宽设置​​(强制32位,强制64位或本机位宽)和静态链接来构建目标。我想出了如何在每种条件下设置构建,到目前为止,我使用cmake选项在不同的设置之间切换。

我的问题是,使用ccmake或命令行更改其中一个构建选项还需要查找新的库路径。由于这些路径被缓存,我当前必须在更改位宽时删除缓存。这样,用户也可以放弃与位宽和静态链接无关的选项的所有其他设置。

有没有一种常用的方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

为不同的设置使用不同的构建目录:

  • cmake -H。 -B_builds / arch64 -DCMAKE_CXX_FLAGS = -m64
  • cmake -H。 -B_builds / arch32 -DCMAKE_CXX_FLAGS = -m32
  • cmake -H。 -B_builds / shared -DBUILD_SHARED_LIBS = ON
  • cmake -H。 -B_builds / static -DBUILD_SHARED_LIBS = OFF
  • cmake -H。 -B_builds / debug -DCMAKE_BUILD_TYPE = Debug
  • cmake -H。 -B_builds / release -DCMAKE_BUILD_TYPE = Release

例外

请注意,在每种情况下都可能存在例外情况,例如:

add_library(foo STATIC ${FOO_SOURCES}) # BUILD_SHARED_LIBS will be ignored

或Visual Studio和Xcode Debug / Release将是:

cmake -H. -B_builds/xcode -GXcode
cmake --build _builds/xcode --config Debug # build Debug
cmake --build _builds/xcode --config Release # build Release

而不是xcode-debugxcode-release

相关