diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-03-19 14:50:01 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-03-19 14:51:21 (GMT) |
commit | 2600e923a66a86784f756c7d5b9a8b06c5848576 (patch) | |
tree | 67a071f94c4169fb2ce826de095de7a1a8f22b6e /Source | |
parent | 0f4e8fd0e9d4be3d6a9b6fd6d5a89f5155192064 (diff) | |
download | CMake-2600e923a66a86784f756c7d5b9a8b06c5848576.zip CMake-2600e923a66a86784f756c7d5b9a8b06c5848576.tar.gz CMake-2600e923a66a86784f756c7d5b9a8b06c5848576.tar.bz2 |
Disallow INTERFACE libraries with add_custom_command(TARGET).
Don't attempt to trace their dependencies.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmLocalGenerator.cxx | 3 | ||||
-rw-r--r-- | Source/cmMakefile.cxx | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index aca195c..7890379 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -263,7 +263,8 @@ void cmLocalGenerator::TraceDependencies() for(cmGeneratorTargetsType::iterator t = targets.begin(); t != targets.end(); ++t) { - if (t->second->Target->IsImported()) + if (t->second->Target->IsImported() + || t->second->Target->GetType() == cmTarget::INTERFACE_LIBRARY) { continue; } diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index f248c57..10137ec 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -926,6 +926,14 @@ cmMakefile::AddCustomCommandToTarget(const char* target, this->IssueMessage(cmake::FATAL_ERROR, e.str()); return; } + if(ti->second.GetType() == cmTarget::INTERFACE_LIBRARY) + { + cmOStringStream e; + e << "Target \"" << target << "\" is an INTERFACE library " + "that may not have PRE_BUILD, PRE_LINK, or POST_BUILD commands."; + this->IssueMessage(cmake::FATAL_ERROR, e.str()); + return; + } // Add the command to the appropriate build step for the target. std::vector<std::string> no_output; cmCustomCommand cc(this, no_output, depends, |