Conventions-over-configuration C++/modules project manager.
Project description
blister
Conventions-over-configuration C++/modules project manager.
This is a simple approach to deal with C++ modules. By using a bunch of
conventions, this Python module scans for all files and generates a
build.ninja
to compile the code.
Currently, it is personal endeavor to use C++ modules with some dependency management, which (as of 2019) is not provided by existing building systems. Hacks and non-sense may be included.
Requires a folder structure like this:
- root
- includes
- h-files and subfolders
- sources
- common
- cppm-files and subfolders
- osx-metal
- cppm-files
- mm-files
- ...
- common
- tests
- app-folder-1
- cppm-files
- cpp-files
- app-folder-2
- ...
- app-folder-1
- tools
- cpp-files
- unit-tests
- cpp-files
- bli.yaml
- includes
includes
is added as part of the include path.
sources/common
contains CPP modules (using cppm
as extension). They will
be scanned, with all cppm
files added to the build. The module name is
independent of the file name, being extracted from the export module
statement.
sources/osx-metal
is a hack to build Apple-compatible folders. It also
compiles metal
files.
tests
creates one standalone application per folder. Every linked application
will contains all objects from sources
folders.
unit-tests
are compiled independently and liked with sources/common
objects
and run as part of the test
target.
Dependencies are calculated from both cppm
and cpp
files, by parsing the
import
statements.
bli.yaml
identifies the root folder and contains configuration to override
global and per-file flags.
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 Distribution
Built Distribution
Hashes for blister_cpp-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dae74b45474e42ea4fee5b6496c505debe9e70f12af3c875dc84f08f255bcd5f |
|
MD5 | dd43b308c4910b8e6968877218b19b15 |
|
BLAKE2b-256 | 9829897009bc224cd2cc93a2b387c364648607dff9ff94716154204b9b5a8297 |