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.