diff options
author | Brad King <brad.king@kitware.com> | 2010-08-06 13:34:53 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2010-08-06 13:34:53 (GMT) |
commit | b03f4ec09d5d680f63b88aa93b80a741c1dd12ab (patch) | |
tree | 216604d8870c7b1aaf955dda74ec1c30ce991406 | |
parent | 00477de1c92d94e78cebdaf6c29ff2847207f454 (diff) | |
download | CMake-b03f4ec09d5d680f63b88aa93b80a741c1dd12ab.zip CMake-b03f4ec09d5d680f63b88aa93b80a741c1dd12ab.tar.gz CMake-b03f4ec09d5d680f63b88aa93b80a741c1dd12ab.tar.bz2 |
No response files with GNU ld <= 2.16 (#10913)
Older GNU ld does not support the @FILE syntax for response files.
Check the ld version on MinGW and MSYS before enabling the syntax.
-rw-r--r-- | Modules/Platform/Windows-GNU.cmake | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Modules/Platform/Windows-GNU.cmake b/Modules/Platform/Windows-GNU.cmake index af03841..8299d70 100644 --- a/Modules/Platform/Windows-GNU.cmake +++ b/Modules/Platform/Windows-GNU.cmake @@ -49,6 +49,13 @@ set(CMAKE_CREATE_WIN32_EXE "-mwindows") set(CMAKE_GNULD_IMAGE_VERSION "-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>") +# Check if GNU ld is too old to support @FILE syntax. +set(__WINDOWS_GNU_LD_RESPONSE 1) +execute_process(COMMAND ld -v OUTPUT_VARIABLE _help ERROR_VARIABLE _help) +if("${_help}" MATCHES "GNU ld .* 2\\.1[1-6]") + set(__WINDOWS_GNU_LD_RESPONSE 0) +endif() + macro(__windows_compiler_gnu lang) if(MSYS OR MINGW) @@ -68,7 +75,7 @@ macro(__windows_compiler_gnu lang) endif() set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") # No -fPIC on Windows - set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1) + set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS ${__WINDOWS_GNU_LD_RESPONSE}) set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-Wl,@") # Binary link rules. |