Build/JSON Schema.json.old

200 lines
5.5 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"type": "object",
"properties":
{
"name": {"type": "string"},
"type":
{
"type": "string",
"enum": ["aurora", "generic", "root", "lazy_free", "utility", "blank"],
"description": "https://pastebin.com/ThE2t9EJ"
},
"sources":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "add most files matching regex('${path}'). .masm, .inl, and others may not match unless specifically requested because premake do be premake. "
},
"sourcePaths":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "add files projectDir/${path}/**.[common exts and some]"
},
"excludes":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "removes files matching regex('${exclude}') "
},
"include":
{
"type": ["array", "string"],
"description": "include directory. accessible from all translation units. inc order: internal -> include_next -> public "
},
"noLink":
{
"type": "boolean",
"description": "indicates the current project is a header only library and therefore one does not link against a compiled module"
},
"dllexport":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "adds a preprocessor definition to translation units compling a shared project"
},
"dllimport":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "adds a preprocessor definition to translation units linking against a shared project"
},
"staticImpDefines":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "adds a preprocessor definition to translation units linking against or compiling a static project"
},
"impDefines":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "adds a preprocessor definition to translation units compiling the project"
},
"impInclude":
{
"type": ["array", "string"],
"description": "appends a relative path to the include paths"
},
"defines":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "adds preprocessor definition. supports '=value'. availablity extends to dependents"
},
"require":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "depend on another project. this can be used to fence build stages and integrate other native build+execute utils ahead of project compilation time"
},
"soft-depends":
{
"type": ["array", "string"],
"items":
{
"type": "string"
}
},
"depends":
{
"type": ["array", "string"],
"items":
{
"type": "string"
},
"description": "link against another library"
},
"features":
{
"type": ["array", "string"],
"items":
{
"type": "string",
"enum": ["remove-platform-code", "guess-platform-code"]
},
"description": "remove-platform-code -> excludes paths which appear to be tied to common hardware and software architectures (win32,mac,xnu,nt,intel,amiga,x86_64,mips,arm,powerpc,riscv,etc)"
},
"actions":
{
"type": "array",
"items":
{
"type": "object",
"properties":
{
"if": {"type": "string"},
"then": {"type": ["string", "object", "array"] },
"eval": {"type": ["string", "object", "array"]}
}
}
},
"isCwdProjRoot":
{
"type": "boolean"
},
"events":
{
"type": "array",
"items":
{
"type": "object",
"properties":
{
"when":
{
"type": "string",
"enum": ["pre", "post"]
},
"lua":
{
"type": "string",
"description": "executes lua script under Build_UserScripts/%s.lua"
},
"bin":
{
"type": "string",
"description": "shell script"
}
}
}
}
},
"required": ["name", "type"]
}