This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

A lightweight cross-platform build system for c/c++, written in python

Project Description

Install

pip install pybythec

Source

Find the latest version on github: https://github.com/glowtree/pybythec

Usage

Create a pybythec.json file (or .pybythec.json) in the same directory as your c / c++ files.

Here’s an example of what would be declared in pybythec.json if you were building an executable called Simple:

{
  "target": "Simple",
  "binaryType": "exe",
  "sources": "main.cpp",
  "installPath": "."
}

Then from the command line run:

pybythec

Clean your project with:

pybythec -cl

Clean your project and all it’s dependencies with:

pybythec -cla

Look at other exmples in the ‘./example’ directory to see how to build a static library, a dynamic library, and also an executable with library dependencies.

pybythec assumes your already have the compiler / linker you want to use installed on your machine, currently gcc, clang and msvc are supported.

When you install pybythec with pip it will add a file called .pybythecGlobals.json to your home directory. This is a master file that declares all of your compiler and linker configurations. You can edit this as needed for system-wide configuration. If you want to move this file just be sure to have an environment variable called PYBYTHEC_GLOBALS point to the new location, for example:

export PYBYTHEC_GLOBALS=/Users/user/dev/.myPybythecGlobals.json

or for windows powershell:

$env:PYBYTHEC_GLOBALS="C:/Users/user/dev/.myPybythecGlobals.json"

There are up to 3 configuration files for any given build: global, project and local, where project overrides global, and local overrides both global and project.

You can point pybythec to the project configuration file with the environment variable PYBYTHEC_PROJECT, for example:

export PYBYTHEC_PROJECT=/Users/user/dev/myProject/.myProjectConfig.json

pybythec will always look for your local file in your current directoy, and it must be called pybythec.json or .pybythec.json.

You don’t need all 3 to build, in fact you could even put everything into one of those 3 files if you really wanted to.

The configuration files allow for nested declarations so that you can get specific for your building needs.

For example if I want a preprocessor declaration that’s project wide but only used when building on OS X for gcc, I can add the following to my project level config file:

"defines":
{
  "osx": {
    "gcc" : "SOME_DEFINE"
  }
}

You can use environmet variables in your configuration files simply by prepending with $, for example:

"libPaths": "$SHARED/lib"

You can have a python script automatically run after the build finishes, just be sure it’s called pybythecPost.py or .pybythecPost.py.

Currently pybythec supports gcc/g++, clang/clang++ and msvc

More documentation to come!!!

License

See LICENSE

Release History

Release History

This version
History Node

0.9.14

History Node

0.9.13

History Node

0.9.12

History Node

0.9.10

History Node

0.9.9

History Node

0.9.8

History Node

0.9.7

History Node

0.9.6

History Node

0.9.5

History Node

0.9.4

History Node

0.9.3

History Node

0.9.2

History Node

0.2.15

History Node

0.2.14

History Node

0.2.12

History Node

0.2.10

History Node

0.2.9

History Node

0.2.8

History Node

0.2.7

History Node

0.2.6

History Node

0.2.5

History Node

0.2.4

History Node

0.2.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.2

History Node

0.1.1

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pybythec-0.9.14-py2.py3-none-any.whl (16.7 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel May 19, 2017
pybythec-0.9.14.zip (21.0 kB) Copy SHA256 Checksum SHA256 Source May 19, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting