Skip to content

target_link_libraries: Fix out-of-dir linking of a list of targets

Brad King requested to merge brad.king/cmake:out-of-dir-link-list into master

In a case like

target_link_libraries(targetInOtherDir PUBLIC "$<1:a;b>")

then all entries in the list need to be looked up in the caller's scope. Previously our ::@(directory-id) suffix would apply only to the last entry. Instead surround the entire entry by a pair ::@(directory-id);...;::@ so that the ::@ syntax can encode a directory lookup scope change evaluated as the list is processed.

Fixes: #20204 (closed)

Merge request reports