在 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" 已知路径中查找已安装的编译器。
我有一个针对 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" 已知路径中查找已安装的编译器。