Browse Source

Merge topic 'find_package_fatal_error_if_required_and_config_not_found'

c5ae733 find_package: Test that REQUIRED aborts processing correctly
c91a54d find_package: error out if REQUIRED Config has not been found
David Cole 13 years ago
parent
commit
fa0f065426

+ 4 - 0
Source/cmFindPackageCommand.cxx

@@ -1062,6 +1062,10 @@ bool cmFindPackageCommand::HandlePackageMode()
 
     this->Makefile->IssueMessage(
       this->Required? cmake::FATAL_ERROR : cmake::WARNING, e.str());
+    if (this->Required)
+      {
+      cmSystemTools::SetFatalErrorOccured();
+      }
 
     if (!aw.str().empty())
       {

+ 6 - 0
Tests/CMakeCommands/find_package/MissingConfig-stderr.txt

@@ -11,3 +11,9 @@ CMake Warning at MissingConfig.cmake:1 \(find_package\):
   been installed.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
+
+
+CMake Warning at MissingConfig.cmake:2 \(message\):
+  This warning must be reachable.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$

+ 1 - 0
Tests/CMakeCommands/find_package/MissingConfig.cmake

@@ -1 +1,2 @@
 find_package(NotHere CONFIG)
+message(WARNING "This warning must be reachable.")

+ 1 - 1
Tests/CMakeCommands/find_package/MissingConfigRequired-stderr.txt

@@ -10,4 +10,4 @@ CMake Error at MissingConfigRequired.cmake:1 \(find_package\):
   "NotHere" provides a separate development package or SDK, be sure it has
   been installed.
 Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
+  CMakeLists.txt:3 \(include\)$

+ 1 - 0
Tests/CMakeCommands/find_package/MissingConfigRequired.cmake

@@ -1 +1,2 @@
 find_package(NotHere CONFIG REQUIRED)
+message(FATAL_ERROR "This error must not be reachable.")

+ 5 - 0
Tests/CMakeCommands/find_package/MissingModule-stderr.txt

@@ -19,3 +19,8 @@ CMake Warning \(dev\) at MissingModule.cmake:1 \(find_package\):
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
 This warning is for project developers.  Use -Wno-dev to suppress it.
+
+CMake Warning at MissingModule.cmake:2 \(message\):
+  This warning must be reachable.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$

+ 1 - 0
Tests/CMakeCommands/find_package/MissingModule.cmake

@@ -1 +1,2 @@
 find_package(NotHere MODULE)
+message(WARNING "This warning must be reachable.")

+ 1 - 1
Tests/CMakeCommands/find_package/MissingModuleRequired-stderr.txt

@@ -18,4 +18,4 @@ CMake Warning \(dev\) at MissingModuleRequired.cmake:1 \(find_package\):
 
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
-This warning is for project developers.  Use -Wno-dev to suppress it.
+This warning is for project developers.  Use -Wno-dev to suppress it.$

+ 1 - 0
Tests/CMakeCommands/find_package/MissingModuleRequired.cmake

@@ -1 +1,2 @@
 find_package(NotHere MODULE REQUIRED)
+message(FATAL_ERROR "This error must not be reachable.")

+ 6 - 0
Tests/CMakeCommands/find_package/MissingNormal-stderr.txt

@@ -15,3 +15,9 @@ CMake Warning at MissingNormal.cmake:1 \(find_package\):
   been installed.
 Call Stack \(most recent call first\):
   CMakeLists.txt:3 \(include\)
+
+
+CMake Warning at MissingNormal.cmake:2 \(message\):
+  This warning must be reachable.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)$

+ 1 - 0
Tests/CMakeCommands/find_package/MissingNormal.cmake

@@ -1 +1,2 @@
 find_package(NotHere)
+message(WARNING "This warning must be reachable.")

+ 1 - 1
Tests/CMakeCommands/find_package/MissingNormalRequired-stderr.txt

@@ -14,4 +14,4 @@ CMake Error at MissingNormalRequired.cmake:1 \(find_package\):
   "NotHere" provides a separate development package or SDK, be sure it has
   been installed.
 Call Stack \(most recent call first\):
-  CMakeLists.txt:3 \(include\)
+  CMakeLists.txt:3 \(include\)$

+ 1 - 0
Tests/CMakeCommands/find_package/MissingNormalRequired.cmake

@@ -1 +1,2 @@
 find_package(NotHere REQUIRED)
+message(FATAL_ERROR "This error must not be reachable.")