我正在从普通的 make 更改为 CMake 作为项目的构建系统。该项目应该在不同的嵌入式 Linux 系统上运行,每个系统都有自己的工具链,并且每个目标也有很多不同的配置选项(例如不同的预处理器定义和包含/排除的一些源)。它也应该可以在桌面 Linux 上运行,并且一些 GUI 模块必须在 Windows 上运行。
现在,CMake 有它的CMAKE_TOOLCHAIN_FILE
选项,可以用来分解每个嵌入式平台的工具链和编译器特定的东西(桌面 Linux 和 Windows 应该不需要一个)。
我想把 CMake Wiki上列出的东西以外的东西放在工具链文件中并不是一个好主意。
我正在考虑创建一些可以由 cmake gui 工具编辑的 CMake 变量,然后简单地使用if/elseif
它来确定正确的设置。
有没有人有更好或更优雅的建议?