我正在从普通制作改为CMake作为项目的构建系统。该项目应该在不同的嵌入式Linux系统上运行,每个系统都有自己的工具链,并且每个目标也有相当多的不同配置选项(例如,不同的预处理器定义和包含/排除的一些源)。它也应该在桌面Linux上工作,一些GUI模块必须在Windows上运行。
现在,CMake有CMAKE_TOOLCHAIN_FILE
选项,可用于分析每个嵌入式平台的工具链和编译器特定内容(桌面Linux和Windows不需要)。
我想在工具链文件中放置CMake Wiki中列出的东西以外的东西不是一个好主意。
我正在考虑创建一些可以通过cmake gui工具编辑的CMake变量,然后只需使用if/elseif
来确定正确的设置。
有人有更好或更优雅的建议吗?
答案 0 :(得分:7)
我认为不是使用长if/elseif/else
块,而是可以使用
include(flags-${CONFIGURATION_NAME}.cmake)
在我的CMakeLists.txt中,每个配置的特定标志将简单地列在相应的标志文件中。