0

抱歉标题含糊不清,我不知道如何正确表达。我想编写一个 cmake 脚本,允许使用不同的位宽设置​​(强制 32 位、强制 64 位或本机位宽)和静态链接构建目标。我想出了如何在每种条件下设置构建,到目前为止,我正在使用 cmake 选项在不同的设置之间切换。

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

有没有通用的方法来处理这个?

4

1 回答 1

1

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

  • cmake -H。-B_builds/arch64 -DCMAKE_CXX_FLAGS=-m64
  • cmake -H。-B_builds/arch32 -DCMAKE_CXX_FLAGS=-m32
  • cmake -H。-B_builds/共享 -DBUILD_SHARED_LIBS=ON
  • cmake -H。-B_builds/静态 -DBUILD_SHARED_LIBS=OFF
  • cmake -H。-B_builds/调试 -DCMAKE_BUILD_TYPE=调试
  • cmake -H。-B_builds/发布 -DCMAKE_BUILD_TYPE=发布

例外

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

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

有关的

于 2014-10-29T17:20:25.583 回答