2016-01-13 134 views
2

CMake 3.4.1正在使用響應文件來縮短命令行長度以便與忍者鏈接,但不是unix makefiles。我與IAR嵌入式工具鏈交叉編譯,並且不支持給定的響應文件語法(即@ CMakeFiles/proj.rsp)。我更喜歡使用忍者構建系統,因爲它更快,但我需要一個解決方法來處理這個響應文件。無論我需要禁用響應文件生成還是讓它使用我的工具鏈支持的語法(即-f文件名)。有沒有辦法做到這兩者之一?cmake響應文件Unix Makefile生成器vs忍者生成器

回答

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()