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.
This commit is contained in:
Brad King 2013-11-01 13:39:50 -04:00
parent c515dc5748
commit 5a2fc3d696
5 changed files with 13 additions and 0 deletions

View File

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

View File

@ -0,0 +1 @@
1

View File

@ -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\)

View File

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

View File

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