zmake is a multi-platform build system generator like CMake or SCons, but designed to be lightweight. Its file enumeration will auto-add new files unless they match an ignore pattern. It checks filenames and directories to determine which configurations a file should be compiled for.
zmake is intended to run as a pre-build step for make or Visual Studio. It recurses from specified root directories and overwrites outdated vcxproj and Makefiles.
Examples of zmake generated output: Makefile, vcxproj
zmake does not manage compiler options. Instead generated vcxprojs import zmake_base.props and either zmake_exe.props, zmake_lib.props, or zmake_dll.props. Generated Makefiles include zmake_top.mk and zmake_base.mk. Users define their platform specific compiler options in these files.
Currently it does not support Xcode (because of the pbxproj file format). If you have documentation on this format, I can add support.
zmake-config.ztxt is the global settings file. The complete list of parameters is defined in src/zmake/Config.cpp (look for WTON_MEMBER)
Individual projects and subdirectories may include parameter overrides with a file named zmake.ztxt. The complete list of overrideable parameters is defined in src/zmake/ProjectData.cpp (look for WTON_MEMBER)
zmake is built with zmake. Look at its examples directory for many use cases.