Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

L.A.B.S

L.A.B.S. stands for Language Agnostic Build System.

This is "yet another" build system to replace cmake and meson.

Labs is not meant to be "the faster" (even though its use of ninja similar to meson makes roughly as fast as meson), but to produce reproductible builds.

Contrary to CMake or Meson, you don't need to learn yet another language since plain python is used.

The philosophy behind Labs is that simple tasks should be trivial to do, and hard ones should be easy.

A work in progress

The project is still at a draft step : Only the low-level api is developped yet, but it is on heavy developpment, thus expect additionnal feature coming fast.

Roadmap

  • Ninja abstraction and build generation
    • Variables
    • Rule with variables
    • Target files set
    • Build rules
      • Explicit, implicit and order-only targets
      • Overide variables
  • CMake-like build configuration
  • Basic find_program
    • Find program in path
    • Find program from several names
  • Easy for a build to depend on a found program
  • Run found program at config time
  • Run found programm at ninja
  • Custom commands (with pipes, file redirection etc.)
  • Command line interface
    • CMake-like semantic shadow build
    • CMake-like incremental cache
  • Feature testing framework
  • Documentation
    • In code docstring
    • Tutorial
  • Extension system
  • Install rules
  • GCC compatible workflow (anything that compiles to *.o files
    • Compile wrapper class
    • Understand common C/CXX env variables
    • Handle include paths
    • Handle libs
  • auto_build function to compile with the right compiler automatically regarding the file ype.
  • sub project
  • find_lib
    • using pkg_config
    • using CMake
  • Java compilation
  • Qt
  • Other language
    • Go
    • Rust
    • ...
  • Wrapper to handle linux and windows with the same commands
  • Build an execurable for windows embedding the python interpreter
  • IDE project generation
  • Advanced find_program
    • Require version
    • Host, build and target machin distinction
    • Look at python modules
  • support a wide range of compilers

Don't be fooled : half of the features are checked, but it actually represent at most 5% of the targeted features =))

If you like the project, feel free to apply for implement some feature by creating an issue !

License

Copyright © 2020 Léo Flaventin Hauchecorne

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Release files for labs-build 0.1.dev0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for labs-build 0.1.dev0
File Size Uploaded
labs-build-0.1.dev0.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for labs-build 0.1.dev0
File Interpreter ABI Platform
labs_build-0.1.dev0-py3-none-any.whl Python 3 none any Details

Total release size: 34.3 kB

Release files / labs-build-0.1.dev0.tar.gz

Download URL labs-build-0.1.dev0.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
81b9f657ca7b743e7a5f1b0da939e25a0813ce1489e56ac1d3473ecf1e17aa85
BLAKE2b-256 checksum
How to use checksums
c74cd1faf04386bd554bc7ae7cb251b4f46ea6f69d248adca5d08abeac223303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

Release files / labs_build-0.1.dev0-py3-none-any.whl

Download URL labs_build-0.1.dev0-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29a4f485ce3c1a531cf05eb9a3c742d1b26def36745443eea2f61a91501c4fa8
BLAKE2b-256 checksum
How to use checksums
879b4c9003e09ccd564ff76ae1901fc0a8e9b8f72b7b2696ae69cc7588cdf72e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

Release history Release notifications | RSS feed

This release

0.1.dev0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page