Skip to main content

Small build system

Project description

Mapyr v.0.8.5

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.5.tar.gz (10.0 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.5-py2.py3-none-any.whl (11.5 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: mapyr-0.8.5.tar.gz
  • Upload date:
  • Size: 10.0 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.5.tar.gz
Algorithm Hash digest
SHA256 381dceeb3dce0b7cbba2dfecf9151f4d428b3c41fcb7118627a4edface21fed3
MD5 f5a35cd953b1c93aa4d416da6081a2f6
BLAKE2b-256 656e274fd345698e576f97e17ee60027f6bbdbef80ecdfb71bfb5843bee78ade

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mapyr-0.8.5-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.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9da08833d80229753c5c80f21c3092659db067e79389e21e73fe82365154e852
MD5 db405ec566c5c03b369b6ed1cc998637
BLAKE2b-256 889f4cf03249cddaf19554e089994abcb4b5119f89a21aa3837df6464ae0ffe7

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