A clean, pythonic, DAG-based C/C++ build system.
Project description
Zero - Super Easy Build System
Zero is a C/C++ build system designed to be as easy as possible to use, without lacking any features. Written in python!
The only reason Zero exists is because I hate CMake syntax.
Usage
First, create a zerobuild.py file in your project root and import zero
from zero import *
Create a Build object named build.
build = Build()
Configure the build object by specifying the compiler and the build directory.
build.compiler = "gcc"
build.directory = "build" # or Path("build") also works!
To create an executable, create an Executable object! Specify the sources an arguments!
main = Executable()
main.source = Source(
"src/main.c",
"src/utils.c" # or Path("src") / "utils.c" also works!
)
main.arguments = "-Wall", "-O3"
And you are done! Yes that's all.
Run the zero cli tool to make your executable.
zero make
A binary named main can now be found at build/bin/main
Read more in docs.
Installation
Zero is still in its infant stage, but you can install it through any pypi package manager. The package name is zero-build.
pip install zero-build
[!WARNING] For Linux, You might have to use
--break-system-packages. This is a workaround for now until I make packages for major Linux distributions.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zero_build-1.1.0.tar.gz.
File metadata
- Download URL: zero_build-1.1.0.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e31354c692f93fdb42f5c3f1d88bfd23c466ae454c28d5b5fb148bc03f599519
|
|
| MD5 |
68bb38390317201c0becfd9e6205cfe3
|
|
| BLAKE2b-256 |
89a100f9b020f6c953b9a7f360740b3eb1c73222f131ae916bf62104a7bba979
|
File details
Details for the file zero_build-1.1.0-py3-none-any.whl.
File metadata
- Download URL: zero_build-1.1.0-py3-none-any.whl
- Upload date:
- Size: 28.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
357e68c8bab83835d26c418ce47eaf07cc9f0673070620031744421a87c389f7
|
|
| MD5 |
0492f4c2d7a38968074b94ca0a988f7a
|
|
| BLAKE2b-256 |
b54d667dbabe7c5f12c112bfa48f74952e324605f62ff25dacc27e2715890351
|