簡體   English   中英

通過CMAKE將配置文件作為靜態庫的一部分

[英]Make config file as a part of static library through CMAKE

我需要將配置文件作為我的靜態庫的一部分,這意味着如果某些項目鏈接到我的靜態庫,則應將配置文件復制到該項目的構建目錄中。 對於引用靜態庫的所有項目,此行為應相同。

這是我要實現的目標:

libabc
   abc.cfg
project1
   build
      abc.cfg  -- Because project1 references static library libabc

我不想為每個項目更改CMakeLists.txt

要知道庫是否為鏈接,您可以使用get_property()獲取所有鏈接庫的列表到目標,然后搜索LINK_LIBRARIES屬性。

使用get_property()您將獲得鏈接庫的列表。 您可以使用string()

然后,當找到鏈接的庫時,可以使用file()將配置文件復制到相應的文件夾中。

你得到這樣的代碼

get_property(MY_LINKED_LIBRARIES TARGET ${MY_TARGET} PROPERTY LINK LIBRARIES)
string(FIND ${MY_LINKED_LIBRARIES} ${MY_LIBRARY_NAME} LIBRARY_FIND)
if (LIBRARY_FIND NOT EQUAL -1)
    file (COPY "abc.cfg" DESTINATION "${MY_LIBRARY_NAME}/abc.cfg")
endif ()

為所有庫提供一個for循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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