Skip to main content

python based build system.

Project description

py_buildsysten

py_buildsystem is a python based buildsystem. It is configured using yaml files.

Instalation

The py_buildsytem can be installed using pip, or it can be installed from the source code.

from pip

pip install py_buildsystem

from source code

git clone https://github.com/ProrokWielki/py_buildsystem.git
cd py_buildsystem
python setup.py install

Usage

To run the package use this command:

python -m py_buildsystem <project specific toolchain config> <project config> [path to the toolchain]

To use this buildsystem you have to provide two yaml files:

  • project configuration,
  • project specific toolchain configuration.

If your toolchain is not in the PATH you have to provide its path to the buildystem.

Project configuration

This file contains definitions of the steps to be peformed, compiler definitions and includes.

Available steps:

  • compile,
  • link.

Project configuration file example:

defines:
  - STM32L452xx

includes:
  - ../../LIB/CMSIS/Device/ST/STM32L4xx/Include
  - ../../LIB/CMSIS/Include

steps:
  - compile MCU:
    source_directories: 
      - ../../MCU

    output_direcotry: ../../Output/Obj/MCU

    types:
      - .c
      - .s

  - link Everything:
    source_directories:
      -  ../../Output/Obj

    output_file: ../../Output/file.elf

    types:
      - .o

Step compile

Options available:

  • source directories -- list of directiories in which the files to compile are located,
  • output directory -- directory to which the output files will be writen,
  • types -- file types to be compiled,
  • search_subdirectories -- defines if the sub directories are searched (optional -- default = False).

Step link

Options available:

  • source_directories -- list of directories where object files are located,
  • output_file -- executable file which will be created after linking,
  • types -- file types to be linked.

Project specific toolchain configuration

This file defines three thinks:

  • toolchain to be used,
  • compilator flags,
  • linker flags.

Project specific toolchain configuration file example:

compiler: GCC_ARM

compiler_flags:
  - -mcpu=cortex-m4

linker_flags:
  - --specs=nosys.specs
  - -T ../../MCU/STM32L452RETx_FLASH.ld

Toolchain configuration

Every toolchain has to have its configuration file. The file contains basic inforamtion about the toolchain, executables names and defines basic flags used by the toolchain.

Currently supported toolchains:

  • arm-none-eabi -- GCC_ARM,
  • gcc -- GCC.

If the toolchain you wish to use is not supported you can add the configuration file to the project.

Toolchain configuration file example:

compiler: arm-none-eabi-gcc
linker:   arm-none-eabi-gcc

define_flag:  -D
output_flag:  -o
compile_flag: -c
include_flag: -I
comand_line_file: "-Wl,@"
version_flag: --version

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

py_buildsystem-0.3.4.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_buildsystem-0.3.4-py3.7.egg (41.2 kB view details)

Uploaded Egg

File details

Details for the file py_buildsystem-0.3.4.tar.gz.

File metadata

  • Download URL: py_buildsystem-0.3.4.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.0

File hashes

Hashes for py_buildsystem-0.3.4.tar.gz
Algorithm Hash digest
SHA256 bb49cfc7e57d53b9f7078cfc5bd3ea9c055aa3c05b456bd89d78d2d1f5cd25a3
MD5 82c8e05836f045ce0aa0e4231d4fc562
BLAKE2b-256 1600627e78f76d6a65900c9f593a2b309d009268fed33c743907595f6dce0263

See more details on using hashes here.

File details

Details for the file py_buildsystem-0.3.4-py3.7.egg.

File metadata

  • Download URL: py_buildsystem-0.3.4-py3.7.egg
  • Upload date:
  • Size: 41.2 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.0

File hashes

Hashes for py_buildsystem-0.3.4-py3.7.egg
Algorithm Hash digest
SHA256 b9c38c10712d01a536e5317eee90baa57ebae809fb3a4cb2a1b9865845f7b6d7
MD5 499e4c69e77b1e4e023fadb313ba5b87
BLAKE2b-256 68ba9ca875325ebbdbdcc188b2ed8b2b317dfd1b0511b2b545f2becc672c1c18

See more details on using hashes here.

Supported by

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