Skip to main content

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

Project description

https://img.shields.io/travis/glowtree/pybythec.svg?label=linux_macOs https://img.shields.io/appveyor/ci/glowtree/pybythec.svg?label=windows

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":
{
  "macOs": {
    "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

Project details


Release history Release notifications

This version
History Node

0.9.37

History Node

0.9.36

History Node

0.9.35

History Node

0.9.34

History Node

0.9.33

History Node

0.9.32

History Node

0.9.31

History Node

0.9.30

History Node

0.9.28

History Node

0.9.27

History Node

0.9.26

History Node

0.9.24

History Node

0.9.22

History Node

0.9.21

History Node

0.9.20

History Node

0.9.19

History Node

0.9.18

History Node

0.9.15

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 the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pybythec-0.9.37.zip (21.9 kB) Copy SHA256 hash SHA256 Source None May 24, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page