Skip to main content

build system written in python for projects in C and C++

Project description

burn-build 🚀

build system written in python for projects in C and C++
Explore the docs »

Getting Started · Basic Usage · License


🚀 Getting Started

burn-build is available on PyPI. Simply install the package into your project environment with PIP:

pip install pyburn_build

Once installed, you can start using the library in your Python projects.

💻 Usage Examples

Create project_config.json:

{
    "metadata": {
        "name": "Example",
        "version": "0.1.0",
        "description": "Hello World app",
        "language": "cpp",
        "use_cmake": false,
        "cache_file": "cache.json",
        "features": ["pyechonext"]
    },

    "compiler": {
        "name": "g++",
        "base_compiler_flags": ["-Wall"]
    }
}

Create toolchain_config.json:

{
    "prelude_commands": [],
    "targets": {
        "target1": {
            "compiler_options": ["-O2", "-pedantic"],
            "sources": ["src/main.c"],
            "output": "out/target1.out",
            "includes": [],
            "objects": [],
            "compiler": "gcc"
        },
        "target2": {
            "compiler_options": ["-O3", "-pedantic"],
            "sources": ["src/main2.cpp"],
            "output": "out/target2.out",
            "includes": [],
            "objects": []
        }
    },
    "post_commands": []
}

And create project:

python3 -m pyburn_build create --project-config example_configs/project_config.json --toolchain-config example_configs/toolchain_config.json

And build project:

python3 -m pyburn_build build --project-config example_configs/project_config.json --toolchain-config example_configs/toolchain_config.json

Specification

Project

Basic project information

Metadata

Meta information and other general characteristics of the project.

  • name - project name
  • version - project version
  • description - short project description
  • language - main project language
  • use_cmake - use cmake flag (experimental)
  • cache_file - path to cache json file
  • features - list of enabled features (supported: pyechonext)

Compiler

Information about the compiler, basic flags.

  • name - main compiler name
  • base_compiler_flags - list of compiler flags

Toolchain

Setting up tools, build chain, commands.

  • prelude_commands - Commands to execute before build
  • post_commands - Commands to execute after build
  • targets - dict with targets

Targets

Targets list

  • compiler_options - additional compiler flags
  • sources - list with sources for target
  • output - output filename
  • includes - include-files (C/C++)
  • objects - .o files
  • compiler - compiler command

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

pyburn_build-0.3.7.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

pyburn_build-0.3.7-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file pyburn_build-0.3.7.tar.gz.

File metadata

  • Download URL: pyburn_build-0.3.7.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Linux/6.11.5-2-cachyos

File hashes

Hashes for pyburn_build-0.3.7.tar.gz
Algorithm Hash digest
SHA256 53ec77f9f91b0b799b947c515e0a6f605f0cab10a8adfda9590713b695c9cecf
MD5 d98c3a5f9e9451d92b7ae3a364e23a0d
BLAKE2b-256 3102507f49fbd76d8a4e5177a059a995dfe207dfb943861ed57fc666b379fddb

See more details on using hashes here.

File details

Details for the file pyburn_build-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: pyburn_build-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Linux/6.11.5-2-cachyos

File hashes

Hashes for pyburn_build-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c3b454c7981eb507c5d16fa2292813c30d3322a71942b430cffc71bc4e9c732c
MD5 6751cf6702105ba08f1bed0258eab065
BLAKE2b-256 53371c0bac6b2e1b8bdd806e49875cb7539ed739c04771a9fecfef34e5e5e735

See more details on using hashes here.

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