target_link_libraries: Fix out-of-dir linking of a list of targets
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)