CMake编译选项仅用于编译测试

时间:2019-04-04 11:16:48

标签: cmake multiprocessing cross-compiling

我正在使用CMake为嵌入式(异构)多核系统交叉编译C项目。编译器采用强制性参数(目标类型-t<type>)。必须将该标志设置为通过CMake的编译器测试。我将此标记添加到工具链文件中,如下所示:

add_compile_options(-tMYPLATFORMTYPE)

此方法的问题是,所有项目文件都将使用此标志进行编译。有没有一种方法可以只为测试编译配置编译标志,而不影响主项目配置? (注意:在项目中,不同的文件对此标志应具有不同的值。)

我正在寻找的东西是这样的:

set(CMAKE_TRY_COMPILE_COMPILE_OPTIONS "-tMYPLATFORMTYPE")

我可以禁用编译测试,但是我希望保留它。

1 个答案:

答案 0 :(得分:0)

您可以检查IN_TRY_COMPILE属性,并仅为尝试编译配置设置标志:

get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
if(IS_IN_TRY_COMPILE)
    add_compile_options(-tMYPLATFORMTYPE)
endif()