blob: 0e4987e3feb4c7f3115fb7314ca15efe3792c311 [file] [log] [blame] [edit]
{
"$schema": "https://json-schema.org/draft-07/schema#",
"title": "package:code_assets party:shared shared definitions",
"definitions": {
"AndroidCodeConfig": {
"type": "object",
"properties": {
"target_ndk_api": {
"type": "integer"
}
},
"required": [
"target_ndk_api"
]
},
"Architecture": {
"type": "string",
"anyOf": [
{
"enum": [
"arm",
"arm64",
"ia32",
"riscv32",
"riscv64",
"x64"
]
},
{
"type": "string"
}
]
},
"Asset": {
"type": "object",
"properties": {
"type": {
"type": "string",
"anyOf": [
{
"const": "code_assets/code"
},
{
"type": "string"
}
]
}
},
"allOf": [
{
"if": {
"properties": {
"type": {
"const": "code_assets/code"
}
}
},
"then": {
"properties": {
"encoding": {
"$ref": "#/definitions/NativeCodeAssetEncoding"
}
}
}
}
]
},
"CCompilerConfig": {
"type": "object",
"properties": {
"ar": {
"$ref": "../../../../hooks/doc/schema/shared/shared_definitions.schema.json#/definitions/absolutePath"
},
"cc": {
"$ref": "../../../../hooks/doc/schema/shared/shared_definitions.schema.json#/definitions/absolutePath"
},
"ld": {
"$ref": "../../../../hooks/doc/schema/shared/shared_definitions.schema.json#/definitions/absolutePath"
},
"windows": {
"type": "object",
"properties": {
"developer_command_prompt": {
"type": "object",
"properties": {
"arguments": {
"type": "array",
"items": {
"type": "string"
}
},
"script": {
"$ref": "../../../../hooks/doc/schema/shared/shared_definitions.schema.json#/definitions/absolutePath"
}
},
"required": [
"arguments",
"script"
]
}
}
}
},
"required": [
"ar",
"cc",
"ld"
]
},
"CodeConfig": {
"type": "object",
"properties": {
"android": {
"$ref": "#/definitions/AndroidCodeConfig"
},
"c_compiler": {
"$ref": "#/definitions/CCompilerConfig"
},
"ios": {
"$ref": "#/definitions/IOSCodeConfig"
},
"link_mode_preference": {
"$ref": "#/definitions/LinkModePreference"
},
"macos": {
"$ref": "#/definitions/MacOSCodeConfig"
},
"target_architecture": {
"$ref": "#/definitions/Architecture"
},
"target_os": {
"$ref": "#/definitions/OS"
}
},
"required": [
"link_mode_preference",
"target_architecture",
"target_os"
],
"allOf": [
{
"if": {
"properties": {
"target_os": {
"const": "android"
}
}
},
"then": {
"required": [
"android"
]
}
},
{
"if": {
"properties": {
"target_os": {
"const": "ios"
}
}
},
"then": {
"required": [
"ios"
]
}
},
{
"if": {
"properties": {
"target_os": {
"const": "macos"
}
}
},
"then": {
"required": [
"macos"
]
}
},
{
"if": {
"properties": {
"target_os": {
"const": "windows"
}
}
},
"then": {
"properties": {
"c_compiler": {
"required": [
"windows"
]
}
}
}
}
]
},
"Config": {
"type": "object",
"properties": {
"extensions": {
"$ref": "#/definitions/ConfigExtensions"
}
}
},
"ConfigExtensions": {
"type": "object",
"properties": {
"code_assets": {
"$ref": "#/definitions/CodeConfig"
}
}
},
"IOSCodeConfig": {
"type": "object",
"properties": {
"target_sdk": {
"type": "string"
},
"target_version": {
"type": "integer"
}
},
"required": [
"target_sdk",
"target_version"
]
},
"LinkMode": {
"type": "object",
"properties": {
"type": {
"type": "string",
"anyOf": [
{
"enum": [
"dynamic_loading_bundle",
"dynamic_loading_executable",
"dynamic_loading_process",
"dynamic_loading_system",
"static"
]
},
{
"type": "string"
}
]
}
},
"required": [
"type"
],
"if": {
"properties": {
"type": {
"const": "dynamic_loading_system"
}
}
},
"then": {
"properties": {
"uri": {
"$ref": "../../../../hooks/doc/schema/shared/shared_definitions.schema.json#/definitions/relativePath"
}
},
"required": [
"uri"
]
}
},
"LinkModePreference": {
"type": "string",
"anyOf": [
{
"enum": [
"dynamic",
"prefer_dynamic",
"prefer_static",
"static"
]
},
{
"type": "string"
}
]
},
"MacOSCodeConfig": {
"type": "object",
"properties": {
"target_version": {
"type": "integer"
}
},
"required": [
"target_version"
]
},
"NativeCodeAssetEncoding": {
"type": "object",
"properties": {
"file": {
"$ref": "../../../../hooks/doc/schema/shared/shared_definitions.schema.json#/definitions/absolutePath"
},
"id": {
"type": "string"
},
"link_mode": {
"$ref": "#/definitions/LinkMode"
}
},
"required": [
"id",
"link_mode"
],
"if": {
"properties": {
"link_mode": {
"properties": {
"type": {
"anyOf": [
{
"const": "dynamic_loading_bundle"
},
{
"const": "static"
}
]
}
}
}
}
},
"then": {
"required": [
"file"
]
}
},
"OS": {
"type": "string",
"anyOf": [
{
"enum": [
"android",
"ios",
"linux",
"macos",
"windows"
]
},
{
"type": "string"
}
]
}
}
}