The Syntax of the Project.meta file

Instructions for the Interactive Syntax Viewer

  • Move the mouse cursor over the blue elements to display more information.
  • Three config types exist: ExecutableConfig, LibraryConfig and CustomConfig. Move the mouse cursor over these elements to display the supported content.
Project default: <name> {
 
  Description <text>

  RequiredBakeVersion minimum: <major.minor.patch>, maximum: <major.minor.patch>

  Responsible {
    Person <name>, email: <adr>
  }

  # 0..n configs
  ExecutableConfig | LibraryConfig | CustomConfig <name>, extends: <parent(s)> {

    # Valid for all config types

    Description <text>
    IncludeDir <dir>, inherit: true|false, inject: front|back
    Set <variable>, value: <value> | cmd: <line>, env: true|false
    Dependency <project>, config: <name>
    ExternalLibrary <lib>, search: true|false
    UserLibrary <lib>
    ExternalLibrarySearchPath <path>
    PreSteps {
      Makefile <file>, lib: <lib>, target: <target>, pathTo: <paths>, default: on|off, filter: <name>, validExitCodes: <[array]> {
        Flags <flags>
      }
      CommandLine <line>, default: on|off, filter: <name>, validExitCodes: <[array]>
    }
    PostSteps {
      # Same as for PreSteps
    }
    StartupSteps {
      # Same as for PreSteps
    }
    ExitSteps {
      # Same as for PreSteps
    }
    DefaultToolchain <basedOn>, outputDir: <dir>, eclipseOrder: true|false {
      Compiler ASM | CPP | C, command: <cmd> {
        Flags <flags>
        Define <define>
        InternalDefines <file>
      }
      Archiver command: <cmd> {
        Flags <flags>
      }
      Linker command: <cmd> {
        Flags <flags>
        LibPrefixFlags <flags>
        LibPostfixFlags <flags>
      }
      InternalIncludes <file>
      LintPolicy <policy>
      Docu <cmdLine>
    }
    Toolchain outputDir: <dir> {
      Compiler ASM | CPP | C, command: <cmd> {
        Flags <flags>, add: <flags>, remove: <flags>
        Define <define>
      }
      Archiver command: <cmd> {
        Flags <flags>, add: <flags>, remove: <flags>
      }
      Linker command: <cmd> {
        Flags <flags>, add: <flags>, remove: <flags>
        LibPrefixFlags <flags>, add: <flags>, remove: <flags>
        LibPostfixFlags <flags>, add: <flags>, remove: <flags>
      }
      LintPolicy <policy>
      Docu <cmdLine>
    }

    # Valid for ExecutableConfig and LibraryConfig

    Files <pattern> {
      Flags <flags>, add: <flags>, remove: <flags>
      Define <define>
    }
    ExcludeFiles <pattern>
    ArtifactName <name>

    # Valid for ExecutableConfig

    LinkerScript <script>
    MapFile <name>

    # Valid for CustomConfig

    Makefile | CommandLine <name>, lib: <lib>, target: <target>, pathTo: <paths>, default: on|off, filter: <name>, validExitCodes: <[array]> {
      Flags <flags>
    }
<line>, default: on|off, filter: <name>, validExitCodes: <[array]>    

  }
}

Note

Specify the paths always relative to the current project root, but keep the variable substitution in Project.meta in mind.

  • Use double quotes (”) if the strings have spaces or slashes.
  • Use hash marks (#) for comments.