diff options
author | Brad King <brad.king@kitware.com> | 2020-01-10 15:44:59 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-01-10 16:40:18 (GMT) |
commit | c40229968cec39590ccdf54402625c83b44581a0 (patch) | |
tree | a33f3d07cd18867bfb2ff5aaf56dee795e26e127 | |
parent | 3795dea6f1d4ca9bc1a2131173ed190f6c362fbe (diff) | |
download | CMake-c40229968cec39590ccdf54402625c83b44581a0.zip CMake-c40229968cec39590ccdf54402625c83b44581a0.tar.gz CMake-c40229968cec39590ccdf54402625c83b44581a0.tar.bz2 |
target_link_libraries: Add FIXME comment for out-of-dir genex list
Issue: #20204
-rw-r--r-- | Source/cmTargetLinkLibrariesCommand.cxx | 4 | ||||
-rw-r--r-- | Tests/CMakeCommands/target_link_libraries/SubDirB/CMakeLists.txt | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx index e1ac6a8..ad59748 100644 --- a/Source/cmTargetLinkLibrariesCommand.cxx +++ b/Source/cmTargetLinkLibrariesCommand.cxx @@ -406,6 +406,10 @@ static bool HandleLibrary(cmMakefile& mf, cmTarget* target, // the name to tell ResolveLinkItem to look up the name in the // caller's directory. cmDirectoryId const dirId = mf.GetDirectoryId(); + // FIXME: The "lib" may be a genex with a list inside it. + // After expansion this id will only attach to the last entry, + // or may attach to an empty string! We will need another way + // to encode this that can apply to a whole list. See issue #20204. libRef = lib + CMAKE_DIRECTORY_ID_SEP + dirId.String; } else { // This is an absolute path or a library name added by a caller diff --git a/Tests/CMakeCommands/target_link_libraries/SubDirB/CMakeLists.txt b/Tests/CMakeCommands/target_link_libraries/SubDirB/CMakeLists.txt index 7c918e6..10f926a 100644 --- a/Tests/CMakeCommands/target_link_libraries/SubDirB/CMakeLists.txt +++ b/Tests/CMakeCommands/target_link_libraries/SubDirB/CMakeLists.txt @@ -4,6 +4,9 @@ add_executable(SubDirB SubDirB.c) # be visible to the directory in which TopDir is defined. target_link_libraries(TopDir PUBLIC SameNameImported) +#FIXME: Demonstrate known issue #20204. +#target_link_libraries(TopDir PUBLIC "$<1:SameNameImported;SameNameImported>") + # Link SubDirA to a target imported in this directory that has the same # name as a target imported in SubDirA's directory. We verify when # compiling SubDirA that it sees our target and its own. |