Introduction
What is it?
ZenMake is a cross-platform build system for C/C++ and some other languages. It uses meta build system Waf as a framework.
Some reasons to create this project can be found here.
Main features
Build config as python (.py) or as yaml file. Details are here.
Distribution as zip application or as system package (pip). See Installation.
Automatic reconfiguring: no need to run command ‘configure’.
Compiler autodetection.
Building and running functional/unit tests including an ability to build and run tests only on changes. Details are here.
Build configs in sub directories.
Building external dependencies.
Supported platforms: GNU/Linux, MacOS, MS Windows. Some other platforms like OpenBSD/FreeBSD should work as well but it hasn’t been tested.
Supported languages:
C: gcc, clang, msvc, icc, xlc, suncc, irixcc
C++: g++, clang++, msvc, icpc, xlc++, sunc++
D: dmd, ldc2, gdc; MS Windows is not supported yet
Fortran: gfortran, ifort (should work but not tested)
Assembler: gas (GNU Assembler)
Supported toolkits/frameworks: - SDL v2 (Linux only) - GTK v3 (Linux only) - Qt v5
Plans to do
There is no clear roadmap for this project. I add features that I think are needed to include.
Project links
Primary git repository: https://github.com/pustotnik/zenmake
Secondary git repository: https://gitlab.com/pustotnik/zenmake
Issue tracker: https://github.com/pustotnik/zenmake/issues
Pypi package: https://pypi.org/project/zenmake
Documentation: https://zenmake.readthedocs.io