Metadata-Version: 2.1
Name: pyburn-build
Version: 0.2.3
Summary: build system written in python for projects in C and C++
License: GNU LGPL v2.1
Author: alexeev-prog
Author-email: alexeev.dev@mail.ru
Requires-Python: >=3.10,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: PyYAML (>=6.0.2,<7.0.0)
Requires-Dist: click (>=8.1.7,<9.0.0)
Requires-Dist: configparser (>=7.1.0,<8.0.0)
Requires-Dist: loguru (>=0.7.2,<0.8.0)
Requires-Dist: rich (>=13.9.4,<14.0.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Description-Content-Type: text/markdown

# burn-build 🚀

<div align="center">  
  <p align="center">
	build system written in python for projects in C and C++
	<br />
	<a href="./docs/index.md"><strong>Explore the docs »</strong></a>
	<br />
	<br />
	<a href="#-getting-started">Getting Started</a>
	·
	<a href="#-usage-examples">Basic Usage</a>
	·
	<a href="https://github.com/alexeev-prog/burn-build/blob/main/LICENSE">License</a>
  </p>
</div>
<br>
<p align="center">
	<img src="https://img.shields.io/github/languages/top/alexeev-prog/burn-build?style=for-the-badge">
	<img src="https://img.shields.io/github/languages/count/alexeev-prog/burn-build?style=for-the-badge">
	<img src="https://img.shields.io/github/license/alexeev-prog/burn-build?style=for-the-badge">
	<img src="https://img.shields.io/github/stars/alexeev-prog/burn-build?style=for-the-badge">
	<img src="https://img.shields.io/github/issues/alexeev-prog/burn-build?style=for-the-badge">
	<img src="https://img.shields.io/github/last-commit/alexeev-prog/burn-build?style=for-the-badge">
</p>

## 🚀 Getting Started
burn-build is available on [PyPI](https://pypi.org/project/pyburn_build). Simply install the package into your project environment with PIP:

```bash
pip install pyburn_build
```

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

## 💻 Usage Examples
Create project_config.json:

```json
{
	"metadata": {
		"name": "Example",
		"version": "0.1.0",
		"description": "Hello World app",
		"language": "cpp",
		"use_cmake": true
	},

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

Create toolchain_config.json:

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

And create project:

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

And build project:

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

