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

Provide multiple toolchain options in CMake

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

到目前为止,我一直在使用 Make。我最近设置了 CMake,没有特别的问题。 我转向 CMake 是因为我的印象是它是一种更现代的构建工具,可以进行更智能的配置。

例如,我可以使用不同的工具链(aarch64-elf-gcc-linaro、aarch64-linux-gnu-gcc,...)编译我的项目,如果有的话,我希望 CMake 尝试其中的一个安装在系统上,默认情况下使用第一个找到的那个。

这可能(或有意)吗?我希望它是该工具的一个简单的壮举,但在搜索了一段时间后,我似乎找不到正确的轨道。

是的,您可以让您的 CMake 项目搜索安装在您 OS 中的可用工具链,选择一个并编译您的项目。我还为 ARM 嵌入式项目编写了一个 CMake 程序,因为现在它可以在不同 OS 系统 Windows 和 Unix 之间通用转换。在 Linux 上有 ARM ToolChain installed and on Windows there is Keil-MDK. If you have different tool-chains to choose between, you can write CMake script which will find paths with command like find_path(),然后调用正确的 "toolchianxx.cmake" 脚本,并为所选编译器设置正确的编译器标志。

在您的特定问题中,只需使用 find_path 命令并使用命中在 "pre-set" 已知路径中查找已安装的编译器。