2013-02-11 74 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