[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-3020-gd4e2c71

Stephen Kelly steveire at gmail.com
Wed May 7 16:02:46 EDT 2014


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  d4e2c714a171c84609b174026d1f15f36f682cfc (commit)
       via  9cbc63e40caa1c3afd771d1e20c4c4c188953c00 (commit)
      from  8e910b81d53ff0529edfe24e624cb0732cc6c323 (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=d4e2c714a171c84609b174026d1f15f36f682cfc
commit d4e2c714a171c84609b174026d1f15f36f682cfc
Merge: 8e910b8 9cbc63e
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed May 7 16:02:45 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed May 7 16:02:45 2014 -0400

    Merge topic 'GNU-4.7-features' into next
    
    9cbc63e4 Features: Record for GNU 4.7.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9cbc63e40caa1c3afd771d1e20c4c4c188953c00
commit 9cbc63e40caa1c3afd771d1e20c4c4c188953c00
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Apr 6 13:00:17 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Wed May 7 22:02:02 2014 +0200

    Features: Record for GNU 4.7.
    
    Update the CompileFeatures test to verify that unsupported features
    do not work.

diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index fe0ff0b..b19ee49 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -1,7 +1,7 @@
 
 # Reference: http://gcc.gnu.org/projects/cxx0x.html
 
-set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408")
+set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 407")
 # Introduced in GCC 4.8.1
 set(GNU481_CXX11 "((__GNUC__ * 100 + __GNUC_MINOR__) > 408 || __GNUC_PATCHLEVEL__ >= 1) && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_decltype_incomplete_return_types "${GNU481_CXX11}")
@@ -12,8 +12,7 @@ set(_cmake_feature_test_cxx_alignof "${GNU48_CXX11}")
 set(_cmake_feature_test_cxx_attributes "${GNU48_CXX11}")
 set(_cmake_feature_test_cxx_inheriting_constructors "${GNU48_CXX11}")
 set(_cmake_feature_test_cxx_thread_local "${GNU48_CXX11}")
-# TODO: Should be supported by GNU 4.7
-set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
+set(GNU47_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_alias_templates "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_extended_friend_declarations "${GNU47_CXX11}")
diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake
index 6ec3958..d0de14c 100644
--- a/Modules/Compiler/GNU-CXX.cmake
+++ b/Modules/Compiler/GNU-CXX.cmake
@@ -32,7 +32,7 @@ macro(cmake_record_cxx_compile_features)
     endif()
   endmacro()
 
-  if (UNIX AND NOT APPLE AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
+  if (UNIX AND NOT APPLE AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
     _get_gcc_features(c++11 CMAKE_CXX11_COMPILE_FEATURES)
     _get_gcc_features(c++98 CMAKE_CXX98_COMPILE_FEATURES)
   else()
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 501138d..61160c5 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -11,22 +11,33 @@ if (NOT CMAKE_CXX_COMPILE_FEATURES)
   return()
 endif()
 
-macro(run_test feature)
-  if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ${feature})
-    add_library(test_${feature} OBJECT ${feature}.cpp)
+macro(run_test feature lang)
+  if (";${CMAKE_${lang}_COMPILE_FEATURES};" MATCHES ${feature})
+    add_library(test_${feature} OBJECT ${feature})
     set_property(TARGET test_${feature}
       PROPERTY COMPILE_FEATURES "${feature}"
     )
   else()
-    message("Not supported: ${feature}")
+    list(APPEND ${lang}_non_features ${feature})
   endif()
 endmacro()
 
-get_property(features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES)
-foreach(feature ${features})
-  run_test(${feature})
+get_property(cxx_features GLOBAL PROPERTY CMAKE_CXX_KNOWN_FEATURES)
+foreach(feature ${cxx_features})
+  run_test(${feature} CXX)
 endforeach()
 
+if (CMAKE_CXX_COMPILE_FEATURES)
+  include(CheckCXXSourceCompiles)
+  foreach(feature ${CXX_non_features})
+    check_cxx_source_compiles("#include \"${CMAKE_CURRENT_SOURCE_DIR}/${feature}.cpp\"\nint main() { return 0; }\n" ${feature}_works)
+    if (${feature}_works)
+      message(SEND_ERROR
+        "Feature ${feature} expected not to work for ${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}.  Update the supported features or blacklist it.")
+    endif()
+  endforeach()
+endif()
+
 add_executable(CompileFeatures main.cpp)
 set_property(TARGET CompileFeatures
   PROPERTY COMPILE_FEATURES "cxx_auto_type"

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list