2013-02-11 72 views
2

我正在構建一個使用Ogre和CEGUI的項目,而cmake有一個構建工具。我目前遇到了一些問題:CEGUI找不到它的未編譯依賴關係,而Ogre找到它們。該項目的總體結構是:cmake-查找未編譯的庫

Base 
    BaseLevelCmake 
    Deps 
    CEGUI 
    UpperLevelCmake 
    Ogre 
    UpperLevelCmake 
    There deps 
Project 
    MyProjectCmakelist 

所以這個問題是兩個方面的問題:

  1. 我怎樣才能找到的CMake代碼未編譯?
  2. 我怎麼能不提示修改上水平CMake的列表中DEPS的位置?«

我的目標是從供應鏈管理的基本文件夾中取出,開始GetDeps(.SH/.bat)的形式,將取所有的deps,然後調用cmake,這將構建一切的構建文件並配置Ogre和CEGUI。

現在,我必須手動構建幾乎所有的代碼和添加到環境的路徑,以便它們可以找到。如果一切都是自動的,這將是有用的。

回答

1

如果您不開發/維護CEGUI,而是自己跟蹤解壓源,爲什麼不使用上游提供的任何構建和安裝腳本?您可以使用

ADD_CUSTOM_COMMAND(OUTPUT CEGUIlib 
    COMMAND CEGUI build script 
    COMMAND CEGUI install script 
) 

或 ADD_CUSTOM_TARGET(CEGUIlib_build_install COMMAND CEGUI構建腳本 COMMAND CEGUI安裝腳本 )

如果開發/維護CEGUI,並希望把所有的源文件中的數組,你可以使用

FILE(GLOB ...) 

FILE(GLOB_RECURES ...) 

趕上你的所有源文件,再加上你可以使用

LIST(APPEND ...) 
LIST(REMOVE_ITEM ...) 

添加/從列表中刪除源代碼。

對於查找圖書館,你可以使用

FIND_LABRARY(...) 

做到這一點。

+0

我沒有維護CEGUI,但我在一個項目中使用它:我的目標是能夠檢查出我的項目並在PC上構建它,因此我需要構建依賴關係... 如果你有辦法做到這一點,沒有人際交互,那麼我會更容易,更快速地部署項目(一個最小的,一些人必須獲取所述項目,並要求它建立...) – 2013-02-19 17:50:51