2017-09-21 70 views
0

我有一個預編譯庫,也採用動態加載插件。如何爲插件組件設置CMAKE導入目標?

  • 庫L(compoesd BA一個library.liblibrary.dll
  • 插件P(僅由plugin.dll組成)

我限定L的進口目標爲:

add_library(L SHARED IMPORTED) 
set_target_properties(L PROPERTIES 
    IMPORTED_LOCATION_RELEASE library.dll 
    IMPLIB_LOCATION_RELEASE library.lib 
) 

set_target_properties(L PROPERTIES 
    INTERFACE_LINK_LIBRARIES P 
) 

如何定義P的進口目標及其屬性?

如果我把它定義爲:

add_library(P MODULE IMPORTED) 
set_target_properties(P PROPERTIES 
    IMPORTED_LOCATION_RELEASE plugin.dll 
) 

然後使用L時生成的項目會錯誤地plugin.dll認爲是被鏈接的lib。 我想,而不是繼續依賴(這樣我就可以傳遞地安裝plugin.dll),但要避免L到鏈接目標P

回答

0

我已經結束了使用INTERFACE_LINK_LIBRARIES通過不鏈接大號解決這一至P

我通過增加一個額外的變量包含它的插件配置L:

LIST(APPEND L_PLUGINS P) 

使用L可通過簡單地使用變量$ {L_PLUGIN}可以訪問它的插件的目標(例如,以安裝其文件)

注意:這是Qt插件組件使用的相同方法