抱歉标题含糊不清,我不知道如何正确表达。我想编写一个 cmake 脚本,允许使用不同的位宽设置(强制 32 位、强制 64 位或本机位宽)和静态链接构建目标。我想出了如何在每种条件下设置构建,到目前为止,我正在使用 cmake 选项在不同的设置之间切换。
我的问题是使用 ccmake 或在命令行上更改这些构建选项之一还需要寻找新的库路径。由于这些路径被缓存,我目前在更改位宽时必须删除缓存。这样,用户还可以放松与位宽和静态链接无关的选项的所有其他设置。
有没有通用的方法来处理这个?
为不同的设置使用不同的构建目录:
请注意,在每种情况下都可能存在例外情况,例如:
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