diff options
author | Brad King <brad.king@kitware.com> | 2018-09-11 12:20:44 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2018-09-11 12:20:50 (GMT) |
commit | b1c8d95dbe97ab2511e08518bf8eee1f5da2e941 (patch) | |
tree | 92bca74c16341c4b47b13b0c46ae148889a69ea4 /Tests | |
parent | 4188b8fd6a17b7959aff8cf695ad02c291171950 (diff) | |
parent | f35be599612b788125d08a7c3e61d0fad3805bdd (diff) | |
download | CMake-b1c8d95dbe97ab2511e08518bf8eee1f5da2e941.zip CMake-b1c8d95dbe97ab2511e08518bf8eee1f5da2e941.tar.gz CMake-b1c8d95dbe97ab2511e08518bf8eee1f5da2e941.tar.bz2 |
Merge topic 'imported-same-name'
f35be59961 Fix transitive usage requirements through same-name imported targets
1b57f49586 genex: Simplify cmGeneratorExpressionInterpreter
bea390e9bd Fix dependency propagation through same-name imported targets
fc7e4d1ed8 cmLinkItem: Convert to a "sum type" over a string and target pointer
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2359
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/ImportedSameName/A/CMakeLists.txt | 8 | ||||
-rw-r--r-- | Tests/ImportedSameName/A/a.c | 3 | ||||
-rw-r--r-- | Tests/ImportedSameName/B/CMakeLists.txt | 8 | ||||
-rw-r--r-- | Tests/ImportedSameName/B/b.c | 3 | ||||
-rw-r--r-- | Tests/ImportedSameName/CMakeLists.txt | 8 | ||||
-rw-r--r-- | Tests/ImportedSameName/main.c | 16 |
7 files changed, 47 insertions, 0 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 971d7ff..a22521b 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -396,6 +396,7 @@ if(BUILD_TESTING) ADD_TEST_MACRO(CompatibleInterface CompatibleInterface) ADD_TEST_MACRO(AliasTarget AliasTarget) ADD_TEST_MACRO(StagingPrefix StagingPrefix) + ADD_TEST_MACRO(ImportedSameName ImportedSameName) ADD_TEST_MACRO(InterfaceLibrary InterfaceLibrary) if (CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]") set(ConfigSources_BUILD_OPTIONS -DCMAKE_BUILD_TYPE=Debug) diff --git a/Tests/ImportedSameName/A/CMakeLists.txt b/Tests/ImportedSameName/A/CMakeLists.txt new file mode 100644 index 0000000..0a31b40 --- /dev/null +++ b/Tests/ImportedSameName/A/CMakeLists.txt @@ -0,0 +1,8 @@ +add_library(a STATIC a.c) +target_compile_definitions(a INTERFACE DEF_A) + +add_library(sameName INTERFACE IMPORTED) +target_link_libraries(sameName INTERFACE a) + +add_library(ifaceA INTERFACE) +target_link_libraries(ifaceA INTERFACE sameName) diff --git a/Tests/ImportedSameName/A/a.c b/Tests/ImportedSameName/A/a.c new file mode 100644 index 0000000..4ef3698 --- /dev/null +++ b/Tests/ImportedSameName/A/a.c @@ -0,0 +1,3 @@ +void a(void) +{ +} diff --git a/Tests/ImportedSameName/B/CMakeLists.txt b/Tests/ImportedSameName/B/CMakeLists.txt new file mode 100644 index 0000000..d930326 --- /dev/null +++ b/Tests/ImportedSameName/B/CMakeLists.txt @@ -0,0 +1,8 @@ +add_library(b STATIC b.c) +target_compile_definitions(b INTERFACE DEF_B) + +add_library(sameName INTERFACE IMPORTED) +target_link_libraries(sameName INTERFACE b) + +add_library(ifaceB INTERFACE) +target_link_libraries(ifaceB INTERFACE sameName) diff --git a/Tests/ImportedSameName/B/b.c b/Tests/ImportedSameName/B/b.c new file mode 100644 index 0000000..c7c7df4 --- /dev/null +++ b/Tests/ImportedSameName/B/b.c @@ -0,0 +1,3 @@ +void b(void) +{ +} diff --git a/Tests/ImportedSameName/CMakeLists.txt b/Tests/ImportedSameName/CMakeLists.txt new file mode 100644 index 0000000..4292c12 --- /dev/null +++ b/Tests/ImportedSameName/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.12) +project(ImportedSameName C) + +add_subdirectory(A) +add_subdirectory(B) + +add_executable(ImportedSameName main.c) +target_link_libraries(ImportedSameName PRIVATE ifaceA ifaceB) diff --git a/Tests/ImportedSameName/main.c b/Tests/ImportedSameName/main.c new file mode 100644 index 0000000..a0cb27f --- /dev/null +++ b/Tests/ImportedSameName/main.c @@ -0,0 +1,16 @@ +#ifndef DEF_A +# error "DEF_A not defined" +#endif +#ifndef DEF_B +# error "DEF_B not defined" +#endif + +extern void a(void); +extern void b(void); + +int main(void) +{ + a(); + b(); + return 0; +} |