在CMake中提供多个工具链选项

时间:2018-12-16 10:45:46

标签: cmake cross-compiling

我有一个用于ARM平台的嵌入式项目,特别是aarch64。

到目前为止,我一直在使用Make。我最近设置了CMake,没有特别的问题。 我之所以选择CMake,是因为我印象中这是一个更现代的构建工具,可以实现更智能的配置。

例如,我可以使用不同的工具链(aarch64-elf-gcc-linaro,aarch64-linux-gnu-gcc,...)来编译我的项目,我想让CMake尝试是否将任何工具安装在系统,并使用默认情况下最先发现的那个。

这可能(或打算)吗?我希望它是该工具的一项简单壮举,但经过一段时间的搜索,我似乎找不到正确的轨道。

1 个答案:

答案 0 :(得分:1)

是的,您可以使CMake项目搜索在操作系统中安装的可用工具链,选择一个并编译项目。我还为ARM嵌入式项目编写了CMake程序,因为现在它可以在不同的OS系统Windows和Unix之间通用转换。在Linux上,安装了ARM ToolChain,在Windows上,安装了Keil-MDK。如果您要选择不同的工具链,则可以编写CMake脚本,该脚本将使用诸如find_path()之类的命令查找路径,然后为所选编译器使用正确的编译器标志调用正确的“ toolchianxx.cmake”脚本。

在您的特定问题中,只需使用find_path命令并使用命中以“预设”的已知路径查找已安装的编译器。