Browse Source

Check for OBJECT_LIBRARY source files at start of generation

Teach cmGlobalGenerator::CheckTargets to include OBJECT_LIBRARY targets
in the check for source file existence.

Extend the RunCMake.ObjectLibrary test to cover this case.
Brad King 12 years ago
parent
commit
5a2fc3d696

+ 1 - 0
Source/cmGlobalGenerator.cxx

@@ -1088,6 +1088,7 @@ bool cmGlobalGenerator::CheckTargets()
          target.GetType() == cmTarget::STATIC_LIBRARY ||
          target.GetType() == cmTarget::SHARED_LIBRARY ||
          target.GetType() == cmTarget::MODULE_LIBRARY ||
+         target.GetType() == cmTarget::OBJECT_LIBRARY ||
          target.GetType() == cmTarget::UTILITY)
         {
         if(!target.FindSourceFiles())

+ 1 - 0
Tests/RunCMake/ObjectLibrary/MissingSource-result.txt

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

+ 9 - 0
Tests/RunCMake/ObjectLibrary/MissingSource-stderr.txt

@@ -0,0 +1,9 @@
+CMake Error at MissingSource.cmake:1 \(add_library\):
+  Cannot find source file:
+
+    missing.c
+
+  Tried extensions( \.[A-Za-z+]+|
+ )*
+Call Stack \(most recent call first\):
+  CMakeLists.txt:3 \(include\)

+ 1 - 0
Tests/RunCMake/ObjectLibrary/MissingSource.cmake

@@ -0,0 +1 @@
+add_library(A OBJECT missing.c)

+ 1 - 0
Tests/RunCMake/ObjectLibrary/RunCMakeTest.cmake

@@ -12,6 +12,7 @@ run_cmake(Install)
 run_cmake(LinkObjLHS)
 run_cmake(LinkObjRHS1)
 run_cmake(LinkObjRHS2)
+run_cmake(MissingSource)
 run_cmake(ObjWithObj)
 run_cmake(PostBuild)
 run_cmake(PreBuild)