github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/README.md (about) 1 # go-metabuild 2 3 Experimental model based build system with packaging 4 5 1. High level modeling of SW's structure, following 6 convention-over-code, where everyhing else can be 7 automatically deduced from. Simple YAML file. 8 Describing what you wanna get, instead of how to do it. 9 3. Automatic checks/configuration, similar to autoconf 10 et al, but much simpler config. 11 4. Produces ready-to-deploy distro specific packages 12 directly from source, w/o huge extra tool stacks. 13 5. Platform/distro specific policies can be centrally 14 customized by platform maintainer/operator, w/o 15 having to touch per package build scripts. 16 17 See [examples/pkg/zlib/metabuild.yaml](examples/pkg/zlib/metabuild.yaml) 18 or [examples/pkg/lincity/metabuild.yaml](examples/pkg/lincity/metabuild.yaml) 19 for an examples of the per package configuration. 20 21 Features 22 -------- 23 24 * purely declarative description of SW structure instead of rules for actual build process 25 * automatic toolchain and library detection 26 * pkgconfig and distro packages as 1st class citizen 27 * builds native distro packages 28 * automatic runtime dependences for shared libraries and .pc files 29 * respects distro policies (eg. artifact placements, compression, stripping, ...) 30 31 Project status 32 -------------- 33 34 Right now, yet purely research. No releases yet. 35 Will switch to normal development, once a few practical example packages can be fully built/packaged (inc. docs etc) for at least Debian-based distros. 36 After that, more languages and target distros will be added.