dat*_*olf 5 cross-platform cmake
我想以某种方式配置我的CMake项目,以便单个构建执行针对多个平台(在我的情况下,我想为Linux和Windows构建,每个x86_32和x86_64目标).我已经安装并运行了交叉编译工具链,并为每个单独的目标工作.
因此,挑战在于以某种方式设置CMake,即为CMAKE_SYSTEM_…每个子构建适当地设置工具链和变量.我怎样才能做到这一点?
一般来说,这是不可能的.
CMake只允许一次配置单个目标平台.如果您想要定位不同的平台,则需要从头开始重新运行CMake.当工具链的其余部分保持不变时(例如,您无法同时构建x86和x64二进制文件),只需切换架构即可.
自动执行此操作的正确方法是使用一个封闭的构建脚本,该脚本为每个目标平台调用一次CMake,并对不同的二进制目录执行多个源外构建.这个封闭的脚本也可以用CMake本身编写(该ExternalProject模块对此非常有效),尽管像Python或Bash这样的通用脚本语言可能更适合.