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