diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-08-21 20:00:48 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-21 13:46:27 (GMT) |
commit | b04f3b9a2a116b1956d5342637cda1348a5ee07b (patch) | |
tree | b7235edeb963d70d50711210172a7f3612711142 /Source/cmLocalUnixMakefileGenerator3.cxx | |
parent | dba4962b868c3baa7886dcd3f8b597e971a479a2 (diff) | |
download | CMake-b04f3b9a2a116b1956d5342637cda1348a5ee07b.zip CMake-b04f3b9a2a116b1956d5342637cda1348a5ee07b.tar.gz CMake-b04f3b9a2a116b1956d5342637cda1348a5ee07b.tar.bz2 |
Create make rules for INTERFACE_LIBRARY targets.
The result is that the depends of the target are created.
So,
add_library(somelib foo.cpp)
add_library(anotherlib EXCLUDE_FROM_ALL foo.cpp)
add_library(extra EXCLUDE_FROM_ALL foo.cpp)
target_link_libraries(anotherlib extra)
add_library(iface INTERFACE)
target_link_libraries(iface INTERFACE anotherlib)
Executing 'make iface' will result in the anotherlib and extra targets
being made.
Adding a regular executable to the INTERFACE of an INTERFACE_LIBRARY
will not result in the executable being built with 'make iface' because
of the logic in cmComputeTargetDepends::AddTargetDepend.
So far, this is implemented only for the Makefile generator. Other
generators will follow if this feature is possible for them.
Make INTERFACE_LIBRARY targets part of the all target by default.
Test this by building the all target and making the expected library
EXCLUDE_FROM_ALL.
Diffstat (limited to 'Source/cmLocalUnixMakefileGenerator3.cxx')
-rw-r--r-- | Source/cmLocalUnixMakefileGenerator3.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index dc401dc..508eca1 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -381,6 +381,7 @@ void cmLocalUnixMakefileGenerator3 (t->second.GetType() == cmTarget::SHARED_LIBRARY) || (t->second.GetType() == cmTarget::MODULE_LIBRARY) || (t->second.GetType() == cmTarget::OBJECT_LIBRARY) || + (t->second.GetType() == cmTarget::INTERFACE_LIBRARY) || (t->second.GetType() == cmTarget::UTILITY)) { emitted.insert(t->second.GetName()); |