And*_*ele 6 c++ dependencies build-process cmake
我正在为c ++游戏项目设置构建环境.我们的主要要求是不仅可以构建我们的游戏代码,还可以构建其依赖项(Ogre3D,Cegui,boost等).此外,我们希望能够在Linux和Windows上构建,因为我们的开发团队由使用不同操作系统的成员组成.
Ogre3D使用CMake作为其构建工具.这就是我们迄今为止将我们的项目建立在CMake上的原因.一旦在每个团队成员系统上手动设置所有依赖关系,我们就可以完全编译,因为CMake能够找到库.
问题是,是否有可行的方法来自动设置依赖项.作为一名Java开发人员,我知道Maven,但在c ++世界中确实存在哪些工具?
更新:感谢您的答案和链接.在接下来的几天里,我将尝试使用一些工具来查看符合我们要求的工具,从CMake开始.到目前为止,我确实已经与autotools分享了一些内容,并且我喜欢文档(这是一本非常好的读者),我担心autotools本身并不适合在Windows上使用.
有些人建议让一些IDE处理依赖关系管理.我们由使用所有可能技术的个人组成,从纯Vim到完全吹制Eclipse CDT或Visual Studio.这是CMake允许使用其生成本机项目文件的能力的地方.
在最新的CMake 2.8版本中,有新的ExternalProject模块.这允许下载/签出代码,配置和构建它作为主构建树的一部分.它还应该允许设置依赖项.
在我的工作(医学图像处理组)中,我们使用CMake构建我们自己的库和应用程序.我们有一个内部工具来跟踪项目之间的所有依赖关系(在XML数据库中定义).大多数第三方库(如Boost,Qt,VTK,ITK等)都为我们支持的每个系统(MSWin32,MSWin64,Linux32等)构建一次,并在版本控制系统中作为zip文件提交.然后,CMake将根据开发人员正在处理的系统提取和配置正确的zip文件.
在过去的几个月里,我一直在使用GNU Autotools(Autoconf,Automake,Libtool)参与我参与的几个项目,我认为它的工作非常精彩.说实话,它确实需要一点点习惯语法,但我已成功地在需要分发python脚本,C库和C++应用程序的项目上使用它.当我第一次在这里问一个类似的问题时,我会给你一些帮助我的链接.
更多链接:
我不确定的一件事是GNU Autotools的任何类型的Windows包装器.我知道你可以在Cygwin中使用它,但至于在Windows平台上实际分发文件和依赖项,你可能最好使用Windows MSI安装程序(或者可以在Visual Studio中打包项目的东西).
如果要分发依赖项,可以将它们设置在不同的子目录下,例如libzip,并使用特定的Makefile.am条目构建该库.执行make install时,库将安装到配置脚本确定应使用的lib文件夹中.
祝好运!
归档时间: |
|
查看次数: |
3735 次 |
最近记录: |