cmake响应文件Unix Makefile生成器vs忍者生成器

时间:2016-01-13 08:20:08

标签: cmake ninja

CMake 3.4.1正在使用响应文件来缩短命令行长度,以便与ninja链接,但不能使用unix makefile。我正在使用IAR嵌入式工具链进行交叉编译,它不支持给定的响应文件语法(即@ CMakeFiles / proj.rsp)。我更喜欢使用忍者构建系统,因为它更快,但我需要一个解决方案来处理这个响应文件。要么我需要禁用响应文件生成,要么让它使用我的工具链支持的语法(即-f filename)。有没有办法做其中任何一个?

1 个答案:

答案 0 :(得分:0)

我发现这对我有用,虽然可能有更聪明的方法来做这件事。如果命令行足够短,构建生成器不使用响应文件,我不会感到惊讶。

if ( ${CMAKE_GENERATOR} MATCHES "Ninja" )
   set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> -f CMakeFiles/${PROJECT_NAME}.rsp <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
endif()