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.6.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

pyburn_build-0.3.6-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyburn_build-0.3.6.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.6.tar.gz
Algorithm Hash digest
SHA256 f98617d5ccb94bb6a316b21e8fed94e13b696a027df4bc5a05a86ebf52e5a450
MD5 2159f18a394721ef7a04f54096e65177
BLAKE2b-256 82ad90e7faa32ca067a9116d3385b86349d007ec738a0881d35eebfff5558ca2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyburn_build-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 26.0 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 8ad81f9ae81d808422a85fc6da41d843f23111e75fc7b53754d463489241c444
MD5 1caef4dfe4ddf86456131f646904a201
BLAKE2b-256 03da2157e7fbd48e43343f653366ed6baf090835a11b122b7d68799850651745

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