[英]How to obtain a list of target filenames given a list of target names?
在cmake
中,可以使用生成器表達式獲取可執行文件的路徑。 例如,如果target_x
是目標的名稱,您可以這樣做:
$<TARGET_FILE:target_x>
但是,我有一長串可執行文件
set(EXAMPLE_EXECUTABLES_TARGETS
"target_a"
"target_b"
"target_c"
"target_d"
"target_e"
)
我將如何為這個列表做同樣的事情? 我目前的策略是遍歷列表並嘗試找到包含二進制文件名的屬性:
set(EXAMPLE_EXECUTABLES)
foreach (target ${EXAMPLE_EXECUTABLES_TARGETS})
get_target_property(target_file ${target} RUNTIME_OUTPUT_NAME)
message(STATUS "target ${target} value ${target_file}")
endforeach ()
但是cmake
將以下內容輸出到控制台:
-- target FromFileC value target_file-NOTFOUND
-- target FromFileCpp value target_file-NOTFOUND
-- target AddFromStringC value target_file-NOTFOUND
-- target AddFromStringCpp value target_file-NOTFOUND
-- target AddFromFileC value target_file-NOTFOUND
-- target AddFromFileCpp value target_file-NOTFOUND
-- target AddFromUriC value target_file-NOTFOUND
-- target AddFromUriCpp value target_file-NOTFOUND
我能夠遵循評論中的建議:
set(EXAMPLE_EXECUTABLES_TARGETS
"target_a"
"target_b"
"target_c"
"target_d"
"target_e"
)
foreach (target ${EXAMPLE_EXECUTABLES_TARGETS})
message(STATUS "$<TARGET_FILE:${target}")
endforeach ()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.