我正在将一个项目的构建系统从普通make切换到CMake。该项目应该在不同的嵌入式Linux系统上运行,每个系统都有自己的工具链,并且每个目标也有相当多的不同配置选项(例如不同的预处理器定义和一些包含/排除的源代码)。它还应该在桌面Linux上运行,某些GUI模块必须在Windows上运行。
现在,CMake有其CMAKE_TOOLCHAIN_FILE
选项,可用于分离每个嵌入式平台的工具链和编译器特定内容(桌面Linux和Windows不需要这样做)。
我想,除了CMake Wiki中列出的内容外,在工具链文件中放置其他内容并不是一个好主意。
我考虑创建一些可以由cmake gui工具编辑的CMake变量,然后仅使用if / elseif
来确定正确的设置。
是否有更好或更优雅的建议?