[Cmake-commits] CMake branch, next, updated. v3.2.0-rc2-800-g7f827ec

Brad King brad.king at kitware.com
Sat Feb 28 12:15:24 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  7f827ece69940026a557f7906ac6436d24962f57 (commit)
       via  00d66557d49989f9813ba9f04beaa0a984699cf0 (commit)
      from  284b149f166f4a51e25a6ef32e234e9d88a4d005 (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=7f827ece69940026a557f7906ac6436d24962f57
commit 7f827ece69940026a557f7906ac6436d24962f57
Merge: 284b149 00d6655
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Sat Feb 28 12:15:24 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Feb 28 12:15:24 2015 -0500

    Merge topic 'fix-crash-on-bad-LANG_STANDARD' into next
    
    00d66557 Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=00d66557d49989f9813ba9f04beaa0a984699cf0
commit 00d66557d49989f9813ba9f04beaa0a984699cf0
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 27 16:48:39 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Sat Feb 28 12:14:42 2015 -0500

    Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426)

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 7ca7684..b64383f 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2270,7 +2270,14 @@ AddCompilerRequirementFlag(std::string &flags, cmTarget* target,
 
   std::vector<std::string>::const_iterator stdIt =
                                 std::find(stds.begin(), stds.end(), standard);
-  assert(stdIt != stds.end());
+  if (stdIt == stds.end())
+    {
+    std::string e =
+      lang + "_STANDARD is set to invalid value '" + standard + "'";
+    this->GetGlobalGenerator()->GetCMakeInstance()
+      ->IssueMessage(cmake::FATAL_ERROR, e, target->GetBacktrace());
+    return;
+    }
 
   std::vector<std::string>::const_iterator defaultStdIt =
     std::find(stds.begin(), stds.end(), defaultStd);
diff --git a/Tests/RunCMake/CompileFeatures/NotAStandard-result.txt b/Tests/RunCMake/CompileFeatures/NotAStandard-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompileFeatures/NotAStandard-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompileFeatures/NotAStandard-stderr.txt b/Tests/RunCMake/CompileFeatures/NotAStandard-stderr.txt
new file mode 100644
index 0000000..deab12f
--- /dev/null
+++ b/Tests/RunCMake/CompileFeatures/NotAStandard-stderr.txt
@@ -0,0 +1,4 @@
+CMake Error at NotAStandard.cmake:[0-9]+ \(add_library\):
+  CXX_STANDARD is set to invalid value 'bad'
+Call Stack \(most recent call first\):
+  CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/CompileFeatures/NotAStandard.cmake b/Tests/RunCMake/CompileFeatures/NotAStandard.cmake
new file mode 100644
index 0000000..11529d8
--- /dev/null
+++ b/Tests/RunCMake/CompileFeatures/NotAStandard.cmake
@@ -0,0 +1,2 @@
+set(CMAKE_CXX_STANDARD bad)
+add_library(somelib STATIC empty.cpp)
diff --git a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
index 833a315..c1b2227 100644
--- a/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CompileFeatures/RunCMakeTest.cmake
@@ -43,6 +43,8 @@ else()
 endif()
 
 if(CXX_STANDARD_DEFAULT)
+  run_cmake(NotAStandard)
+
   foreach(standard 98 11)
     file(READ
       "${RunCMake_BINARY_DIR}/generate_feature_list-build/cxx${standard}_flag.txt"

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list