blob: 2116c4f016df2dd78879079c3f7817d16a853b11 [file] [log] [blame]
{
"$id": "https://json.schemastore.org/ffigen",
"$comment": "This file is generated. To regenerate run: dart tool/generate_json_schema.dart in github.com/dart-lang/native/tree/main/pkgs/ffigen",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"properties": {
"llvm-path": {
"type": "array",
"items": {
"type": "string"
}
},
"output": {
"$oneOf": [
{
"$ref": "#/$defs/filePath"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"bindings": {
"$ref": "#/$defs/filePath"
},
"symbol-file": {
"type": "object",
"additionalProperties": false,
"properties": {
"output": {
"$ref": "#/$defs/filePath"
},
"import-path": {
"type": "string"
}
},
"required": [
"output",
"import-path"
]
}
},
"required": [
"bindings"
]
}
]
},
"language": {
"enum": [
"c",
"objc"
]
},
"headers": {
"type": "object",
"additionalProperties": false,
"properties": {
"entry-points": {
"type": "array",
"items": {
"type": "string"
}
},
"include-directives": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"entry-points"
]
},
"ignore-source-errors": {
"type": "boolean"
},
"compiler-opts": {
"$oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"compiler-opts-automatic": {
"type": "object",
"additionalProperties": false,
"properties": {
"macos": {
"type": "object",
"additionalProperties": false,
"properties": {
"include-c-standard-library": {
"type": "boolean"
}
}
}
}
},
"library-imports": {
"type": "object",
"patternProperties": {
".*": {
"type": "string"
}
}
},
"functions": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
},
"member-rename": {
"$ref": "#/$defs/memberRename"
},
"symbol-address": {
"$ref": "#/$defs/includeExclude"
},
"expose-typedefs": {
"$ref": "#/$defs/includeExclude"
},
"leaf": {
"$ref": "#/$defs/includeExclude"
},
"variadic-arguments": {
"type": "object",
"patternProperties": {
".*": {
"type": "array",
"items": {
"$oneOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"types": {
"type": "array",
"items": {
"type": "string"
}
},
"postfix": {
"type": "string"
}
},
"required": [
"types"
]
}
]
}
}
}
}
}
},
"structs": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
},
"member-rename": {
"$ref": "#/$defs/memberRename"
},
"dependency-only": {
"$ref": "#/$defs/dependencyOnly"
},
"pack": {
"type": "object",
"patternProperties": {
".*": {
"enum": [
"none",
1,
2,
4,
8,
16
]
}
}
}
}
},
"unions": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
},
"member-rename": {
"$ref": "#/$defs/memberRename"
},
"dependency-only": {
"$ref": "#/$defs/dependencyOnly"
}
}
},
"enums": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
},
"member-rename": {
"$ref": "#/$defs/memberRename"
}
}
},
"unnamed-enums": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
}
}
},
"globals": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
},
"symbol-address": {
"$ref": "#/$defs/includeExclude"
}
}
},
"macros": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
}
}
},
"typedefs": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
}
}
},
"objc-interfaces": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"rename": {
"$ref": "#/$defs/rename"
},
"member-rename": {
"$ref": "#/$defs/memberRename"
},
"module": {
"$ref": "#/$defs/objcInterfaceModule"
}
}
},
"import": {
"type": "object",
"additionalProperties": false,
"properties": {
"symbol-files": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"type-map": {
"type": "object",
"additionalProperties": false,
"properties": {
"typedefs": {
"$ref": "#/$defs/mappedTypes"
},
"structs": {
"$ref": "#/$defs/mappedTypes"
},
"unions": {
"$ref": "#/$defs/mappedTypes"
},
"native-types": {
"$ref": "#/$defs/mappedTypes"
}
}
},
"exclude-all-by-default": {
"type": "boolean"
},
"sort": {
"type": "boolean"
},
"use-supported-typedefs": {
"type": "boolean"
},
"comments": {
"$oneOf": [
{
"type": "boolean"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"style": {
"enum": [
"doxygen",
"any"
]
},
"length": {
"enum": [
"brief",
"full"
]
}
}
}
]
},
"name": {
"$ref": "#/$defs/publicDartClass"
},
"description": {
"$ref": "#/$defs/nonEmptyString"
},
"preamble": {
"type": "string"
},
"use-dart-handle": {
"type": "boolean"
},
"ffi-native": {
"$oneOf": [
{
"enum": [
null
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"assetId": {
"type": "string"
}
},
"required": [
"assetId"
]
}
]
}
},
"required": [
"output",
"headers"
],
"$defs": {
"filePath": {
"type": "string",
"description": "A file path"
},
"fullMatchOrRegexpList": {
"type": "array",
"items": {
"type": "string"
}
},
"rename": {
"type": "object",
"patternProperties": {
".*": {
"type": "string"
}
}
},
"memberRename": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"patternProperties": {
".*": {
"type": "string"
}
}
}
}
},
"includeExclude": {
"type": "object",
"additionalProperties": false,
"properties": {
"include": {
"$ref": "#/$defs/fullMatchOrRegexpList"
},
"exclude": {
"$ref": "#/$defs/fullMatchOrRegexpList"
}
}
},
"dependencyOnly": {
"enum": [
"full",
"opaque"
]
},
"objcInterfaceModule": {
"type": "object",
"patternProperties": {
".*": {
"type": "string"
}
}
},
"mappedTypes": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"additionalProperties": false,
"properties": {
"lib": {
"type": "string"
},
"c-type": {
"type": "string"
},
"dart-type": {
"type": "string"
}
}
}
}
},
"publicDartClass": {
"type": "string",
"description": "A public dart class name.",
"pattern": "^[a-zA-Z]+[_a-zA-Z0-9]*$"
},
"nonEmptyString": {
"type": "string",
"pattern": ".+"
}
}
}