add_dependencies: Disallow use with INTERFACE_LIBRARY.

This commit is contained in:
Stephen Kelly 2013-12-25 15:11:50 +01:00
parent 0bb3ca2874
commit 6db7e6d24c
5 changed files with 21 additions and 0 deletions

View File

@ -33,6 +33,15 @@ bool cmAddDependenciesCommand
}
if(cmTarget* target = this->Makefile->FindTargetToUse(target_name.c_str()))
{
if (target->GetType() == cmTarget::INTERFACE_LIBRARY)
{
cmOStringStream e;
e << "Cannot add target-level dependencies to INTERFACE library "
"target \"" << target_name << "\".\n";
this->SetError(e.str().c_str());
return false;
}
std::vector<std::string>::const_iterator s = args.begin();
++s; // skip over target_name
for (; s != args.end(); ++s)

View File

@ -5,3 +5,4 @@ run_cmake(target_commands)
run_cmake(no_shared_libs)
run_cmake(whitelist)
run_cmake(genex_link)
run_cmake(add_dependencies)

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,6 @@
CMake Error at add_dependencies.cmake:4 \(add_dependencies\):
add_dependencies Cannot add target-level dependencies to INTERFACE library
target "iface".
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@ -0,0 +1,4 @@
add_library(foo empty.cpp)
add_library(iface INTERFACE)
add_dependencies(iface foo)