All Projects → bruxisma → brujeria

bruxisma / brujeria

Licence: MIT license
Black Magic to hook into setuptools and distutils for Extensions

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to brujeria

bob-build
Meta-build system using Blueprint and ninja
Stars: ✭ 24 (+41.18%)
Mutual labels:  build-system, ninja-build
jagen
A software engineer's workspace manager and build systems wrapper
Stars: ✭ 32 (+88.24%)
Mutual labels:  build-system, ninja-build
saker.build
A modern build system focusing on fast and incremental builds for all project sizes
Stars: ✭ 51 (+200%)
Mutual labels:  build-system
cppan
Project evolved into Software Network: https://github.com/SoftwareNetwork/sw
Stars: ✭ 108 (+535.29%)
Mutual labels:  build-system
source
Onion's fork of OpenWRT's source build system. The firmware for the Omega2, Omega2+, and Omega2 Pro is based on the openwrt-18.06 branch.
Stars: ✭ 73 (+329.41%)
Mutual labels:  build-system
dotfiles
PJ's dotfiles - There are many like it but this one is mine
Stars: ✭ 24 (+41.18%)
Mutual labels:  setuptools
sw
Software Manager. Build System, Build System Generator and Package Manager. C/C++ and other languages. Tools and libraries for Software Management.
Stars: ✭ 93 (+447.06%)
Mutual labels:  build-system
ycm
Extra CMake Modules for YARP and friends
Stars: ✭ 42 (+147.06%)
Mutual labels:  build-system
tweego-setup
A blank Tweego project with all the trimmings. Uses node and gulp.
Stars: ✭ 40 (+135.29%)
Mutual labels:  build-system
systemjs-tools
(dev)tools for working with SystemJS
Stars: ✭ 41 (+141.18%)
Mutual labels:  build-system
poetry-setup
Generate setup.py (setuptools) from pyproject.toml (poetry)
Stars: ✭ 44 (+158.82%)
Mutual labels:  setuptools
setuptools-golang-examples
Example extensions written for https://github.com/asottile/setuptools-golang
Stars: ✭ 16 (-5.88%)
Mutual labels:  setuptools
elite
Fegeya Elitebuild, small, powerful build system. Written in Rust.
Stars: ✭ 24 (+41.18%)
Mutual labels:  build-system
make
The Ultimate Makefile to compile all your C, C++, Assembly and Fortran projects
Stars: ✭ 41 (+141.18%)
Mutual labels:  build-system
PathEd
📌 A deployable tool to add or remove values from the Windows PATH variable.
Stars: ✭ 28 (+64.71%)
Mutual labels:  setuptools
assemble-core
The core assemble application with no presets or defaults. All configuration is left to the implementor.
Stars: ✭ 17 (+0%)
Mutual labels:  build-system
cmkr
Modern build system based on CMake and TOML.
Stars: ✭ 211 (+1141.18%)
Mutual labels:  build-system
b2
B2 makes it easy to build C++ projects, everywhere.
Stars: ✭ 38 (+123.53%)
Mutual labels:  build-system
CMakeBuildPackage
Automatic project build script with CMake
Stars: ✭ 19 (+11.76%)
Mutual labels:  build-system
build
Build system scripts based on GENie (https://github.com/bkaradzic/genie) project generator
Stars: ✭ 30 (+76.47%)
Mutual labels:  build-system

Overview

Brujería is a python library that simplifies development workflow for native extensions. It does this by providing import hooks that allow you to compile your extensions on import (much like cppimport) so you can play around with the API in a REPL. Lastly, it provides some hooks so that using these from tools like poetry are just a single line. It does all of this via CMake, but in a way to reduce the need to touch CMake in the first place.

Brujería currently utilizes IXM to reduce the overhead of maintaining a CMake project.

Features

Currently, Brujería provides the following:

  • Automatic discovery of C and C++ extensions.
  • Basic MinGW Support (CPython does not guarantee this)
  • Works on Windows, macOS, and Linux
  • The ability to mix C and C++ in a single extension (distutils/ setuptools do not currently permit this)
  • Basic poetry integration via preprovided build function.
  • pyproject.toml integration for configuration settings

Why the name?

Brujería is a spanish word for "witchcraft". Given the strange, mystic, and sometimes arcane steps that distutils and setuptools must take when building native extensions, it only makes sense that a library that takes advantage of various undocumented hooks might be labelled Black Magic.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].