tl;博士
给定一个CMakeList.txt
我无法编辑的文件,我CMAKE_TRY_COMPILE_TARGET_TYPE
可以STATIC_LIBRARY
在配置该文件时设置为吗?
理想情况下,我可以通过环境变量来做到这一点,但如果这不可能,将我的值作为命令行参数传递也可以。
细节
我正在尝试构建一个柯南配置文件,允许我使用GNU Arm Embedded Toolchain进行交叉构建。
Conan 提供了一种机制来指定我希望 CMake 使用的编译器二进制文件和编译器 + 链接器标志,但我需要指定set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
以便 GNU Arm Embedded 通过 CMake 的编译器检查。
为了让我的交叉构建工具链正常工作,我有两个选择:
- 我想支持交叉构建的每个 CMake 文件都必须检查我们是否正在为嵌入式设备构建,如果是,则运行
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
. 这很烦人,因为它迫使所有项目都必须考虑嵌入。 - 或者,以某种方式传递
CMAKE_TRY_COMPILE_TARGET_TYPE
给 CMake 而无需编辑CMakeList.txt
.
我想做2。