A python-based meta-build system for C++ projects.
Project description
SBuildr - Stupid Buildr
A stupid, simple python-based meta-build system for C++ projects.
Installation
Prerequisites
Installing from PyPI
pip install sbuildr
Installing from Source
- Clone the SBuildr source repository.
- Install locally with
python setup.py install
A Small Example
For this example, we will assume the following directory structure:
minimal_project
├── build.py
├── include
│ └── math.hpp
├── src
│ ├── factorial.cpp
│ ├── factorial.hpp
│ ├── fibonacci.cpp
│ ├── fibonacci.hpp
│ └── utils.hpp
└── tests
└── test.cpp
The corresponding build.py
file might look like this:
#!/usr/bin/env python
import sbuildr
import os
project = sbuildr.Project()
# Build a library using two source files. Note that headers do not have to be specified manually.
# Full file paths are only required in cases where a partial path would be ambiguous.
libmath = project.library("math", sources=["factorial.cpp", "fibonacci.cpp"], libs=["stdc++"])
# Specify that math.hpp is part of the public API for this library.
project.interfaces(["math.hpp"])
# Specify a test for the project using the test.cpp source file. The resulting executable will
# be linked against the library created above.
test = project.test("test", sources=["test.cpp"], libs=["stdc++", libmath])
# Enable this script to be used interactively on the command-line
project.export()
The call to the cli()
function allows us to use the script to build interactively in a shell.
For example, to run all tests registered for this project, you can run: ./build.py test
. This will configure the project, build all dependencies, and finally run tests.
To view all available commands, you can run ./build.py --help
API Documentation
For more information, see the API Documentation
Known Limitations
- SBuildr's header scanning functionality does not take into account preprocessor
#ifdef
s. This means that an#include
in afalse
branch will still be used as a dependency during builds. Header scanning will also not work for paths containing escaped characters.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file SBuildr-0.6.4-py3-none-any.whl
.
File metadata
- Download URL: SBuildr-0.6.4-py3-none-any.whl
- Upload date:
- Size: 54.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.22.0 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/18.0.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15be2df2890d7a871e236d470b7b46bd17b19b0978cf0eef1e8c423f8916b20e |
|
MD5 | e630ae53cca6033e25ca0164a8351725 |
|
BLAKE2b-256 | 259070dd6af3cf5833d0ee16666f8c13aae7bbeb24b22ab31157bd7109b4bf2a |