Meta build system based on Ninja and Python
Project description
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
Additional links:
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
Contributions
Craftr is a one-man-show and an immature piece of software. I am happy about every contribution and feedback, be it questions, criticism, feature requests, bug reports or pull requests!
I would love to see Craftr used by more people. If you think it’s worth to give it a shot, don’t hesitate to ask if you’re getting stuck!
Issue Tracker: https://github.com/craftr-build/craftr/issues Twitter: [@rosensteinn](twitter.com/rosensteinn) [@craftr_build](https://twitter.com/craftr_build)
Installation
Craftr 2.x does not have a stable release yet, though the 2.0.0.devx tags are already available on PyPI. If you do not explicitly specify the version number, Pip will install Craftr 1.x.
$ pip install craftr-build==2.0.0.dev5
To get the cutting edge development version, I suggest installing Craftr from the Git repository into a virtualenv.
$ virtualenv -p python3 env && source env/bin/activate $ git clone https://github.com/craftr-build/craftr.git -b development $ cd craftr $ pip install -e .
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
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.