如何创建不使用子模块连接多个git repos的CMake超级构建

时间:2019-05-21 15:58:34

标签: git cmake

我有一个逻辑项目,该项目分布在4个以上的git repos中,可以在其中进行积极的开发,另外还有六个可能来自repos或来自其他来源的依赖项。

4个开发库中的每个库都有其自己的CMake项目。我想拥有一个将开发库和依赖项联系在一起的超级构建。

问题是,超级构建似乎必须位于所有回购克隆之上的一个目录,我也想对超级构建进行版本控制。但是,我不是要把开发仓库放入超级构建仓库的git子模块中,因为从我的角度来看,在git子模块中进行主动开发是很痛苦的。

有人为此提出一个好的解决方案吗?我可能只是在一个开发库中对超级构建文件进行版本控制,并设置我的SDE工具以将它们复制或符号链接到父目录,但这也有缺点。

编辑:作为我目前正在争论的一个更具体的例子,请考虑以下Git服务器上的存储库:

  • dev_application-积极开发的CMake项目,该项目产生可执行文件,取决于dev_framework和external_framework *
  • dev_framework-积极开发的CMake项目,它产生多个库,取决于external_framework1
  • dev_logic-积极开发的CMake项目,该项目产生多个库,取决于external_framework2
  • dev_lib1-积极开发的CMake项目,它产生一个库,取决于dev_framework和external_framework1
  • dev_superbuild-包含CMake超级项目的存储库,从逻辑上讲取决于一切
  • external_framework1-外部依赖项代码
  • external_framework2-外部依赖项代码

所有这些都需要一起构建。文件系统布局的主要限制是,使代码存储库最终成为超级构建存储库的子目录可能是理想的选择,这样Visual Studio Code,Eclipse CDT等就不会受到阻塞。

0 个答案:

没有答案