7

我正在从普通的 make 更改为 CMake 作为项目的构建系统。该项目应该在不同的嵌入式 Linux 系统上运行,每个系统都有自己的工具链,并且每个目标也有很多不同的配置选项(例如不同的预处理器定义和包含/排除的一些源)。它也应该可以在桌面 Linux 上运行,并且一些 GUI 模块必须在 Windows 上运行。

现在,CMake 有它的CMAKE_TOOLCHAIN_FILE选项,可以用来分解每个嵌入式平台的工具链和编译器特定的东西(桌面 Linux 和 Windows 应该不需要一个)。

想把 CMake Wiki上列出的东西以外的东西放在工具链文件中并不是一个好主意。

我正在考虑创建一些可以由 cmake gui 工具编辑的 CMake 变量,然后简单地使用if/elseif它来确定正确的设置。

有没有人有更好或更优雅的建议?

4

1 回答 1

9

我想我可以简单地拥有而不是使用长if/elseif/else

include(flags-${CONFIGURATION_NAME}.cmake)

在我的 CMakeLists.txt 中,每个配置的特定标志将简单地列在适当的标志文件中。

于 2011-04-08T09:03:29.267 回答