cmake-查找未编译的库

cmake-查找未编译的库,cmake,Cmake,我正在构建一个使用Ogre和CEGUI的项目,cmake有一个构建工具。我目前遇到了一些问题:CEGUI找不到它的未编译依赖项,而食人魔确实找到了它们。本项目的总体结构为: Base BaseLevelCmake Deps CEGUI UpperLevelCmake Ogre UpperLevelCmake There deps Project MyProjectCmakelist 所以这个问题有两个方面: 如何让Cmake查找未编译的代

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

Base
   BaseLevelCmake
   Deps
   CEGUI
     UpperLevelCmake
   Ogre
     UpperLevelCmake
   There deps
Project
   MyProjectCmakelist
所以这个问题有两个方面:

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


    现在,我必须手动构建几乎所有的dep和环境的addthere路径,以便可以找到它们。如果一切都是自动的,那么它将非常有用。

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

    ADD_CUSTOM_COMMAND(OUTPUT CEGUIlib 
        COMMAND CEGUI build script
        COMMAND CEGUI install script
    )
    
    或 添加自定义目标(CEGUIlib构建安装) 命令CEGUI构建脚本 命令CEGUI安装脚本 )

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

    FILE(GLOB ...)
    
    LIST(APPEND ... )
    LIST(REMOVE_ITEM ...)
    
    FIND_LABRARY(...)
    

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

    FILE(GLOB ...)
    
    LIST(APPEND ... )
    LIST(REMOVE_ITEM ...)
    
    FIND_LABRARY(...)
    
    从列表中添加/删除源代码

    对于查找库,您可以使用

    FILE(GLOB ...)
    
    LIST(APPEND ... )
    LIST(REMOVE_ITEM ...)
    
    FIND_LABRARY(...)
    

    要做到这一点。

    我不是在维护CEGUI,而是在项目中使用它:我的目标是能够签出我的项目并在PC上构建它,因此我需要构建依赖项。。。如果有一种不需要人工交互的方式来部署项目,我会更容易、更快地部署项目(至少,有些人必须获取所述项目并要求其构建…)