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

问题描述 投票:2回答:2

我正在寻找有关软件的建议,这些软件在几天的搜索过程中没有引起我的注意。

是否有任何软件解决方案可以同时部署多个项目,这些项目在源代码构建包管理器(如portsportagesnix)的水平上运行,但是可以在本地驻留?

至于细节,我们有几个松散连接的软件项目具有以下特征:

  • 项目主要使用C / C ++和Python编写,但更多语言表示为次要混合(Haskell,Rust,Perl)
  • 项目在git superprojects中组合在一起,并针对特定环境仔细调整某些构建/部署预设(并通过类似布尔类型的选项子集进行特定用途)
  • 我们已经为C ++项目完成了精心设计的CMake构建脚本,这些脚本支持选项,构建配置,导出目标等等。现在切换它会很昂贵。
  • 我们被迫处理各种Linux发行版(从Gentoo和Ubuntu到Debian和CentOS)。

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

我不想改变我们已经开发的东西,而是希望以OS包管理器的方式使用它们。对于我的愿景,它应该是与所谓的meta-build tool非常相似的东西。事实上,Gentoo Portages非常接近:

  • 使用简单的布尔选项轻松定制(useflags,profiles)
  • 将建筑程序授权给可靠且可定制的工具,尤其是为此目的设计和测试(CMake,autotools,Bazel等)
  • 提供更改目标编译器安装的能力,并使用标准化指令集以明确的声明方式指定构建过程。但Portage不能在本地运行(并且还有其他不相关的缺陷)。

在将整个构建系统切换到像MesonBazel之类的东西之前,我必须变得非常自信,或者我现在能找到的任何其他东西。

Update

更具体地说,我可以参考我们目前所做的工作。我们正在维持的超级项目的one处理特定的科学实验:

  • 所有的子项目都是listed作为git子模块
  • 一个简单的BASH-script维护整个build-install-deploy生命周期
  • 引用具体环境的特定设置的预设表示为BASH sources,并由此维护shell脚本包含。

几天之后没有结果,我想出了根据我们已经获得的经验编写自己的解决方案,因为这些shell脚本活动。

deployment build install environment build-system
2个回答
1
投票

对于类似的任务,Bob是在不久前开发的。如果你仍然需要一个构建系统,那么值得一看。有一些小的教程可用,以及一个复杂的基础示例从头开始构建一个linux。

基本上它只是一个受控执行bash脚本的环境,具有依赖性和变体处理,CI集成,IDE支持,..


0
投票

看看Sparrow - Linux脚本平台,它支持项目层次结构和任务 - 可配置脚本,其中配置以Yaml,Json格式以声明方式进行。这有希望解决许多(如果不是全部)你在这里提到的需求。

披露 - 我是工具作者。

© www.soinside.com 2019 - 2024. All rights reserved.