对于模糊的标题感到抱歉,我不确定如何正确地说出这一点。我想编写一个cmake脚本,允许使用不同的位宽设置(强制32位,强制64位或本机位宽)和静态链接来构建目标。我想出了如何在每种条件下设置构建,到目前为止,我使用cmake选项在不同的设置之间切换。
我的问题是,使用ccmake或命令行更改其中一个构建选项还需要查找新的库路径。由于这些路径被缓存,我当前必须在更改位宽时删除缓存。这样,用户也可以放弃与位宽和静态链接无关的选项的所有其他设置。
有没有一种常用的方法可以解决这个问题?
答案 0 :(得分:1)
为不同的设置使用不同的构建目录:
请注意,在每种情况下都可能存在例外情况,例如:
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-debug
和xcode-release