如何从外部CMake设置CMAKE_TRY_COMPILE_TARGET_TYPE

How to set CMAKE_TRY_COMPILE_TARGET_TYPE from outside CMake

本文关键字:TRY COMPILE TARGET TYPE CMAKE 从外部 CMake 设置      更新时间:2023-10-16

tl; dr

给定一个我无法编辑的CMakeList.txt,可以在配置该文件时将CMAKE_TRY_COMPILE_TARGET_TYPE设置为STATIC_LIBRARY

理想情况下,我可以通过环境变量来执行此操作,但是如果不可能,将我的价值作为命令行参数也可以。

也可以。

详细信息

我正在尝试构建一个Conan配置文件,该轮廓将使我可以使用GNU臂嵌入工具链进行跨构建。

柯南提供了一种机制,用于指定我希望CMAKE使用的编译器二进制和编译器 链接器标志,但我需要指定set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY),以使GNU ARM嵌入嵌入CMAKE的编译器检查。

为了使我的交叉构建工具链正常工作,然后我有2个选项:

  1. 我要支持的每个CMAKE文件都必须检查我们是否正在为嵌入式设备构建,如果是,则运行set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)。这很烦人,因为它迫使所有项目都必须考虑被嵌入。
  2. 或以某种方式将CMAKE_TRY_COMPILE_TARGET_TYPE传递给CMAKE而不编辑CMakeList.txt

我想做2。

您可以通过-D标志获得您想要的功能。

我会尝试这样的事情: cmake -D CMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY