3 个版本

新版本 0.0.24 2024年8月19日
0.0.19 2023年9月10日
0.0.18 2023年5月23日

122构建工具 中排名

Download history 1/week @ 2024-07-05 9/week @ 2024-07-26 1/week @ 2024-08-02 125/week @ 2024-08-16

135 每月下载量

GPL-2.0+

405KB
10K SLoC

Python 8K SLoC // 0.1% comments Rust 2K SLoC // 0.0% comments Bitbake 7 SLoC

ognibuild

Ognibuild 是一个简单的包装器,具有调用任何类型构建工具的通用接口。

其理念是可以通过检测正在使用的构建系统并使用正确的参数来调用它,以构建和安装任何源代码目录。

它还可以检测和安装缺失的依赖项。

目标

Ognibuild 的目标是提供一致的 CLI,可以用于任何软件包。它主要用于自动化构建大量多样化的软件包(例如不同编程语言)。

它不是旨在暴露底层构建系统中存在的所有功能。要使用这些功能,请直接调用这些构建系统。

用法

Ognibuild 有多个子命令

  • ogni clean - 删除任何构建工件
  • ogni dist - 创建源代码 tarball
  • ogni build - 在树内构建软件包
  • ogni install - 安装软件包
  • ogni test - 在源代码目录中运行测试套件

它还包括一个子命令,称为 deb-fix-build,可以修复 Debian 软件包的构建依赖项。

示例

ogni -d https://gitlab.gnome.org/GNOME/fractal install

状态

Ognibuild 功能齐全,但有时边缘粗糙。如果您遇到问题(或对特定生态系统的支持不足),请提交错误报告。

支持的构建系统

  • Bazel
  • Cabal
  • Cargo
  • Golang
  • Gradle
  • Make,包括各种 makefile 生成器
    • autoconf/automake
    • CMake
    • Makefile.PL
    • qmake
  • Maven
  • ninja,包括 ninja 文件生成器
    • meson
  • Node
  • Octave
  • Perl
    • Module::Build::Tiny
    • Dist::Zilla
    • Minilla
  • PHP Pear
  • Python - setup.py/setup.cfg/pyproject.toml
  • R
  • Ruby gems
  • Waf

支持的软件包仓库

软件包仓库用于安装缺失的依赖项。

以下为支持的“原生”仓库

  • pypi
  • cpan
  • hackage
  • npm
  • cargo
  • cran
  • golang*

以及一个分发仓库

  • apt

许可

Ognibuild 根据 GNU GPL 许可,版本 2 或更高版本。

依赖项

~14–28MB
~474K SLoC