Skip to content

Macro list

Interfiber edited this page Aug 4, 2024 · 2 revisions

Macro list

List of macros supported by Mesa

Workspace

Arguments: WorkspaceName(String) CanEval: false Description: Set the workspace name

Variable

Arguments: VariableName(String) VariableData(Any) CanEval: true Description: Create a variable

File

Arguments: FileName(FilePath) CanEval: true Description: Add a file to the projects list of files to build

Include

Arguments: IncludeDir(FilePath) CanEval: true Description: Appends the given directory to the include path for this project at build time

Property

Arguments: ArgumentName(WorkspaceProperty) ArgumentData(String/Any) CanEval: false Description: Set a top-level workspace property WorkspaceProperty:

  • CompilerName: Name of the compiler to use
  • BuildDirectory: Directory to use for build artifacts
  • EnableColor: Should the outputted Makefile be spiced up with some COLOR??!?!?!
  • C++Standard: Numeric value representing the C++ standard you wish to use

Import

Arguments: ProjectPath(FilePath) CanEval: false Description: Import a project into this workspace from the given file Notes: Use data:ProjectPath to import files from Mesa's Library directory

ImportCMake

Arguments: CMakeProjectDir(FilePath) CanEval: false Description: Import a CMake project into this workspace from the given directory

DefineCompiler

Arguments: CompilerName(String) CompilerPath(FilePath) CanEval: false Description: Register a compiler with Mesa

Project

Arguments: ProjectName(String) CanEval: false Description: Create a new project with the given name

CompilerDefine

Arguments: DefineName(String) DefineValue(String) CanEval: true Description: Define a compiler variable with the given name and value

Config

Arguments: ConfigName(ProjectConfig) ConfigValue(String/Any) CanEval: true Description: Set a top-level project config value ProjectConfig:

  • OutputName: Name of the outputted executable/library file
  • OptimizationMode: Optimization mode to use for this project (None, O1, O2, O3, OFast)
  • EnableDebugSymbols: Should this project have debug symbols embedded into its outputted executable (true, false)
  • BuildType: Type of build artifact this project produces (Executable, SharedLibrary, StaticLibrary)

Package

Arguments: ProjectName(String) CanEval: false Description: Link the current project against the specified project during build time

PackageCMake

Arguments: CMakeDir(String) CMakeLibraryName(String) CanEval: false Description: Link against the given CMake projects library, see the CMake Integration page for more info

PackagePkgConfig

Arguments: PkgConfigPackageName(String) CanEval: false Description: Link against the given Pkg-Config package at build time, see the Pkg-Config Integration page for more info