cmake-查找未编译的库

时间:2013-02-11 03:32:21

标签: cmake

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

Base
   BaseLevelCmake
   Deps
   CEGUI
     UpperLevelCmake
   Ogre
     UpperLevelCmake
   There deps
Project
   MyProjectCmakelist

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

  1. 如何让Cmake找到未编译的代码?
  2. 如何在不修改上级Cmake列表的情况下提示deps的位置?«
  3. 我的目标是从SCM获取Base文件夹,启动GetDeps(.sh / .bat),它将获取所有deps,然后调用cmake,这将生成所有内容的构建文件并配置Ogre和CEGUI。

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

1 个答案:

答案 0 :(得分: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(...)

这样做。