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.
- 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.
- 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