Skip to main content

Detect and run any build system

Project description

ognibuild

Ognibuild is a simple wrapper with a common interface for invoking any kind of build tool.

The ideas is that it can be run to build and install any source code directory by detecting the build system that is in use and invoking that with the correct parameters.

It can also detect and install missing dependencies.

Goals

The goal of ognibuild is to provide a consistent CLI that can be used for any software package. It is mostly useful for automated building of large sets of diverse packages (e.g. different programming languages).

It is not meant to expose all functionality that is present in the underlying build systems. To use that, invoke those build systems directly.

Usage

Ognibuild has a number of subcommands:

  • ogni clean - remove any built artifacts
  • ogni dist - create a source tarball
  • ogni build - build the package in-tree
  • ogni install - install the package
  • ogni test - run the testsuite in the source directory

It also includes a subcommand that can fix up the build dependencies for Debian packages, called deb-fix-build.

Examples

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

Status

Ognibuild is functional, but sometimes rough around the edges. If you run into issues (or lack of support for a particular ecosystem), please file a bug.

Supported Build Systems

  • Bazel
  • Cabal
  • Cargo
  • Golang
  • Gradle
  • Make, including various makefile generators:
    • autoconf/automake
    • CMake
    • Makefile.PL
    • qmake
  • Maven
  • ninja, including ninja file generators:
    • meson
  • Node
  • Octave
  • Perl
    • Module::Build::Tiny
    • Dist::Zilla
    • Minilla
  • PHP Pear
  • Python - setup.py/setup.cfg/pyproject.toml
  • R
  • Ruby gems
  • Waf

Supported package repositories

Package repositories are used to install missing dependencies.

The following "native" repositories are supported:

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

As well one distribution repository:

  • apt

License

Ognibuild is licensed under the GNU GPL, v2 or later.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ognibuild-0.0.23.tar.gz (98.8 kB view hashes)

Uploaded Source

Built Distributions

ognibuild-0.0.23-cp312-cp312-win_amd64.whl (394.0 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

ognibuild-0.0.23-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (551.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

ognibuild-0.0.23-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (570.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ognibuild-0.0.23-cp312-cp312-macosx_11_0_arm64.whl (503.2 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

ognibuild-0.0.23-cp311-cp311-win_amd64.whl (393.3 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

ognibuild-0.0.23-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (550.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ognibuild-0.0.23-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (570.2 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ognibuild-0.0.23-cp311-cp311-macosx_11_0_arm64.whl (503.1 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

ognibuild-0.0.23-cp310-cp310-win_amd64.whl (393.4 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

ognibuild-0.0.23-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (550.5 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ognibuild-0.0.23-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (570.3 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ognibuild-0.0.23-cp310-cp310-macosx_11_0_arm64.whl (503.6 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

ognibuild-0.0.23-cp39-cp39-win_amd64.whl (393.5 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

ognibuild-0.0.23-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (551.1 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ognibuild-0.0.23-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (572.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ognibuild-0.0.23-cp39-cp39-macosx_11_0_arm64.whl (503.6 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page