diff options
Diffstat (limited to 'Tests/InterfaceLibrary')
-rw-r--r-- | Tests/InterfaceLibrary/CMakeLists.txt | 20 | ||||
-rw-r--r-- | Tests/InterfaceLibrary/definetestexe.cpp | 3 | ||||
-rw-r--r-- | Tests/InterfaceLibrary/item.cpp | 4 | ||||
-rw-r--r-- | Tests/InterfaceLibrary/item_fake.cpp | 5 |
4 files changed, 30 insertions, 2 deletions
diff --git a/Tests/InterfaceLibrary/CMakeLists.txt b/Tests/InterfaceLibrary/CMakeLists.txt index ee81419..33c4b90 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) @@ -47,6 +64,7 @@ target_link_libraries(iface_whitelist INTERFACE $<$<BOOL:$<TARGET_PROPERTY:CUSTO add_executable(exec_whitelist dummy.cpp) target_link_libraries(exec_whitelist iface_whitelist) +set(CMAKE_NO_SYSTEM_FROM_IMPORTED 1) add_library(iface_imported INTERFACE IMPORTED) set_property(TARGET iface_imported PROPERTY INTERFACE_COMPILE_DEFINITIONS diff --git a/Tests/InterfaceLibrary/definetestexe.cpp b/Tests/InterfaceLibrary/definetestexe.cpp index a6b5592..098502c 100644 --- a/Tests/InterfaceLibrary/definetestexe.cpp +++ b/Tests/InterfaceLibrary/definetestexe.cpp @@ -17,8 +17,9 @@ extern int obj(); extern int sub(); +extern int item(); int main(int, char**) { - return obj() + sub(); + return obj() + sub() + item(); } diff --git a/Tests/InterfaceLibrary/item.cpp b/Tests/InterfaceLibrary/item.cpp new file mode 100644 index 0000000..85cda1b --- /dev/null +++ b/Tests/InterfaceLibrary/item.cpp @@ -0,0 +1,4 @@ +int item() +{ + return 0; +} diff --git a/Tests/InterfaceLibrary/item_fake.cpp b/Tests/InterfaceLibrary/item_fake.cpp new file mode 100644 index 0000000..b4bd829 --- /dev/null +++ b/Tests/InterfaceLibrary/item_fake.cpp @@ -0,0 +1,5 @@ +extern int item_undefined(); +int item() +{ + return item_undefined(); +} |