build-tools/evm-config.schema.json

183 строки
4.2 KiB
JSON

{
"title": "JSON schema for EVM configuration files",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"format": "uri-reference"
},
"defaultTarget": {
"description": "Default build target",
"type": "string",
"default": "electron"
},
"preserveSDK": {
"description": "Preserve the N most recent Xcode SDK versions",
"type": "integer",
"default": 5,
"minimum": 1
},
"execName": {
"description": "Name of the built executable to run",
"type": "string",
"default": "Electron",
"minLength": 1
},
"extends": {
"description": "Name of base config to extend",
"type": "string",
"minLength": 1
},
"reclient": {
"description": "Whether to use the Electron RBE infrastructure",
"type": "string",
"enum": [
"remote_exec",
"none"
]
},
"reclientHelperPath": {
"description": "Path to alternative reclient credential helper",
"type": "string"
},
"reclientServiceAddress": {
"description": "Alternative RBE cluster address",
"type": "string"
},
"root": {
"description": "Path of the top directory. Home of the .gclient file",
"type": "string",
"minLength": 1
},
"remotes": {
"description": "Remotes for Git checkouts",
"type": "object",
"properties": {
"electron": {
"description": "Remotes for the Electron repo",
"type": "object",
"properties": {
"fork": {
"description": "Fork remote",
"type": "string",
"anyOf": [
{
"format": "uri"
},
{
"pattern": "^git@.+$"
}
],
"minLength": 1
},
"origin": {
"description": "Origin remote",
"type": "string",
"anyOf": [
{
"format": "uri"
},
{
"pattern": "^git@.+$"
}
],
"minLength": 1
}
},
"additionalProperties": false,
"required": [
"origin"
]
}
},
"additionalProperties": false,
"required": [
"electron"
]
},
"gen": {
"description": "Configuration for GN",
"type": "object",
"properties": {
"args": {
"description": "Extra arguments for GN",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"out": {
"description": "Output directory",
"type": "string",
"minLength": 1
}
},
"additionalProperties": false,
"required": [
"args",
"out"
]
},
"env": {
"description": "Environment variables set when building Electron",
"type": "object",
"properties": {
"GIT_CACHE_PATH": {
"description": "Path to use as git cache for gclient",
"type": "string",
"minLength": 1
},
"CHROMIUM_BUILDTOOLS_PATH": {
"description": "Path of Chromium buildtools in the checkout",
"type": "string",
"minLength": 1
}
},
"required": [
"CHROMIUM_BUILDTOOLS_PATH"
]
},
"configValidationLevel": {
"description": "Validation level for this configuration",
"type": "string",
"enum": [
"strict",
"warn",
"none"
],
"default": "strict"
}
},
"additionalProperties": false,
"oneOf": [
{
"required": [
"extends"
]
},
{
"properties": {
"defaultTarget": {
"type": "string",
"pattern": "chrome"
}
},
"required": [
"defaultTarget",
"env",
"root"
]
},
{
"required": [
"root",
"remotes",
"gen",
"env"
]
}
]
}