我为长期问题道歉,但这是我一直在思考的问题,我无法找到一个好的解决方案。
我是一个团队的一员,该团队致力于以分层方式相互依赖的多个项目,我正试图解决一些问题。项目结构如此(这是一个游戏):
实用
RenderSystem - 取决于实用程序
PhysicsSystem - 取决于实用工具
GameEngine - 取决于Utility,RenderSystem和PhysicsSystem
游戏 - 取决于Utility和GameEngine
我们正在使用svn和CMake。
我们有几个程序员,每个程序员都处理不同的组件,每次有更新,比如RenderSystem,游戏程序员不想重新编译整个程序。
我们目前有svn设置如下:
的Util
RS
PS
GE
游戏
仓
二进制文件需要在svn中,这样程序员就不必编译那些不工作的程序员。这意味着,在本地端,二进制文件必须存在于源目录中以进行链接,并且这些二进制文件也必须存在于构建目录中以供可执行文件运行(动态链接)。
在配置CMake时,每个程序员选择他们想要构建的项目以及他们想要使用预编译二进制文件的项目。
每当构建项目时,二进制文件都会自动复制到bin文件夹(从而提交给svn)。当程序员更新并获取新的二进制文件时,它们将被复制到构建目录中。
我们目前没有构建服务器,因此无法自动构建二进制文件。
这种方法有几个烦恼:
当前系统完成了我们想要保留的两个主要内容:有一个需要检查和更新的根源目录,没有人想要查看多个内容;并且整个事情不必由每个程序员构建,他们可以构建他们正在进行的工作。
我喜欢任何关于如何使这个更顺畅的建议。在前端,它工作正常,但必须实际处理CMake文件的人(我)非常沮丧。
答案 0 :(得分:0)
link_directories命令指定链接器应搜索库(.lib文件)的路径。您可以使用它首先在包含开发人员选择在本地构建的库的目录中进行搜索,然后在包含从Subversion中检出的库的目录中进行搜索。同样,要运行应用程序,开发人员必须配置PATH以在包含开发人员选择在本地构建的.dll文件的目录中搜索.dll文件,然后在包含从Subversion中检出的.dll文件的目录中搜索。
如果要将更改的二进制文件提交到Subversion,请首先将本地构建的二进制文件复制到包含二进制文件的工作副本目录。