代码之家  ›  专栏  ›  技术社区  ›  Crank

管理多个项目的元构建解决方案

  •  2
  • Crank  · 技术社区  · 7 年前

    是否有任何软件解决方案可以同时部署多个项目,并在源代码构建包管理器级别运行(例如 ports , portages nix ),但可以在当地居住?

    • 项目分组在 git superprojects 具有针对特定环境仔细调整的特定构建/部署预设(并通过类似布尔的选项子集调整为特定目的)
    • 我们已经为支持选项、构建配置、导出目标等的C++项目使用了精心设计的CMake构建脚本。现在换掉它会很昂贵。
    • 我们不得不处理各种Linux发行版(从Gentoo和Ubuntu到Debian和CentOS)。

    我们需要一个统一的构建&用于各种环境的部署工具。CMake不能很好地与非编译语言集成(例如,不支持通过virtualenv在本地安装Python)。

    我不想改变我们已经开发的东西,而是希望以操作系统包管理器的方式使用它们。在我看来,它应该与所谓的 meta-build tool . 事实上,Gentoo Portages非常接近:

    • 使用简单的布尔选项(useflags、profiles)轻松定制
    • 将构建过程委托给专门为此目的设计并经过良好测试的可靠且可定制的工具(CMake、autotools、Bazel等)
    • 然而,移植程序不能在本地运行(并且有其他不相关的缺陷)。

    在将整个构建系统转换为类似的系统之前,我必须变得非常自信 Meson Bazel 或者我目前能找到的任何东西。

    更具体地说,我可以提到我们目前所做的工作。这个 one 在我们正在维护的超级项目中,有一些涉及特定科学实验:

    • 所有子项目均为 listed 作为git子模块
    • 一个简单的 BASH-script
    • 引用具体环境的特定设置的预设表示为 BASH sources 并包含在这个维护shell脚本中。

    由于还有几天没有结果,我打算根据这些shell脚本活动所获得的经验编写自己的解决方案。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Ralf    6 年前

    对于类似任务 Bob

    基本上,它只是一个受控执行bash脚本的环境,具有依赖关系和变量处理、CI集成、IDE支持等等,。。

        2
  •  0
  •   Alexey Melezhik    7 年前

    看看 Sparrow -Linux脚本平台,它支持项目层次结构和任务可配置脚本,其中配置以Yaml、Json格式的声明方式进行。如果不是你在这里提到的所有需求,这可能会解决很多问题。

    披露-我是工具作者。