CMaize Conventions

This section describes the conventions to be followed when developing for CMaize. Since CMaize is based on CMakePPLang, an object-oriented extension to the CMake language, CMaize developers should follow the same conventions set forth by the CMakePPLang conventions, unless otherwise specified here.

Namespaces

The CMakePPLang uses the prefixes cpp_, _cpp_, and __cpp_ to specify namespaces to specify public API, protected, and private commands, as well as CMAKEPP_LANG_, _CMAKEPP_LANG_, and __CMAKEPP_LANG_ for for variables in the same scopes. CMaize adopts a similar convention, using the prefixes cmaize_, _cmaize_, and __cmaize_ for commands and CMAIZE_, _CMAIZE_, and __CMAIZE_ for variables.

Note that commands in native CMake (as well as CMakePPLang) are case-insensitive, so the CMAIZE_ prefix on a command is still the same namespace as cmaize_. However, variables are case-sensitive, so care needs to be taken not to overlap variables and commands with the same names.