1
0

schema_toolchains.json 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "description": "Schema for the CMake toolchains object kind",
  4. "type": "object",
  5. "required": [
  6. "kind",
  7. "version",
  8. "toolchains"
  9. ],
  10. "properties": {
  11. "kind": {
  12. "type": "string",
  13. "const": "toolchains",
  14. "description": "Specifies the object kind"
  15. },
  16. "version": {
  17. "type": "object",
  18. "required": [
  19. "major",
  20. "minor"
  21. ],
  22. "properties": {
  23. "major": {
  24. "type": "integer",
  25. "const": 1
  26. },
  27. "minor": {
  28. "type": "integer",
  29. "const": 0
  30. }
  31. },
  32. "additionalProperties": false
  33. },
  34. "toolchains": {
  35. "type": "array",
  36. "description": "Array of toolchain configurations per language",
  37. "items": {
  38. "type": "object",
  39. "required": [
  40. "language",
  41. "compiler"
  42. ],
  43. "properties": {
  44. "language": {
  45. "type": "string",
  46. "description": "Toolchain language identifier (e.g. C, CXX)"
  47. },
  48. "compiler": {
  49. "type": "object",
  50. "properties": {
  51. "path": {
  52. "type": "string",
  53. "description": "Path to the compiler executable. This is present when the CMAKE_<LANG>_COMPILER variable is defined."
  54. },
  55. "id": {
  56. "type": "string",
  57. "description": "Compiler identifier (e.g. GNU, MSVC). This is present when the CMAKE_<LANG>_COMPILER_ID variable is defined."
  58. },
  59. "version": {
  60. "type": "string",
  61. "description": "Version of the compiler. This is present when the CMAKE_<LANG>_COMPILER_VERSION variable is defined."
  62. },
  63. "target": {
  64. "type": "string",
  65. "description": "Cross-compiling target of the compiler. This is present when the CMAKE_<LANG>_COMPILER_TARGET variable is defined."
  66. },
  67. "implicit": {
  68. "type": "object",
  69. "properties": {
  70. "includeDirectories": {
  71. "type": "array",
  72. "items": {
  73. "type": "string"
  74. },
  75. "description": "List of implicit include directories for the compiler. This is present when the CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES variable is defined."
  76. },
  77. "linkDirectories": {
  78. "type": "array",
  79. "items": {
  80. "type": "string"
  81. },
  82. "description": "List of implicit link directories for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES variable is defined."
  83. },
  84. "linkFrameworkDirectories": {
  85. "type": "array",
  86. "items": {
  87. "type": "string"
  88. },
  89. "description": "List of implicit link framework directories for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_FRAMEWORK_DIRECTORIES variable is defined."
  90. },
  91. "linkLibraries": {
  92. "type": "array",
  93. "items": {
  94. "type": "string"
  95. },
  96. "description": "List of implicit link libraries for the compiler front end. This is present when the CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES variable is defined."
  97. }
  98. },
  99. "additionalProperties": false
  100. }
  101. },
  102. "additionalProperties": false
  103. },
  104. "sourceFileExtensions": {
  105. "type": "array",
  106. "items": {
  107. "type": "string"
  108. },
  109. "description": "List of source file extensions (without leading dot) supported by this toolchain"
  110. }
  111. },
  112. "additionalProperties": false
  113. }
  114. }
  115. },
  116. "additionalProperties": false
  117. }