Skip to main content

Meta build system based on Ninja and Python

Project description

CII Best Practices

Note: Craftr 2.x is different from the initial Craftr version in many ways and can not be used interchangibly. The latest version of Craftr 1.x can be found under the v1.1.4-unreleased tag.

Craftr is a meta build system based on Python 3 scripts which produces Ninja build manifests. It enforces the use of modular build definitions that can be re-used easily. Craftr provides a standard library to support various programming languages and common libraries out of the box:

  • C/C++ (cURL, DLib, GoogleTest, GoogleBenchmark, tiny-dnn, Qt5, Boost, getopt)

  • Cython

  • C#

  • Java

  • Vala

Check out the Documentation and the Getting Started page.

Features

  • [x] Moduler build scripts (Craftr packages) with dependency management

  • [x] Loaders: if required, automatically download and build libraries from source!

  • [ ] Package manager (hosted on Craftr.net)

  • [ ] Embed actual Python functions into the build graph

  • [ ] Dependency-version lockfiles

Installation

Craftr 2.x is currently not on PyPI so you have to install it from the Git repository. Note that the most recent version of Craftr might also require an unreleased version of the nr module, thus it is recommended to install it from the Git repository as well.

$ virtualenv -p python3 env && source env/bin/activate
$ git clone https://github.com/NiklasRosenstein/py-nr.git
$ pip install -e py-nr
$ git clone https://github.com/craftr-build/craftr.git
$ pip install -e craftr
$ craftr version
2.0.0-dev

Requirements

Python

License

The Craftr build system
Copyright (C) 2016  Niklas Rosenstein

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

For more information, see the LICENSE.txt file.

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

craftr-build-2.0.0.dev3.tar.gz (82.6 kB view details)

Uploaded Source

File details

Details for the file craftr-build-2.0.0.dev3.tar.gz.

File metadata

File hashes

Hashes for craftr-build-2.0.0.dev3.tar.gz
Algorithm Hash digest
SHA256 3ef658a2dfcb6762e7c995c1ae6e1f6b7194db3b3cbcdfbacbcd29e7114cb48e
MD5 382c83dd4efcc493fcd310821d2b9441
BLAKE2b-256 8613a74b15bb8a2dae82e866f75f30372ca71e8a6c920c1a7551fb7dfbb1ec5a

See more details on using hashes here.

Supported by

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