The Syntax of the Project.meta file =================================== Config types ------------ Three config types exist: ExecutableConfig, LibraryConfig and CustomConfig. Some elements are only valid for specific types. Filter ------ Every element (except the Project element) in Project.meta has two attributes: - default: if set to "off", this element is not taken into account. Default is "on". - filter: The element can be removed/added explicitly regardless of the "default" attribute with the command line options - --do "filter name" - --omit "filter name" Example: .. code-block:: console PostSteps { CommandLine "$(OutputDir)/$(ArtifactName)", filter: run, default: off } The executable is not executed by default unless "run" is specified on command line: .. code-block:: console bake ... --do run Notes ----- - Specify the paths always relative to the current project root. - Keep the variable substitution in Project.meta in mind. - Use double quotes (") if the strings have spaces or slashes. - Use hash marks (#) for comments. Syntax ------ .. parsed-literal:: :ref:`project` :ref:`default `: { :ref:`description` :ref:`requiredBakeVersion` minimum: , maximum: :ref:`responsible` { :ref:`person` , :ref:`email`: } # 0..n configs :ref:`executableConfig` | :ref:`libraryConfig` | :ref:`customConfig` , :ref:`extends`: , :ref:`mergeInc`: yes|no, :ref:`private`: true|false { # Valid for all config types :ref:`description` :ref:`includeDir` , :ref:`inherit`: true|false, :ref:`inject`: front|back, :ref:`system`: true|false :ref:`set` , value: | cmd: , :ref:`env`: true|false :ref:`Dependency` , :ref:`config `: :ref:`externalLibrary` , :ref:`searchExternalLibrary`: true|false :ref:`userLibrary` :ref:`externalLibrarySearchPath` :ref:`preSteps` { :ref:`makefile` , :ref:`makefileLib`: , :ref:`makefileTarget`: , :ref:`makefilePathTo`: , :ref:`makefileNoClean`: true|false, :ref:`makefileChangeWorkingDir`: true|false, :ref:`echo `: on|off, :ref:`independent`: true|false, :ref:`validExitCodes`: <[array]> { :ref:`Flags ` } :ref:`commandLine` , :ref:`echo `: on|off, :ref:`independent`: true|false, :ref:`validExitCodes`: <[array]> :ref:`sleep` , :ref:`echo `: on|off, :ref:`independent`: true|false :ref:`makeDir` , :ref:`echo `: on|off :ref:`remove` , :ref:`echo `: on|off :ref:`touch` , :ref:`echo `: on|off :ref:`copy` , to: , :ref:`echo `: on|off :ref:`move` , to: , :ref:`echo `: on|off } :ref:`postSteps` { # Same as for PreSteps } :ref:`startupSteps` { # Same as for PreSteps } :ref:`exitSteps` { # Same as for PreSteps } :ref:`cleanSteps` { # Same as for PreSteps } :ref:`defaultToolchain` , :ref:`outputDir`: , :ref:`outputDirPostfix`: , :ref:`eclipseOrder`: true|false { :ref:`compiler` ASM | CPP | C, :ref:`command`: , :ref:`prefix`: , :ref:`keepObjFileEndings`: true|false { :ref:`Flags ` :ref:`Flags ` :ref:`internalDefines` SrcFileEndings } :ref:`archiver` :ref:`command`: , :ref:`prefix`: { :ref:`Flags ` } :ref:`linker` :ref:`command`: , :ref:`prefix`: , :ref:`onlyDirectDeps`: true|false { :ref:`Flags ` :ref:`libPrefixFlags` :ref:`libPostfixFlags` } :ref:`internalIncludes` :ref:`docu` } :ref:`toolchain` :ref:`outputDir`: , :ref:`outputDirPostfix`: { :ref:`compiler` ASM | CPP | C, :ref:`command`: , :ref:`cuda`: true|false, :ref:`prefix`: { :ref:`Flags ` , add: , remove: :ref:`Flags ` :ref:`srcFileEndings` } :ref:`archiver` :ref:`command`: , :ref:`prefix`: { :ref:`Flags ` , add: , remove: } :ref:`linker` :ref:`command`: , :ref:`prefix`: , :ref:`onlyDirectDeps`: true|false { :ref:`Flags ` , add: , remove: :ref:`libPrefixFlags` , add: , remove: :ref:`libPostfixFlags` , add: , remove: } :ref:`docu` } :ref:`prebuild` { :ref:`except` , :ref:`config `: } :ref:`compilationDB` :ref:`compilationCheck` include: exclude: ignore: # Valid for ExecutableConfig and LibraryConfig :ref:`files` , :ref:`compileOnly`: true|false, :ref:`linkDirectly`: true|false { :ref:`Flags ` , add: , remove: :ref:`Flags ` } :ref:`excludeFiles` :ref:`artifactName` :ref:`artifactExtension` # Valid for ExecutableConfig :ref:`linkerScript`