簡體   English   中英

給定目標名稱列表,如何獲取目標文件名列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM