Skip to main content

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
      • ...
    • tests
      • app-folder-1
        • cppm-files
        • cpp-files
      • app-folder-2
      • ...
    • tools
      • cpp-files
    • unit-tests
      • cpp-files
    • bli.yaml

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blister-cpp-0.0.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

blister_cpp-0.0.1-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file blister-cpp-0.0.1.tar.gz.

File metadata

  • Download URL: blister-cpp-0.0.1.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.3

File hashes

Hashes for blister-cpp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3e9d876df4d81606415d321e969979b4aea5fe6789994edc142ac5592fe9611c
MD5 b36295bd7a49df02447717a8fc949f86
BLAKE2b-256 a74434af246b7ad430b4fcba831e37220838caddd53111a4e577e7a11cda7be0

See more details on using hashes here.

File details

Details for the file blister_cpp-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: blister_cpp-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.3

File hashes

Hashes for blister_cpp-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dae74b45474e42ea4fee5b6496c505debe9e70f12af3c875dc84f08f255bcd5f
MD5 dd43b308c4910b8e6968877218b19b15
BLAKE2b-256 9829897009bc224cd2cc93a2b387c364648607dff9ff94716154204b9b5a8297

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page