Skip to main content

Small build system

Project description

Mapyr v.0.8.6

Mapyr - is a small build system written in Python3, uses python as build file (no new languages) and inherits the Makefile rule sys/tem, extending and complementing it.

Advantages of Mapyr:

  • Small size
  • Project system
  • Simple hierarchy
  • Modular addon system makes it easy to add new languages or
  • It can be used as is for any language. Language modules just for convenience.

Usage

Mapyr starts with build.py file. Example of build.py:

#!/usr/bin/env python

from mapyr import *

def get_project(name:str) -> ProjectBase:
    cfg = ConfigBase()
    return ProjectBase('debug','target-file', cfg)

if __name__ == "__main__":
    process(get_project)

name can be used to identify projects. This example uses base classes, but for more convenient using there are addons like c.py and they must provide its own classes (example: c.Project,c.Config from c.py)

run:

./build.py

Rule system

Rule system come directly from GNU Make:

target - file (or phony name) that must be exists or be built

prerequisites - list of rules that we have to build before this rule

exec - what we must do to get target.

If any from prerequisites newer than taraget then rebuid rule.

Projects

Project needed to share configations between them. Project joins multiple rules of one unit, and keep private, protected and public configurations. They act like in C++, but are not as strict. You choose which configuration to take from the subproject. But nevertheless, they are separated in order to understand what the project wants to show us and what to leave for internal use.

private - only for this project

protected - for this and children

public - for anyone who want include us as subproject

You can look at examples in the test directory

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

mapyr-0.8.6.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

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

mapyr-0.8.6-py2.py3-none-any.whl (11.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file mapyr-0.8.6.tar.gz.

File metadata

  • Download URL: mapyr-0.8.6.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.10.12 Linux/5.15.0-133-generic

File hashes

Hashes for mapyr-0.8.6.tar.gz
Algorithm Hash digest
SHA256 63b4f1dfcbf1c73d0cce5852a240adff8c1f510f19e34bd64a74cb4aa23f1cc8
MD5 2624474ae4a87cc6f4960893010e4b4e
BLAKE2b-256 6770939c828d6f8d9e1b6870bdcfe031207252c7c017404550d7fe5015dd6b55

See more details on using hashes here.

File details

Details for the file mapyr-0.8.6-py2.py3-none-any.whl.

File metadata

  • Download URL: mapyr-0.8.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.10.12 Linux/5.15.0-133-generic

File hashes

Hashes for mapyr-0.8.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 395d88e36126463c4508b705b63eefc197aac4fb809c0da64aa4c81dc2c2de0d
MD5 9cf6ef9d6d15414b5982c4f84fb09f27
BLAKE2b-256 fbad0de0d4d08bb4e80cb0e9cdf6ea42414ae3783322aabda7600204b63f377b

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