diff options
Diffstat (limited to 'Modules/CMakeTestOBJCCompiler.cmake')
-rw-r--r-- | Modules/CMakeTestOBJCCompiler.cmake | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/Modules/CMakeTestOBJCCompiler.cmake b/Modules/CMakeTestOBJCCompiler.cmake index bcc6fae..0e333c0 100644 --- a/Modules/CMakeTestOBJCCompiler.cmake +++ b/Modules/CMakeTestOBJCCompiler.cmake @@ -21,6 +21,15 @@ endif() # We now store this in CMakeCCompiler.cmake. unset(CMAKE_OBJC_COMPILER_WORKS CACHE) +# Try to identify the ABI and configure it into CMakeOBJCCompiler.cmake +include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake) +CMAKE_DETERMINE_COMPILER_ABI(OBJC ${CMAKE_ROOT}/Modules/CMakeOBJCCompilerABI.m) +if(CMAKE_OBJC_ABI_COMPILED) + # The compiler worked so skip dedicated test below. + set(CMAKE_OBJC_COMPILER_WORKS TRUE) + message(STATUS "Check for working OBJC compiler: ${CMAKE_OBJC_COMPILER} - skipped") +endif() + # This file is used by EnableLanguage in cmGlobalGenerator to # determine that that selected Objective-C compiler can actually compile # and link the most basic of programs. If not, a fatal error @@ -44,49 +53,41 @@ if(NOT CMAKE_OBJC_COMPILER_WORKS) # Move result from cache to normal variable. set(CMAKE_OBJC_COMPILER_WORKS ${CMAKE_OBJC_COMPILER_WORKS}) unset(CMAKE_OBJC_COMPILER_WORKS CACHE) - set(OBJC_TEST_WAS_RUN 1) __TestCompiler_restoreTryCompileTargetType() -endif() - -if(NOT CMAKE_OBJC_COMPILER_WORKS) - PrintTestCompilerResult(CHECK_FAIL "broken") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log - "Determining if the Objective-C compiler works failed with " - "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n") - string(REPLACE "\n" "\n " _output "${__CMAKE_OBJC_COMPILER_OUTPUT}") - message(FATAL_ERROR "The Objective-C compiler\n \"${CMAKE_OBJC_COMPILER}\"\n" - "is not able to compile a simple test program.\nIt fails " - "with the following output:\n ${_output}\n\n" - "CMake will not be able to correctly generate this project.") -else() - if(OBJC_TEST_WAS_RUN) - PrintTestCompilerResult(CHECK_PASS "works") - file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log - "Determining if the Objective-C compiler works passed with " + if(NOT CMAKE_OBJC_COMPILER_WORKS) + PrintTestCompilerResult(CHECK_FAIL "broken") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the Objective-C compiler works failed with " "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n") + string(REPLACE "\n" "\n " _output "${__CMAKE_OBJC_COMPILER_OUTPUT}") + message(FATAL_ERROR "The Objective-C compiler\n \"${CMAKE_OBJC_COMPILER}\"\n" + "is not able to compile a simple test program.\nIt fails " + "with the following output:\n ${_output}\n\n" + "CMake will not be able to correctly generate this project.") endif() + PrintTestCompilerResult(CHECK_PASS "works") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the Objective-C compiler works passed with " + "the following output:\n${__CMAKE_OBJC_COMPILER_OUTPUT}\n\n") +endif() - # Try to identify the ABI and configure it into CMakeOBJCCompiler.cmake - include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake) - CMAKE_DETERMINE_COMPILER_ABI(OBJC ${CMAKE_ROOT}/Modules/CMakeOBJCCompilerABI.m) - # Try to identify the compiler features - include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake) - CMAKE_DETERMINE_COMPILE_FEATURES(OBJC) +# Try to identify the compiler features +include(${CMAKE_ROOT}/Modules/CMakeDetermineCompileFeatures.cmake) +CMAKE_DETERMINE_COMPILE_FEATURES(OBJC) - # Re-configure to save learned information. - configure_file( - ${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in - ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake - @ONLY - ) - include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake) +# Re-configure to save learned information. +configure_file( + ${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in + ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake + @ONLY + ) +include(${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake) - if(CMAKE_OBJC_SIZEOF_DATA_PTR) - foreach(f ${CMAKE_OBJC_ABI_FILES}) - include(${f}) - endforeach() - unset(CMAKE_OBJC_ABI_FILES) - endif() +if(CMAKE_OBJC_SIZEOF_DATA_PTR) + foreach(f ${CMAKE_OBJC_ABI_FILES}) + include(${f}) + endforeach() + unset(CMAKE_OBJC_ABI_FILES) endif() set(CMAKE_TRY_COMPILE_TARGET_TYPE ${__CMAKE_SAVED_TRY_COMPILE_TARGET_TYPE}) |