diff options
author | Brad King <brad.king@kitware.com> | 2014-08-19 13:04:25 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-08-21 13:28:19 (GMT) |
commit | 03ad8f28c88dbd04c41c7f6b7cc96740e8a486a4 (patch) | |
tree | 4bb4ccf448c17c96da4628d187c8541d32124724 | |
parent | f7ab23837994a4a6eff1c5ebf183ae915380b41c (diff) | |
download | CMake-03ad8f28c88dbd04c41c7f6b7cc96740e8a486a4.zip CMake-03ad8f28c88dbd04c41c7f6b7cc96740e8a486a4.tar.gz CMake-03ad8f28c88dbd04c41c7f6b7cc96740e8a486a4.tar.bz2 |
CMakeDetermineCompilerABI: Link with standard libraries on MSVC
In commit v2.8.0~395 (Implicit link info for C, CXX, and Fortran,
2009-07-23) we added a '-DCMAKE_${lang}_STANDARD_LIBRARIES=' flag to the
try_compile used to build the ABI detection project. It is needed when
detecting the implicit libraries added by the GNU compiler on Windows
(MinGW tools) to avoid contaminating the list with standard Windows
libraries. However, with MSVC we do not detect such implicit link
libraries anyway, and for some target platforms (e.g. Windows Phone) we
may need the standard libraries to link the ABI detection executable.
Drop the flag when detecting the ABI using MSVC.
-rw-r--r-- | Modules/CMakeDetermineCompilerABI.cmake | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake index 8595b97..4b7ec30 100644 --- a/Modules/CMakeDetermineCompilerABI.cmake +++ b/Modules/CMakeDetermineCompilerABI.cmake @@ -28,13 +28,15 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src) if(DEFINED CMAKE_${lang}_VERBOSE_FLAG) set(CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}") endif() + if(NOT "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC") + # Avoid adding our own platform standard libraries for compilers + # from which we might detect implicit link libraries. + list(APPEND CMAKE_FLAGS "-DCMAKE_${lang}_STANDARD_LIBRARIES=") + endif() try_compile(CMAKE_${lang}_ABI_COMPILED ${CMAKE_BINARY_DIR} ${src} - CMAKE_FLAGS "${CMAKE_FLAGS}" - "-DCMAKE_${lang}_STANDARD_LIBRARIES=" - # We need ignore these warnings because some platforms need - # CMAKE_${lang}_STANDARD_LIBRARIES to link properly and we - # don't care when we are just determining the ABI. + CMAKE_FLAGS ${CMAKE_FLAGS} + # Ignore unused flags when we are just determining the ABI. "--no-warn-unused-cli" OUTPUT_VARIABLE OUTPUT COPY_FILE "${BIN}" |