diff options
author | Brad King <brad.king@kitware.com> | 2016-11-03 20:44:32 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-11-09 14:45:14 (GMT) |
commit | 09cda9d5e7bb31f05177bdaf11d24aeaf85a8dd3 (patch) | |
tree | a755fd6424b16a66b008c998e108e7c1b43b64df /Tests/InterfaceLibrary/CMakeLists.txt | |
parent | 1d1f1eeb6a52d464d476eb0a46eb75c452e3dfbc (diff) | |
download | CMake-09cda9d5e7bb31f05177bdaf11d24aeaf85a8dd3.zip CMake-09cda9d5e7bb31f05177bdaf11d24aeaf85a8dd3.tar.gz CMake-09cda9d5e7bb31f05177bdaf11d24aeaf85a8dd3.tar.bz2 |
Allow imported INTERFACE libraries to specify a link library name
Add an `IMPORTED_LIBNAME[_<CONFIG>]` target property to specify a library
name to be placed on the link line in place of an interface library
since it has no library file of its own. Restrict use of the property
to imported `INTERFACE` libraries.
This will be particularly useful for find modules that need to provide
imported libraries from system SDKs where the full path to the library
file is not known. Now such find modules will be able to provide an
imported interface library and set `IMPORTED_LIBNAME` to refer to the
SDK library by name.
Issue: #15267
Diffstat (limited to 'Tests/InterfaceLibrary/CMakeLists.txt')
-rw-r--r-- | Tests/InterfaceLibrary/CMakeLists.txt | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Tests/InterfaceLibrary/CMakeLists.txt b/Tests/InterfaceLibrary/CMakeLists.txt index ee81419..3db210a 100644 --- a/Tests/InterfaceLibrary/CMakeLists.txt +++ b/Tests/InterfaceLibrary/CMakeLists.txt @@ -25,8 +25,25 @@ target_sources(iface_objlib INTERFACE $<TARGET_OBJECTS:objlib>) add_library(intermediate INTERFACE) target_link_libraries(intermediate INTERFACE iface_objlib) +add_library(item_fake_tgt STATIC item_fake.cpp) +set_property(TARGET item_fake_tgt PROPERTY OUTPUT_NAME item_fake) +add_library(item_real STATIC item.cpp) +add_library(item_iface INTERFACE IMPORTED) +set_property(TARGET item_iface PROPERTY IMPORTED_LIBNAME item_real) +add_dependencies(item_iface item_real) +link_directories(${CMAKE_CURRENT_BINARY_DIR}) + add_executable(InterfaceLibrary definetestexe.cpp) -target_link_libraries(InterfaceLibrary iface_nodepends headeriface subiface intermediate) +target_link_libraries(InterfaceLibrary + iface_nodepends + headeriface + subiface + intermediate + + item_iface + item_fake # ensure that 'item_real' is ordered in place of item_iface + ) +add_dependencies(InterfaceLibrary item_fake_tgt) add_subdirectory(libsdir) |