我正在构建一个使用Ogre和CEGUI的项目,而cmake有一个构建工具。我目前遇到了一些问题:CEGUI找不到它的未编译的依赖项,而Ogre确实找到它们。该项目的总体结构是:
Base
BaseLevelCmake
Deps
CEGUI
UpperLevelCmake
Ogre
UpperLevelCmake
There deps
Project
MyProjectCmakelist
所以这个问题是一个两个方面的问题:
我的目标是从SCM获取Base文件夹,启动GetDeps(.sh / .bat),它将获取所有deps,然后调用cmake,这将生成所有内容的构建文件并配置Ogre和CEGUI。
现在,我必须手动构建几乎所有deps并添加到环境的路径,以便它们可以找到。如果一切都是自动的话会很有用。
答案 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(...)
这样做。