Python Makefile Tool
Project description
pymaketool
pymaketool is an elegant and simple tool to build and manager large C/C++ projects and libraries. The main purpose is to ease the build process of a project using Python for find and organize file sources.
pymaketool process modules of code like objects. These objects ware define by files *_mk.py. With Python you can code how to discover and get source files and include paths, e.g.:
# File app_mk.py
from pymakelib import module
@module.ModuleClass
class App(module.AbstractModule):
def getSrcs(self):
# Get all sources .c in current folder ./app/
# return [ 'app/app.c' ]
return self.getAllSrcsC()
def getIncs(self):
# Get all include paths in current folder ./app/
# return [ 'app/app.c' ]
return self.getAllIncsC()
The file app_mk.py could be more short and ease, e.g.:
# File app_mk.py
from pymakelib import module
# BasicCModule inherits from AbstractModule and implement getSrcs and getIncs.
@module.ModuleClass
class App(module.BasicCModule):
pass
The file app_mk.py in raw style:
# File app_mk.py
from pymakelib import module
@module.ModuleClass
class App():
def getSrcs(self):
return [
'app/app.c'
]
def getIncs(self):
return [
'app'
]
Remote modules could be load like static libraries and with special compiler flags. e.g:
# File extlib_mk.py
from pymakelib import module
@module.ModuleClass
class ExtLib(module.ExternalModule):
def init(self):
# Compile modulelib like static library (Optional)
return module.StaticLibrary("modulelib", "Release", rebuild=True)
def getModulePath(self)->str:
# Location of module
return '/LIBS/module_lib/module_lib_mk.py'
def getCompilerOpts(self):
# Override method and set speacial compiler flags (Optional)
opts = project.getCompilerOpts()
opts['CONTROL-C-OPTS'] = ['-std=c99']
return opts
For more documentation go to Read the Docs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pymaketool-2.0.0.tar.gz
(30.3 kB
view hashes)
Built Distribution
pymaketool-2.0.0-py3-none-any.whl
(47.1 kB
view hashes)
Close
Hashes for pymaketool-2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 726caf1bfe5028bf26c33f295bced6dfb8e0786a80b6154876bf288affd543e6 |
|
MD5 | 356bac476109b151ecf7aa57a969d2a7 |
|
BLAKE2b-256 | 01b45718e27f586cb16f3110093adaefb7ad00d5601b128ce1cab95841df0aaa |