Hello,

I was reading the CMake documentation regarding generator expressions, and I 
found the following:

"$<TARGET_NAME:...>
Marks ... as being the name of a target. This is required if exporting targets 
to multiple dependent export sets. The ... must be a literal name of a target- 
it may not contain generator expressions."

From that I understand that if some targets from an export set depend on other 
targets from other export set, the dependencies should be specified using 
$<TARGET_NAME:...> instead of the targets' names.
I found the thread (this message specifically: 
https://www.mail-archive.com/cmake-developers@cmake.org/msg05498.html) that is 
responsible for the introduction of the TARGET_NAME generator expression, 
however I cannot find an example for its use.

I believe it has something to do with adding the correct namespace to the 
"required library".

I tried an example of dependent export sets in which I do not use 
$<TARGET_NAME:...>, I even use the target's name inside another generator 
expression, but no error is generated and the output files contain the correct 
"imported" targets (with the correct namespaces):

"project(target_name)
add_library(a a.cpp)
add_library(b b.cpp)

target_link_libraries(b $<$<EQUAL:1,1>:a>)


export(TARGETS
       a
       NAMESPACE foo_
       FILE a_config.cmake
)
 
export(TARGETS
       b
       NAMESPACE bar_
       FILE b_config.cmake
)"

When are we required to use the TARGET_NAME generator expression?


Thank you,
Razvan
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to