仅用于编译测试的 CMake 编译选项
CMake compile options for compile test only
我正在使用 CMake 为嵌入式(异构)多核系统交叉编译 C 项目。编译器采用强制参数(-t<type>
,目标类型)。必须设置此标志才能通过 CMake 的编译器测试。我在工具链文件中添加此标志,如下所示:
add_compile_options(-tMYPLATFORMTYPE)
这种方法的问题是,所有项目文件都将使用此标志进行编译。有没有办法只为测试编译配置编译标志,而不影响主项目配置? (注意:在项目中,不同的文件对此标志应具有不同的值。)
我要找的是这样的:
set(CMAKE_TRY_COMPILE_COMPILE_OPTIONS "-tMYPLATFORMTYPE")
我可以禁用编译测试,但我更愿意保留它。
您可以检查 IN_TRY_COMPILE 属性 并仅设置试编译配置的标志:
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
if(IS_IN_TRY_COMPILE)
add_compile_options(-tMYPLATFORMTYPE)
endif()
我正在使用 CMake 为嵌入式(异构)多核系统交叉编译 C 项目。编译器采用强制参数(-t<type>
,目标类型)。必须设置此标志才能通过 CMake 的编译器测试。我在工具链文件中添加此标志,如下所示:
add_compile_options(-tMYPLATFORMTYPE)
这种方法的问题是,所有项目文件都将使用此标志进行编译。有没有办法只为测试编译配置编译标志,而不影响主项目配置? (注意:在项目中,不同的文件对此标志应具有不同的值。)
我要找的是这样的:
set(CMAKE_TRY_COMPILE_COMPILE_OPTIONS "-tMYPLATFORMTYPE")
我可以禁用编译测试,但我更愿意保留它。
您可以检查 IN_TRY_COMPILE 属性 并仅设置试编译配置的标志:
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
if(IS_IN_TRY_COMPILE)
add_compile_options(-tMYPLATFORMTYPE)
endif()