[Cmake-commits] CMake branch, next, updated. v3.1.1-2621-g18e30fb

Brad King brad.king at kitware.com
Wed Feb 4 18:40:14 EST 2015


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  18e30fbaeb6a2c6a7ce66d8748f68ebaacca667a (commit)
       via  fb3487a9975ed321b48fad5c71dd655d66b68087 (commit)
       via  6027798a30eae02175ce4ad13e1439f4383b6cd3 (commit)
       via  9d767810e1e54eb9233854f0dbf1345a0b5be60f (commit)
       via  72537e4436a17535af5424628adef3b614a61679 (commit)
       via  82c9d6868b87a964214a468cae816642950e70b6 (commit)
      from  467b7158cb60adca53fbeac2dfe2f5699cba7fb1 (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=18e30fbaeb6a2c6a7ce66d8748f68ebaacca667a
commit 18e30fbaeb6a2c6a7ce66d8748f68ebaacca667a
Merge: 467b715 fb3487a
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Feb 4 18:40:13 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Feb 4 18:40:13 2015 -0500

    Merge topic 'fix-C-standard-features' into next
    
    fb3487a9 Features: Fix C90 feature detection.
    6027798a Features: Allow setting standard dialect below the default.
    9d767810 Features: Populate CMAKE_<LANG>_STANDARD_DEFAULT only for supported compilers.
    72537e44 Features: Add dialect compile flags only if default is known.
    82c9d686 AppleClang: Remove redundant UNIX condition.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fb3487a9975ed321b48fad5c71dd655d66b68087
commit fb3487a9975ed321b48fad5c71dd655d66b68087
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Feb 3 21:47:45 2015 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Feb 4 18:38:21 2015 -0500

    Features: Fix C90 feature detection.
    
    This bug caused c_function_prototypes to not be recorded at configure
    time when compiling with -std=gnu99 or similar. In the case of feature
    recording, that was not a problem, because the logic in
    CMakeDetermineCompileFeatures.cmake currently assumes that a feature
    present for an earlier standard is present for a later standard.
    
    However, the detection strings are also used in WriteCompilerDetectionHeader,
    so the feature macro has been defined to '0' when using a later language
    dialect.
    
    Fix that by not checking the existence of the __STDC_VERSION__ macro at
    all when detecting C90 features.

diff --git a/Modules/Compiler/AppleClang-C-FeatureTests.cmake b/Modules/Compiler/AppleClang-C-FeatureTests.cmake
index 6f3d6a7..e80b526 100644
--- a/Modules/Compiler/AppleClang-C-FeatureTests.cmake
+++ b/Modules/Compiler/AppleClang-C-FeatureTests.cmake
@@ -7,5 +7,5 @@ set(AppleClang_C99 "${_cmake_oldestSupported} && defined(__STDC_VERSION__) && __
 set(_cmake_feature_test_c_restrict "${AppleClang_C99}")
 set(_cmake_feature_test_c_variadic_macros "${AppleClang_C99}")
 
-set(AppleClang_C90 "${_cmake_oldestSupported} && !defined(__STDC_VERSION__)")
+set(AppleClang_C90 "${_cmake_oldestSupported}")
 set(_cmake_feature_test_c_function_prototypes "${AppleClang_C90}")
diff --git a/Modules/Compiler/Clang-C-FeatureTests.cmake b/Modules/Compiler/Clang-C-FeatureTests.cmake
index 2d8673d..99c2252 100644
--- a/Modules/Compiler/Clang-C-FeatureTests.cmake
+++ b/Modules/Compiler/Clang-C-FeatureTests.cmake
@@ -7,5 +7,5 @@ set(Clang_C99 "${_cmake_oldestSupported} && defined(__STDC_VERSION__) && __STDC_
 set(_cmake_feature_test_c_restrict "${Clang_C99}")
 set(_cmake_feature_test_c_variadic_macros "${Clang_C99}")
 
-set(Clang_C90 "${_cmake_oldestSupported} && !defined(__STDC_VERSION__)")
+set(Clang_C90 "${_cmake_oldestSupported}")
 set(_cmake_feature_test_c_function_prototypes "${Clang_C90}")
diff --git a/Modules/Compiler/GNU-C-FeatureTests.cmake b/Modules/Compiler/GNU-C-FeatureTests.cmake
index d8e456c..b3fe33f 100644
--- a/Modules/Compiler/GNU-C-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-C-FeatureTests.cmake
@@ -13,5 +13,5 @@ set(GNU44_C99 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSIO
 set(_cmake_feature_test_c_restrict "${GNU44_C99}")
 set(_cmake_feature_test_c_variadic_macros "${GNU44_C99}")
 
-set(GNU_C90 "${_cmake_oldestSupported} && !defined(__STDC_VERSION__)")
+set(GNU_C90 "${_cmake_oldestSupported}")
 set(_cmake_feature_test_c_function_prototypes "${GNU_C90}")
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 38c44c8..3ba1e0a 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -164,6 +164,38 @@ if (CMAKE_C_COMPILE_FEATURES)
       )
     endif()
   endif()
+
+  add_executable(CompileFeaturesGenex_C genex_test.c)
+  set_property(TARGET CompileFeaturesGenex_C PROPERTY C_STANDARD 11)
+
+  if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
+    if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6)
+      list(APPEND expected_defs
+        EXPECT_C_STATIC_ASSERT=1
+      )
+    else()
+      list(APPEND expected_defs
+        EXPECT_C_STATIC_ASSERT=0
+      )
+    endif()
+  elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang"
+      OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
+    list(APPEND expected_defs
+      EXPECT_C_STATIC_ASSERT=1
+    )
+  endif()
+
+  list(APPEND expected_defs
+    EXPECT_C_FUNCTION_PROTOTYPES=1
+    EXPECT_C_RESTRICT=1
+  )
+
+  target_compile_definitions(CompileFeaturesGenex_C PRIVATE
+    HAVE_C_FUNCTION_PROTOTYPES=$<COMPILE_FEATURES:c_function_prototypes>
+    HAVE_C_RESTRICT=$<COMPILE_FEATURES:c_restrict>
+    HAVE_C_STATIC_ASSERT=$<COMPILE_FEATURES:c_static_assert>
+    ${expected_defs}
+  )
 endif()
 
 if (CMAKE_CXX_COMPILE_FEATURES)
diff --git a/Tests/CompileFeatures/genex_test.c b/Tests/CompileFeatures/genex_test.c
new file mode 100644
index 0000000..b1215bd
--- /dev/null
+++ b/Tests/CompileFeatures/genex_test.c
@@ -0,0 +1,38 @@
+#ifndef EXPECT_C_STATIC_ASSERT
+# error EXPECT_C_STATIC_ASSERT not defined
+#endif
+#ifndef EXPECT_C_FUNCTION_PROTOTYPES
+# error EXPECT_C_FUNCTION_PROTOTYPES not defined
+#endif
+#ifndef EXPECT_C_RESTRICT
+# error EXPECT_C_RESTRICT not defined
+#endif
+
+#if !EXPECT_C_STATIC_ASSERT
+#if EXPECT_C_STATIC_ASSERT
+#error "Expect c_static_assert feature"
+#endif
+#else
+#if !EXPECT_C_STATIC_ASSERT
+#error "Expect no c_static_assert feature"
+#endif
+#endif
+
+#if !EXPECT_C_FUNCTION_PROTOTYPES
+#  error Expect c_function_prototypes support
+#endif
+
+#if !EXPECT_C_RESTRICT
+#  if EXPECT_C_RESTRICT
+#    error Expect c_restrict support
+#  endif
+#else
+#  if !EXPECT_C_RESTRICT
+#    error Expect no c_restrict support
+#  endif
+#endif
+
+int main()
+{
+
+}
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
index e70a977..c538280 100644
--- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
+++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
@@ -84,6 +84,15 @@ if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
   add_executable(C_undefined c_undefined.c)
   set_property(TARGET C_undefined PROPERTY C_STANDARD 90)
   target_compile_options(C_undefined PRIVATE -Werror=undef)
+
+  add_executable(WriteCompilerDetectionHeader_C main.c)
+  set_property(TARGET WriteCompilerDetectionHeader_C PROPERTY C_STANDARD 90)
+  set_defines(WriteCompilerDetectionHeader_C "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES" "EXPECTED_COMPILER_C_RESTRICT")
+
+  add_executable(WriteCompilerDetectionHeader_C_multi main_multi.c)
+  set_property(TARGET WriteCompilerDetectionHeader_C_multi PROPERTY C_STANDARD 90)
+  set_defines(WriteCompilerDetectionHeader_C_multi "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES" "EXPECTED_COMPILER_C_RESTRICT")
+  target_include_directories(WriteCompilerDetectionHeader_C_multi PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files)
 endif()
 
 add_executable(WriteCompilerDetectionHeader main.cpp)
@@ -130,3 +139,16 @@ add_executable(multi_files_11 multi_files.cpp)
 set_property(TARGET multi_files_11 PROPERTY CXX_STANDARD 11)
 target_include_directories(multi_files_11 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files)
 set_defines(multi_files_11 "${true_defs}" "${false_defs}")
+
+if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
+    OR CMAKE_C_COMPILER_ID STREQUAL "Clang"
+    OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
+  add_executable(WriteCompilerDetectionHeader_C11 main.c)
+  set_property(TARGET WriteCompilerDetectionHeader_C11 PROPERTY C_STANDARD 11)
+  set_defines(WriteCompilerDetectionHeader_C11 "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES;EXPECTED_COMPILER_C_RESTRICT" "")
+
+  add_executable(WriteCompilerDetectionHeader_C11_multi main_multi.c)
+  set_property(TARGET WriteCompilerDetectionHeader_C11_multi PROPERTY C_STANDARD 11)
+  set_defines(WriteCompilerDetectionHeader_C11_multi "EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES;EXPECTED_COMPILER_C_RESTRICT" "")
+  target_include_directories(WriteCompilerDetectionHeader_C11_multi PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/compiler_multi_files)
+endif()
diff --git a/Tests/Module/WriteCompilerDetectionHeader/main.c b/Tests/Module/WriteCompilerDetectionHeader/main.c
new file mode 100644
index 0000000..9023b0f
--- /dev/null
+++ b/Tests/Module/WriteCompilerDetectionHeader/main.c
@@ -0,0 +1,29 @@
+
+#include "test_compiler_detection.h"
+
+#if !defined(TEST_COMPILER_C_FUNCTION_PROTOTYPES) || !TEST_COMPILER_C_FUNCTION_PROTOTYPES
+#  error Expected TEST_COMPILER_C_FUNCTION_PROTOTYPES
+#endif
+
+#if !EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES
+#  error Expected EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES
+#endif
+
+#if !defined(TEST_COMPILER_C_RESTRICT) || !TEST_COMPILER_C_RESTRICT
+#  if EXPECTED_COMPILER_C_RESTRICT
+#    error Expected TEST_COMPILER_C_RESTRICT
+#  endif
+#else
+#  if !EXPECTED_COMPILER_C_RESTRICT
+#    error Expect no TEST_COMPILER_C_RESTRICT
+#  endif
+#endif
+
+#ifdef TEST_COMPILER_CXX_STATIC_ASSERT
+#error Expect no CXX features defined
+#endif
+
+int main()
+{
+  return 0;
+}
diff --git a/Tests/Module/WriteCompilerDetectionHeader/main_multi.c b/Tests/Module/WriteCompilerDetectionHeader/main_multi.c
new file mode 100644
index 0000000..6f4573f
--- /dev/null
+++ b/Tests/Module/WriteCompilerDetectionHeader/main_multi.c
@@ -0,0 +1,29 @@
+
+#include "multi_file_compiler_detection.h"
+
+#if !defined(MULTI_COMPILER_C_FUNCTION_PROTOTYPES) || !MULTI_COMPILER_C_FUNCTION_PROTOTYPES
+#  error Expected MULTI_COMPILER_C_FUNCTION_PROTOTYPES
+#endif
+
+#if !EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES
+#  error Expected EXPECTED_COMPILER_C_FUNCTION_PROTOTYPES
+#endif
+
+#if !defined(MULTI_COMPILER_C_RESTRICT) || !MULTI_COMPILER_C_RESTRICT
+#  if EXPECTED_COMPILER_C_RESTRICT
+#    error Expected MULTI_COMPILER_C_RESTRICT
+#  endif
+#else
+#  if !EXPECTED_COMPILER_C_RESTRICT
+#    error Expect no MULTI_COMPILER_C_RESTRICT
+#  endif
+#endif
+
+#ifdef MULTI_COMPILER_CXX_STATIC_ASSERT
+#error Expect no CXX features defined
+#endif
+
+int main()
+{
+  return 0;
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6027798a30eae02175ce4ad13e1439f4383b6cd3
commit 6027798a30eae02175ce4ad13e1439f4383b6cd3
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 4 19:14:00 2015 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Feb 4 18:36:36 2015 -0500

    Features: Allow setting standard dialect below the default.
    
    If the requested standard dialect is older than the default dialect
    then we must use a flag because we cannot decay to a newer standard.

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 81e37f6..400415b 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2287,7 +2287,21 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
     return;
     }
 
-  for ( ; stdIt <= defaultStdIt; ++stdIt)
+  // Greater or equal because the standards are stored in
+  // backward chronological order.
+  if (stdIt >= defaultStdIt)
+    {
+    std::string option_flag =
+              "CMAKE_" + lang + *stdIt
+                      + "_" + type + "_COMPILE_OPTION";
+
+    const char *opt =
+        target->GetMakefile()->GetRequiredDefinition(option_flag);
+    this->AppendFlagEscape(flags, opt);
+    return;
+    }
+
+  for ( ; stdIt < defaultStdIt; ++stdIt)
     {
     std::string option_flag =
               "CMAKE_" + lang + *stdIt

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9d767810e1e54eb9233854f0dbf1345a0b5be60f
commit 9d767810e1e54eb9233854f0dbf1345a0b5be60f
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 4 22:04:18 2015 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Feb 4 18:29:53 2015 -0500

    Features: Populate CMAKE_<LANG>_STANDARD_DEFAULT only for supported compilers.
    
    If no compiler feature information is known for a given compiler
    version, do not set a language standard default either.  The two
    settings must be recorded consistently.

diff --git a/Modules/Compiler/AppleClang-C.cmake b/Modules/Compiler/AppleClang-C.cmake
index 00d2633..10454f6 100644
--- a/Modules/Compiler/AppleClang-C.cmake
+++ b/Modules/Compiler/AppleClang-C.cmake
@@ -12,7 +12,9 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0)
   set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
 endif()
 
-set(CMAKE_C_STANDARD_DEFAULT 99)
+if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0)
+  set(CMAKE_C_STANDARD_DEFAULT 99)
+endif()
 
 macro(cmake_record_c_compile_features)
   macro(_get_appleclang_features std_version list)
diff --git a/Modules/Compiler/AppleClang-CXX.cmake b/Modules/Compiler/AppleClang-CXX.cmake
index 6d58be3..5194da4 100644
--- a/Modules/Compiler/AppleClang-CXX.cmake
+++ b/Modules/Compiler/AppleClang-CXX.cmake
@@ -19,7 +19,9 @@ if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1)
   set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
 endif()
 
-set(CMAKE_CXX_STANDARD_DEFAULT 98)
+if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)
+  set(CMAKE_CXX_STANDARD_DEFAULT 98)
+endif()
 
 macro(cmake_record_cxx_compile_features)
   macro(_get_appleclang_features std_version list)
diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake
index e07eace..84b2c74 100644
--- a/Modules/Compiler/Clang-CXX.cmake
+++ b/Modules/Compiler/Clang-CXX.cmake
@@ -31,7 +31,9 @@ elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
   set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
 endif()
 
-set(CMAKE_CXX_STANDARD_DEFAULT 98)
+if(UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
+  set(CMAKE_CXX_STANDARD_DEFAULT 98)
+endif()
 
 macro(cmake_record_cxx_compile_features)
   macro(_get_clang_features std_version list)
diff --git a/Modules/Compiler/GNU-C.cmake b/Modules/Compiler/GNU-C.cmake
index fa97a94..89704e6 100644
--- a/Modules/Compiler/GNU-C.cmake
+++ b/Modules/Compiler/GNU-C.cmake
@@ -24,7 +24,7 @@ endif()
 
 if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0)
   set(CMAKE_C_STANDARD_DEFAULT 11)
-else()
+elseif(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.4)
   set(CMAKE_C_STANDARD_DEFAULT 90)
 endif()
 
diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake
index c471daf..86a31e4 100644
--- a/Modules/Compiler/GNU-CXX.cmake
+++ b/Modules/Compiler/GNU-CXX.cmake
@@ -34,7 +34,9 @@ elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
   set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
 endif()
 
-set(CMAKE_CXX_STANDARD_DEFAULT 98)
+if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4)
+  set(CMAKE_CXX_STANDARD_DEFAULT 98)
+endif()
 
 macro(cmake_record_cxx_compile_features)
   macro(_get_gcc_features std_version list)
diff --git a/Modules/Compiler/MSVC-CXX.cmake b/Modules/Compiler/MSVC-CXX.cmake
index 962aaeb..82ce069 100644
--- a/Modules/Compiler/MSVC-CXX.cmake
+++ b/Modules/Compiler/MSVC-CXX.cmake
@@ -1,5 +1,8 @@
-# MSVC has no specific language level or flags to change it.
-set(CMAKE_CXX_STANDARD_DEFAULT "")
+
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
+  # MSVC has no specific language level or flags to change it.
+  set(CMAKE_CXX_STANDARD_DEFAULT "")
+endif()
 
 macro(cmake_record_cxx_compile_features)
   record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
diff --git a/Modules/Compiler/SunPro-CXX.cmake b/Modules/Compiler/SunPro-CXX.cmake
index cb37713..c7bc734 100644
--- a/Modules/Compiler/SunPro-CXX.cmake
+++ b/Modules/Compiler/SunPro-CXX.cmake
@@ -37,7 +37,9 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
   set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=c++11")
 endif()
 
-set(CMAKE_CXX_STANDARD_DEFAULT 98)
+if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.13)
+  set(CMAKE_CXX_STANDARD_DEFAULT 98)
+endif()
 
 macro(cmake_record_cxx_compile_features)
   macro(_get_solaris_studio_features std_version list)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=72537e4436a17535af5424628adef3b614a61679
commit 72537e4436a17535af5424628adef3b614a61679
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 4 23:26:11 2015 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Feb 4 18:28:07 2015 -0500

    Features: Add dialect compile flags only if default is known.
    
    The CMAKE_<LANG>_STANDARD_DEFAULT variable indicates whether the
    compiler has any notion of standard levels and that CMake knows
    about them.  If no language standard levels are available, skip
    all logic to attempt to add a flag for the level.
    
    Also fail with an internal error if a bad default value is set.

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index af4c950..81e37f6 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2209,7 +2209,7 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
     }
   const char* defaultStd
       = this->Makefile->GetDefinition("CMAKE_" + lang + "_STANDARD_DEFAULT");
-  if (defaultStd && !*defaultStd)
+  if (!defaultStd || !*defaultStd)
     {
     // This compiler has no notion of language standard levels.
     return;
@@ -2276,15 +2276,15 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
                                 std::find(stds.begin(), stds.end(), standard);
   assert(stdIt != stds.end());
 
-  std::vector<std::string>::const_iterator defaultStdIt;
-  if (defaultStd)
+  std::vector<std::string>::const_iterator defaultStdIt =
+    std::find(stds.begin(), stds.end(), defaultStd);
+  if (defaultStdIt == stds.end())
     {
-    defaultStdIt = std::find(stds.begin(), stds.end(), defaultStd);
-    assert(defaultStdIt != stds.end());
-    }
-  else
-    {
-    defaultStdIt = stds.end() - 1;
+    std::string e =
+      "CMAKE_" + lang + "_STANDARD_DEFAULT is set to invalid value '" +
+      std::string(defaultStd) + "'";
+    this->Makefile->IssueMessage(cmake::INTERNAL_ERROR, e);
+    return;
     }
 
   for ( ; stdIt <= defaultStdIt; ++stdIt)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=82c9d6868b87a964214a468cae816642950e70b6
commit 82c9d6868b87a964214a468cae816642950e70b6
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Feb 4 22:03:49 2015 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Feb 4 18:28:06 2015 -0500

    AppleClang: Remove redundant UNIX condition.

diff --git a/Modules/Compiler/AppleClang-C.cmake b/Modules/Compiler/AppleClang-C.cmake
index 16f420f..00d2633 100644
--- a/Modules/Compiler/AppleClang-C.cmake
+++ b/Modules/Compiler/AppleClang-C.cmake
@@ -20,7 +20,7 @@ macro(cmake_record_c_compile_features)
   endmacro()
 
   set(_result 0)
-  if (UNIX AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0)
+  if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0)
     _get_appleclang_features(${CMAKE_C11_STANDARD_COMPILE_OPTION} CMAKE_C11_COMPILE_FEATURES)
     if (_result EQUAL 0)
       _get_appleclang_features(${CMAKE_C99_STANDARD_COMPILE_OPTION} CMAKE_C99_COMPILE_FEATURES)
diff --git a/Modules/Compiler/AppleClang-CXX.cmake b/Modules/Compiler/AppleClang-CXX.cmake
index 978c382..6d58be3 100644
--- a/Modules/Compiler/AppleClang-CXX.cmake
+++ b/Modules/Compiler/AppleClang-CXX.cmake
@@ -27,7 +27,7 @@ macro(cmake_record_cxx_compile_features)
   endmacro()
 
   set(_result 0)
-  if (UNIX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0)
     set(_result 0)
     if(CMAKE_CXX14_STANDARD_COMPILE_OPTION)
       _get_appleclang_features(${CMAKE_CXX14_STANDARD_COMPILE_OPTION} CMAKE_CXX14_COMPILE_FEATURES)

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list