Skip to content

Commit 46f1fa0

Browse files
committed
Merge topic 'imported-local-target-alias' into release-3.18
7b0f650 ALIAS targets: Non-global aliases must be propagated to sub-directories Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5002
2 parents 1ec3fee + 7b0f650 commit 46f1fa0

File tree

5 files changed

+28
-6
lines changed

5 files changed

+28
-6
lines changed

Source/cmMakefile.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,6 +1461,9 @@ void cmMakefile::InitializeFromParent(cmMakefile* parent)
14611461
// Imported targets.
14621462
this->ImportedTargets = parent->ImportedTargets;
14631463

1464+
// Non-global Alias targets.
1465+
this->AliasTargets = parent->AliasTargets;
1466+
14641467
// Recursion depth.
14651468
this->RecursionDepth = parent->RecursionDepth;
14661469
}

Tests/RunCMake/alias_targets/get_property-subdir/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@ check_property (alias::import-local-subdir ALIASED_TARGET "import-local")
66
check_property (alias::import-local-subdir IMPORTED "TRUE")
77
check_property (alias::import-local-subdir ALIAS_GLOBAL "FALSE")
88
check_property (alias::import-local-subdir IMPORT_LOCAL_PROPERTY "IMPORT_LOCAL")
9+
10+
11+
# non-global alias defined in parent directory must be visible in sub-directory
12+
check_property (alias::import-local ALIASED_TARGET "import-local")
13+
check_property (alias::import-local IMPORTED "TRUE")
14+
check_property (alias::import-local ALIAS_GLOBAL "FALSE")
15+
check_property (alias::import-local IMPORT_LOCAL_PROPERTY "IMPORT_LOCAL")

Tests/RunCMake/target_link_libraries-ALIAS/AliasTargets.cmake

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,25 @@ endif()
1515
add_library(import-local SHARED IMPORTED)
1616
set_property(TARGET import-local PROPERTY IMPORTED_LOCATION "${binary_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}func${CMAKE_SHARED_LIBRARY_SUFFIX}")
1717
set_property(TARGET import-local PROPERTY IMPORTED_IMPLIB "${binary_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}func${CMAKE_IMPORT_LIBRARY_SUFFIX}")
18-
add_library(alias-local ALIAS import-local)
18+
add_library(alias::local ALIAS import-local)
1919

2020
add_library (lib-local SHARED lib.c)
21-
target_link_libraries (lib-local PRIVATE import-local)
21+
target_link_libraries (lib-local PRIVATE alias::local)
2222

2323
add_executable (main-local main.c)
24-
target_link_libraries (main-local PRIVATE import-local)
24+
target_link_libraries (main-local PRIVATE alias::local)
2525

2626

2727
add_library(import-global SHARED IMPORTED GLOBAL)
2828
set_property(TARGET import-global PROPERTY IMPORTED_LOCATION "${binary_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}func${CMAKE_SHARED_LIBRARY_SUFFIX}")
2929
set_property(TARGET import-global PROPERTY IMPORTED_IMPLIB "${binary_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}func${CMAKE_IMPORT_LIBRARY_SUFFIX}")
30-
add_library(alias-global ALIAS import-global)
30+
add_library(alias::global ALIAS import-global)
3131

3232
add_library (lib-global SHARED lib.c)
33-
target_link_libraries (lib-global PRIVATE import-global)
33+
target_link_libraries (lib-global PRIVATE alias::global)
3434

3535
add_executable (main-global main.c)
36-
target_link_libraries (main-global PRIVATE import-global)
36+
target_link_libraries (main-global PRIVATE alias::global)
37+
38+
39+
add_subdirectory(sub_dir)

Tests/RunCMake/target_link_libraries-ALIAS/RunCMakeTest.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,7 @@ run_cmake_target(AliasTargets lib-local lib-local --config Release)
1919
run_cmake_target(AliasTargets main-local main-local --config Release)
2020
run_cmake_target(AliasTargets lib-global lib-global --config Release)
2121
run_cmake_target(AliasTargets main-global main-global --config Release)
22+
run_cmake_target(AliasTargets lib-sub lib-sub --config Release)
23+
run_cmake_target(AliasTargets main-sub main-sub --config Release)
2224
unset(RunCMake_TEST_OPTIONS)
2325
unset(RunCMake_TEST_OUTPUT_MERGE)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
3+
add_library (lib-sub SHARED ../lib.c)
4+
target_link_libraries (lib-sub PRIVATE alias::local)
5+
6+
add_executable (main-sub ../main.c)
7+
target_link_libraries (main-sub PRIVATE alias::local)

0 commit comments

Comments
 (0)