2014-02-25 47 views
0

我有不同的,可配置的依賴關係的項目:收集來自不同的文件夾層次信息的CMake

IF(HAVE_LIBA) 
    ADD_SUBDIRECTORY(something) 
ENDIF() 

IF(HAVE_LIBB) 
    ADD_SUBDIRECTORY(somethingElse) 
ENDIF() 

我想有圖書館的中心名單,包括終於有庫的路徑和安裝路徑已經建立了一定的配置。

的CMakeLists.txt:

SET(MYPROJECT_LIBS "") 

東西/的CMakeLists.txt:

ADD_LIBRARY(somethingLib ...) 
# Howto append somethingLib to MYPROJECT_LIBS 

SET(... PARENT_SCOPE)的CMake> = 2.6]將走一條路,但是,我有幾個級別的文件夾和父級範圍只修改上面一個級別的變量。

緩存MYPROJECT_LIBS也沒有效果。

關於如何填充這些列表的任何其他(也許是一般)建議?

+0

你說的 「緩存MYPROJECT_LIBS也沒有效果」 是什麼意思? – Peter

+0

@Peter我在沒有修改頂層的var的子目錄中嘗試SET(var「..」CACHE INTERNAL「」),但是可能是一個範圍錯誤,因爲我也有var在本地範圍上實例化。 – braggPeaks

回答

3

改爲填充全局屬性。

set_property(GLOBAL APPEND PROPERTY THE_LIBS_PROP liba) 

閱讀:

get_property(THE_LIBS GLOBAL PROPERTY THE_LIBS_PROP) 
message("The libs: ${THE_LIBS}") 
+0

工程就像一個魅力,非常感謝你。對不同設計有何建議? – braggPeaks

+0

不知道你在使用什麼內容,不可能推薦任何不同的東西。 – steveire

相關問題