3 个版本
新版本 0.0.24 | 2024年8月19日 |
---|---|
0.0.19 | 2023年9月10日 |
0.0.18 | 2023年5月23日 |
122 在 构建工具 中排名
135 每月下载量
405KB
10K SLoC
ognibuild
Ognibuild 是一个简单的包装器,具有调用任何类型构建工具的通用接口。
其理念是可以通过检测正在使用的构建系统并使用正确的参数来调用它,以构建和安装任何源代码目录。
它还可以检测和安装缺失的依赖项。
目标
Ognibuild 的目标是提供一致的 CLI,可以用于任何软件包。它主要用于自动化构建大量多样化的软件包(例如不同编程语言)。
它不是旨在暴露底层构建系统中存在的所有功能。要使用这些功能,请直接调用这些构建系统。
用法
Ognibuild 有多个子命令
ogni clean
- 删除任何构建工件ogni dist
- 创建源代码 tarballogni 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