MesaSetWorkspaceName :: (String)

Sets the current workspace name, should only be called once

MesaInitWorkspace :: (Table)

Creates a new workspace

-- Config value list:

MesaInitWorkspace({
    Projects = {
        -- List of workspace projects in BUILD ORDER, pulled with MesaProjectRef
    },
    Tools = {
        -- List of workspace tools, pulled with MesaFindTool
    },
    SDKs = {
        -- List of workspace SDKs pulled with MesaSDKRef
    }
})

MesaSetProjectName :: (String)

Sets the project name, should be called before MesaInitProject

MesaInitProject :: (Table)

Creates a new project, should be called after MesaInitProject

MesaInitProject({
    -- List of source files to compile
    Sources = {
        "src/main.cpp"
    },

    -- List of include directories for the project
    Includes = {
        GlobalIncludes -- See MesaSetWorkspaceGlobals
    },

    -- List of requires projects/libraries for the project
    Require = {
        MesaPkgProjectRef("FusionClient"),
        MesaPkgProjectRef("FusionClientHeaders"),
    },

    -- Optional: Generates a static, or dynamic library from the project, instead of an executable
    --PackageTarget = {
    --    OutputType = "Dynamic", -- Dynamic for a DLL/SO file, or Static for a LIB/A file
    --    OutputName = "Game", -- Name of the static/dynamic library
    --    RawOutputName = true -- Should mesa append "lib" to OutputName?
    --},

    -- Build config
    Build = {
        EnableDebugSymbols = true -- Should -g be passed to the compiler, generating debug symbols?
    }
})

MesaProjectRef :: (String)

Reference a project

MesaPkgConfig :: (String)

This feature is only avalible on GNU/Linux systems

Locate a package using pkg-config

MesaHasFeature :: (String)

Checks if the given feature is avalible, feature names listed below

  • PkgConfig, supported on Linux

MesaPkgProjectRef :: (String)

Create a package reference from a project

MesaSetCompiler :: (String)

Set the compiler identifier to use for the workspace, compiler IDs listed below

  • MinGW_G++, MinGW G++ compiler
  • GNU_G++, GNU G++ compiler

MesaSetWorkspaceGlobals :: (Table)

Set the workspace globals

MesaSetWorkspaceGlobals({
    GlobalIncludes = { "include", "FusionClient/include" }
})

MesaLog :: (String)

Log a message to the console

MesaFindTool :: (String)

Locate a mesa tool, tools should be placed in:

  • mesa_tools/TOOLNAME.mdll
  • config/mesa/tools/TOOLNAME.mdll

MesaSDKRef :: (String)

Reference and sdk located at the given position