2

我正在构建一个使用 Ogre 和 CEGUI 的项目,而 cmake 有一个构建工具。我目前遇到了一些问题:CEGUI 找不到它的未编译依赖项,而 Ogre 确实找到了它们。项目的一般结构是:

Base
   BaseLevelCmake
   Deps
   CEGUI
     UpperLevelCmake
   Ogre
     UpperLevelCmake
   There deps
Project
   MyProjectCmakelist

所以这个问题是一个两方面的问题:

  1. 如何让 Cmake 找到未编译的代码?
  2. 如何在不修改上层 Cmake 列表的情况下提示部门的位置?«

我的目标是从 SCM 中获取 Base 文件夹,启动 GetDeps(.sh/.bat) 来获取所有 deps,然后调用 cmake,这将为所有内容生成构建文件并配置 Ogre 和 CEGUI。

现在,我必须手动构建几乎所有的 deps 并添加到环境的路径,以便可以找到它们。如果一切都是自动的,那将很有用。

4

1 回答 1

1

如果您不开发/维护 CEGUI,而是自己跟踪未编译的源,为什么不使用上游提供的任何构建和安装脚本呢?您可以使用

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

或 ADD_CUSTOM_TARGET(CEGUIlib_build_install COMMAND CEGUI build script COMMAND CEGUI install script )

如果您开发/维护 CEGUI,并希望将所有源文件放在一个数组中,您可以使用

FILE(GLOB ...)

或者

FILE(GLOB_RECURES ...)

捕获所有源文件,此外还可以使用

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

从列表中添加/删除源代码。

对于查找库,您可以使用

FIND_LABRARY(...)

要做到这一点。

于 2013-02-12T06:36:14.930 回答