Bläddra i källkod

export(): Check targets exist at configure-time (#14608)

Commit 66b290e7 (export(): Process the export() command at generate
time., 2012-10-06 ) refactored export() so that it could evaluate
strings at generate-time. This was intended for evaluating target
properties, but that commit also removed a check for target
existence at configure-time. Restore that check and add a test for
this case.
Stephen Kelly 12 år sedan
förälder
incheckning
1cd1430b1f

+ 8 - 0
Source/cmExportCommand.cxx

@@ -135,6 +135,14 @@ bool cmExportCommand
         return false;
         }
       }
+    else
+      {
+      cmOStringStream e;
+      e << "given target \"" << *currentTarget
+        << "\" which is not built by this project.";
+      this->SetError(e.str().c_str());
+      return false;
+      }
     }
 
   cmGlobalGenerator *gg = this->Makefile->GetLocalGenerator()

+ 1 - 0
Tests/RunCMake/CMakeLists.txt

@@ -98,6 +98,7 @@ add_RunCMake_test(Syntax)
 
 add_RunCMake_test(add_dependencies)
 add_RunCMake_test(build_command)
+add_RunCMake_test(export)
 add_RunCMake_test(cmake_minimum_required)
 add_RunCMake_test(find_package)
 add_RunCMake_test(get_filename_component)

+ 3 - 0
Tests/RunCMake/export/CMakeLists.txt

@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8.4)
+project(${RunCMake_TEST})
+include(${RunCMake_TEST}.cmake)

+ 3 - 0
Tests/RunCMake/export/RunCMakeTest.cmake

@@ -0,0 +1,3 @@
+include(RunCMake)
+
+run_cmake(TargetNotFound)

+ 1 - 0
Tests/RunCMake/export/TargetNotFound-result.txt

@@ -0,0 +1 @@
+1

+ 4 - 0
Tests/RunCMake/export/TargetNotFound-stderr.txt

@@ -0,0 +1,4 @@
+CMake Error at TargetNotFound.cmake:1 \(export\):
+  export given target "nonexistenttarget" which is not built by this project.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)

+ 1 - 0
Tests/RunCMake/export/TargetNotFound.cmake

@@ -0,0 +1 @@
+export(TARGETS nonexistenttarget FILE somefile.cmake)