diff options
author | Brad King <brad.king@kitware.com> | 2012-08-24 14:03:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-08-30 13:45:17 (GMT) |
commit | 32b7c72623a52331e2a965c3b1569143606afffc (patch) | |
tree | 967bd17be99751412f2a38d00dc707ced3f9025a /Modules/CMakeTestCXXCompiler.cmake | |
parent | f3ddfef137f56c9660a7ad65807387987bcb2996 (diff) | |
parent | 3df81b49126cf6dc3e4e9a8fa8c368f33886db54 (diff) | |
download | CMake-32b7c72623a52331e2a965c3b1569143606afffc.zip CMake-32b7c72623a52331e2a965c3b1569143606afffc.tar.gz CMake-32b7c72623a52331e2a965c3b1569143606afffc.tar.bz2 |
Merge branch 'cmake-platform-info-version' into msvc-compiler-info
Conflicts:
Modules/CMakeTestCCompiler.cmake
Modules/CMakeTestCXXCompiler.cmake
Modules/Platform/Windows-cl.cmake
Diffstat (limited to 'Modules/CMakeTestCXXCompiler.cmake')
-rw-r--r-- | Modules/CMakeTestCXXCompiler.cmake | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/Modules/CMakeTestCXXCompiler.cmake b/Modules/CMakeTestCXXCompiler.cmake index 3aa2075..a5cdf56 100644 --- a/Modules/CMakeTestCXXCompiler.cmake +++ b/Modules/CMakeTestCXXCompiler.cmake @@ -1,6 +1,6 @@ #============================================================================= -# Copyright 2003-2009 Kitware, Inc. +# Copyright 2003-2012 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. @@ -12,8 +12,19 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) +if(CMAKE_CXX_COMPILER_FORCED) + # The compiler configuration was forced by the user. + # Assume the user has configured all compiler information. + set(CMAKE_CXX_COMPILER_WORKS TRUE) + return() +endif() + include(CMakeTestCompilerCommon) +# Remove any cached result from an older CMake version. +# We now store this in CMakeCXXCompiler.cmake. +unset(CMAKE_CXX_COMPILER_WORKS CACHE) + # This file is used by EnableLanguage in cmGlobalGenerator to # determine that that selected C++ compiler can actually compile # and link the most basic of programs. If not, a fatal error @@ -29,6 +40,9 @@ if(NOT CMAKE_CXX_COMPILER_WORKS) try_compile(CMAKE_CXX_COMPILER_WORKS ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testCXXCompiler.cxx OUTPUT_VARIABLE __CMAKE_CXX_COMPILER_OUTPUT) + # Move result from cache to normal variable. + set(CMAKE_CXX_COMPILER_WORKS ${CMAKE_CXX_COMPILER_WORKS}) + unset(CMAKE_CXX_COMPILER_WORKS CACHE) set(CXX_TEST_WAS_RUN 1) endif() @@ -48,22 +62,19 @@ else() "Determining if the CXX compiler works passed with " "the following output:\n${__CMAKE_CXX_COMPILER_OUTPUT}\n\n") endif() - set(CMAKE_CXX_COMPILER_WORKS 1 CACHE INTERNAL "") - if(CMAKE_CXX_COMPILER_FORCED) - # The compiler configuration was forced by the user. - # Assume the user has configured all compiler information. - else() - # Try to identify the ABI and configure it into CMakeCXXCompiler.cmake - include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake) - CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp) - configure_file( - ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in - ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake - @ONLY IMMEDIATE # IMMEDIATE must be here for compatibility mode <= 2.0 - ) - include(${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake) - endif() + # Try to identify the ABI and configure it into CMakeCXXCompiler.cmake + include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake) + CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp) + + # Re-configure to save learned information. + configure_file( + ${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in + ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake + @ONLY IMMEDIATE # IMMEDIATE must be here for compatibility mode <= 2.0 + ) + include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake) + if(CMAKE_CXX_SIZEOF_DATA_PTR) foreach(f ${CMAKE_CXX_ABI_FILES}) include(${f}) |