【问题标题】:CMake compile options for compile test onlyCMake 编译选项仅用于编译测试
【发布时间】:2019-08-26 03:07:27
【问题描述】:

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

add_compile_options(-tMYPLATFORMTYPE)

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

我正在寻找的是这样的:

set(CMAKE_TRY_COMPILE_COMPILE_OPTIONS "-tMYPLATFORMTYPE")

我可以禁用编译测试,但我更愿意保留它。

【问题讨论】:

  • all project files will be compiled with this flag - 你是否为不同的平台编译其他文件?
  • @KamilCuk 之类的,它是一个多核系统。

标签: cmake multiprocessing cross-compiling


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 2012-04-10
    • 1970-01-01
    • 2021-08-02
    • 2015-09-07
    • 2017-11-01
    相关资源
    最近更新 更多