Premake module to support Ninja, because it's awesome.
For each project - configuration pair we create separate .ninja file. For solution we create build.ninja file which imports other .ninja files with subninja command.
Build.ninja file sets phony targets for configuration names so you can build them from command line. And default target is the first configuration name in your project (usually default).
To enable the experimental C++ modules support you just need to provide the --experimental-enable-cxx-modules
flag when generating the ninja build files.
By default only translation units with .cxx
, .cxxm
, .ixx
, .cppm
, .c++m
, .ccm
, .mpp
file extensions are considered to be C++ modules.
To force scanning of translation units with file extensions like .c
, .cc
, .cpp
, etc. provide the --experimental-modules-scan-all
flag when generating the ninja build files.
Part of integration tests of several generators in https://github.com/Jarod42/premake-sample-projects