[Cmake-commits] CMake branch, next, updated. v2.8.12.1-5418-gf967f0a

Stephen Kelly steveire at gmail.com
Tue Nov 19 13:22:24 EST 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  f967f0a7ab1a64697742251fd2d41d5ad43457bf (commit)
       via  fbcf62d6aee736e82dc5e4658cb4b2046802ef36 (commit)
      from  80f0e1ea2a0343f985533cb146f5ea89c74b33d3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f967f0a7ab1a64697742251fd2d41d5ad43457bf
commit f967f0a7ab1a64697742251fd2d41d5ad43457bf
Merge: 80f0e1e fbcf62d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Nov 19 13:22:21 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Nov 19 13:22:21 2013 -0500

    Merge topic 'target_compile_features' into next
    
    fbcf62d Remove direct compiler invocation for feature testing.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fbcf62d6aee736e82dc5e4658cb4b2046802ef36
commit fbcf62d6aee736e82dc5e4658cb4b2046802ef36
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Nov 19 19:19:51 2013 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Nov 19 19:19:51 2013 +0100

    Remove direct compiler invocation for feature testing.
    
    A single code path for this is a lesser maintenance burden.

diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
index 9dbebf6..504704d 100644
--- a/Modules/Compiler/GNU.cmake
+++ b/Modules/Compiler/GNU.cmake
@@ -51,7 +51,6 @@ macro(__compiler_gnu lang)
   set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
   set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
   set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-  set(_CMAKE_${lang}_CREATE_OBJECT_FILE "<FLAGS>;-c;<SOURCE>;-v")
   if(NOT APPLE)
     set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
   endif()
diff --git a/Modules/Internal/FeatureTesting.cmake b/Modules/Internal/FeatureTesting.cmake
index be3888c..92d262c 100644
--- a/Modules/Internal/FeatureTesting.cmake
+++ b/Modules/Internal/FeatureTesting.cmake
@@ -3,7 +3,7 @@ macro(record_compiler_features lang compile_flags feature_list)
   include("${CMAKE_ROOT}/Modules/Compiler/${CMAKE_${lang}_COMPILER_ID}-${lang}-FeatureTests.cmake" OPTIONAL)
 
   string(TOLOWER ${lang} lang_lc)
-  file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests${CMAKE_${lang}_OUTPUT_EXTENSION}")
+  file(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin")
   file(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "
   extern const char features[] = {\"\"\n")
   foreach(feature ${CMAKE_${lang}_KNOWN_FEATURES})
@@ -16,44 +16,28 @@ macro(record_compiler_features lang compile_flags feature_list)
       file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "\"${lang}_FEATURE:\"\n${_feature_condition}\"${feature}\\n\"\n")
     endif()
   endforeach()
-  file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "\n};\n")
+  file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
+    "\n};\n\nint main(int, char **) { return 0; }\n")
 
-  if(CMAKE_GENERATOR MATCHES "Unix Makefiles|Ninja")
-    # Lightweight version.
-    string(REPLACE "<FLAGS>" "${compile_flags}" _compile_object_command "${_CMAKE_${lang}_CREATE_OBJECT_FILE}" )
-    string(REPLACE "<SOURCE>" "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" _compile_object_command "${_compile_object_command}" )
-    execute_process(COMMAND "${CMAKE_${lang}_COMPILER}"
-      ${_compile_object_command}
-      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/CMakeFiles"
-      ERROR_VARIABLE _error
-      OUTPUT_VARIABLE _output
-      RESULT_VARIABLE _result
+  try_compile(CMAKE_${lang}_FEATURE_TEST
+    ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
+    COMPILE_DEFINITIONS "${compile_flags}"
+    OUTPUT_VARIABLE _output
+    COPY_FILE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin"
+    COPY_FILE_ERROR _copy_error
     )
-    if(_result EQUAL 0)
-      string(REPLACE ";" " " _compile_object_command "${_compile_object_command}")
-      set(_output "${CMAKE_${lang}_COMPILER} ${_compile_object_command}\n${_output}")
-    endif()
+  if(CMAKE_${lang}_FEATURE_TEST AND NOT _copy_error)
+    set(_result 0)
   else()
-    file(APPEND "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}" "int main(int, char **) { return 0; }\n")
-    try_compile(CMAKE_${lang}_FEATURE_TEST
-      ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.${lang_lc}"
-      COMPILE_DEFINITIONS "${compile_flags}"
-      OUTPUT_VARIABLE _output
-      COPY_FILE "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests${CMAKE_${lang}_OUTPUT_EXTENSION}"
-      COPY_FILE_ERROR _copy_error
-      )
-    if(CMAKE_${lang}_FEATURE_TEST AND NOT _copy_error)
-      set(_result 0)
-    else()
-      set(_result 255)
-    endif()
-    unset(CMAKE_${lang}_FEATURE_TEST CACHE)
+    set(_result 255)
   endif()
+  unset(CMAKE_${lang}_FEATURE_TEST CACHE)
+
   if (_result EQUAL 0)
     file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
       "\n\nDetecting ${lang} [${compile_flags}] compiler features compiled with the following output:\n${_output}\n\n")
-    if(EXISTS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests${CMAKE_${lang}_OUTPUT_EXTENSION}")
-      file(STRINGS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests${CMAKE_${lang}_OUTPUT_EXTENSION}"
+    if(EXISTS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin")
+      file(STRINGS "${CMAKE_BINARY_DIR}/CMakeFiles/feature_tests.bin"
         features REGEX "${lang}_FEATURE:.*")
       foreach(info ${features})
         file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 53b439a..e29aaf4 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -246,7 +246,6 @@ macro(__windows_compiler_msvc lang)
     "<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
   set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE
     "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> /FoNUL /FAs /Fa<ASSEMBLY_SOURCE> /c <SOURCE>${CMAKE_END_TEMP_FILE}")
-  set(_CMAKE_${lang}_CREATE_OBJECT_FILE "${CMAKE_CL_NOLOGO};/TP;<FLAGS>;-c;<SOURCE>")
 
   set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
   set(CMAKE_${lang}_LINK_EXECUTABLE

-----------------------------------------------------------------------

Summary of changes:
 Modules/Compiler/GNU.cmake            |    1 -
 Modules/Internal/FeatureTesting.cmake |   48 +++++++++++----------------------
 Modules/Platform/Windows-MSVC.cmake   |    1 -
 3 files changed, 16 insertions(+), 34 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list