schema_target.json 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "description": "Schema for the CMake codemodel target object",
  4. "type": "object",
  5. "oneOf": [
  6. {
  7. "$comment": "The top level codemodelVersion field was only added in version 2.9, so we can't differentiate between earlier versions",
  8. "anyOf": [
  9. {
  10. "$ref": "#/definitions/codemodelV2_0"
  11. },
  12. {
  13. "$ref": "#/definitions/codemodelV2_1"
  14. },
  15. {
  16. "$ref": "#/definitions/codemodelV2_2"
  17. },
  18. {
  19. "$ref": "#/definitions/codemodelV2_5"
  20. },
  21. {
  22. "$ref": "#/definitions/codemodelV2_6"
  23. },
  24. {
  25. "$ref": "#/definitions/codemodelV2_7"
  26. },
  27. {
  28. "$ref": "#/definitions/codemodelV2_8"
  29. }
  30. ]
  31. },
  32. {
  33. "$ref": "#/definitions/codemodelV2_9"
  34. }
  35. ],
  36. "definitions": {
  37. "codemodelVersionV2_9": {
  38. "type": "object",
  39. "required": [
  40. "major",
  41. "minor"
  42. ],
  43. "properties": {
  44. "major": {
  45. "type": "integer",
  46. "const": 2
  47. },
  48. "minor": {
  49. "type": "integer",
  50. "minimum": 9
  51. }
  52. },
  53. "additionalProperties": false
  54. },
  55. "name": {
  56. "type": "string",
  57. "description": "Logical name of the target"
  58. },
  59. "id": {
  60. "type": "string",
  61. "description": "Unique identifier for the target. The format is unspecified and should not be interpreted by clients."
  62. },
  63. "type": {
  64. "type": "string",
  65. "enum": [
  66. "EXECUTABLE",
  67. "STATIC_LIBRARY",
  68. "SHARED_LIBRARY",
  69. "MODULE_LIBRARY",
  70. "OBJECT_LIBRARY",
  71. "INTERFACE_LIBRARY",
  72. "UTILITY"
  73. ]
  74. },
  75. "backtrace": {
  76. "type": "integer",
  77. "minimum": 0,
  78. "description": "Index into backtraceGraph nodes array"
  79. },
  80. "folder": {
  81. "type": "object",
  82. "description": "This will only be present if the FOLDER target property is set",
  83. "required": [
  84. "name"
  85. ],
  86. "properties": {
  87. "name": {
  88. "type": "string",
  89. "description": "Name of the folder to place the target under in IDEs and other GUI tools"
  90. }
  91. },
  92. "additionalProperties": false
  93. },
  94. "paths": {
  95. "type": "object",
  96. "required": [
  97. "source",
  98. "build"
  99. ],
  100. "properties": {
  101. "source": {
  102. "type": "string",
  103. "description": "Path to the source directory. If it is inside the top level source directory, the path will be relative to that directory. For the top level source directory, this will simply be '.'. Paths outside the top level source directory will be absolute."
  104. },
  105. "build": {
  106. "type": "string",
  107. "description": "Path to the build directory. If it is inside the top level build directory, the path will be relative to that directory. For the top level build directory, this will simply be '.'. Paths outside the top level build directory will be absolute."
  108. }
  109. },
  110. "additionalProperties": false
  111. },
  112. "nameOnDisk": {
  113. "type": "string",
  114. "description": "File name of the primary artifact on disk, only present for executable and library targets that are linked or archived into a single primary artifact"
  115. },
  116. "artifacts": {
  117. "type": "array",
  118. "description": "Only present for executable and library targets that produce artifacts on disk meant for consumption by dependents",
  119. "items": {
  120. "type": "object",
  121. "required": [
  122. "path"
  123. ],
  124. "properties": {
  125. "path": {
  126. "type": "string",
  127. "description": "Path to artifact file on disk. If the file is inside the top-level build directory, the path is specified relative to that directory. Otherwise, the path is absolute."
  128. }
  129. },
  130. "additionalProperties": false
  131. }
  132. },
  133. "isGeneratorProvided": {
  134. "type": "boolean",
  135. "description": "Only present and will have the value true if the target is provided by CMake's build system generator rather than by a command in the project's source code"
  136. },
  137. "install": {
  138. "type": "object",
  139. "description": "Only present if the target has an install() rule",
  140. "required": [
  141. "prefix",
  142. "destinations"
  143. ],
  144. "properties": {
  145. "prefix": {
  146. "type": "object",
  147. "required": [
  148. "path"
  149. ],
  150. "properties": {
  151. "path": {
  152. "type": "string",
  153. "description": "The value of CMAKE_INSTALL_PREFIX"
  154. }
  155. },
  156. "additionalProperties": false
  157. },
  158. "destinations": {
  159. "type": "array",
  160. "items": {
  161. "type": "object",
  162. "required": [
  163. "path"
  164. ],
  165. "properties": {
  166. "path": {
  167. "type": "string",
  168. "description": "Install destination path. It may be absolute or relative to the install prefix."
  169. },
  170. "backtrace": {
  171. "type": "integer",
  172. "minimum": 0,
  173. "description": "Index into the backtraceGraph nodes array, if a backtrace is available"
  174. }
  175. },
  176. "additionalProperties": false
  177. }
  178. }
  179. },
  180. "additionalProperties": false
  181. },
  182. "launchersV2_7": {
  183. "type": "array",
  184. "items": {
  185. "type": "object",
  186. "required": [
  187. "command",
  188. "type"
  189. ],
  190. "properties": {
  191. "command": {
  192. "type": "string",
  193. "description": "Path to the launcher on disk. If the file is inside the top-level source directory, the path is specified relative to that directory."
  194. },
  195. "arguments": {
  196. "type": "array",
  197. "items": {
  198. "type": "string"
  199. },
  200. "description": "Arguments preceding the executable"
  201. },
  202. "type": {
  203. "type": "string",
  204. "enum": [
  205. "emulator",
  206. "test"
  207. ],
  208. "description": "Type of launcher"
  209. }
  210. },
  211. "additionalProperties": false
  212. }
  213. },
  214. "link": {
  215. "type": "object",
  216. "description": "This is only present for executables and shared library targets that link into a runtime binary",
  217. "required": [
  218. "language"
  219. ],
  220. "properties": {
  221. "language": {
  222. "type": "string",
  223. "description": "Language of the toolchain used to invoke the linker"
  224. },
  225. "commandFragments": {
  226. "type": "array",
  227. "description": "Ordered fragments of the link command line, if available",
  228. "items": {
  229. "type": "object",
  230. "required": [
  231. "fragment",
  232. "role"
  233. ],
  234. "properties": {
  235. "fragment": {
  236. "type": "string",
  237. "description": "Fragment of link command line"
  238. },
  239. "role": {
  240. "type": "string",
  241. "enum": [
  242. "flags",
  243. "libraries",
  244. "libraryPath",
  245. "frameworkPath"
  246. ],
  247. "description": "Role of the fragment content"
  248. },
  249. "backtrace": {
  250. "type": "integer",
  251. "minimum": 0,
  252. "description": "Index into backtraceGraph nodes array for the command that added the link fragment, if available"
  253. }
  254. },
  255. "additionalProperties": false
  256. }
  257. },
  258. "lto": {
  259. "type": "boolean",
  260. "description": "True if link-time optimization is enabled"
  261. },
  262. "sysroot": {
  263. "type": "object",
  264. "description": "Only present when the CMAKE_SYSROOT_LINK or CMAKE_SYSROOT variable is defined",
  265. "required": [
  266. "path"
  267. ],
  268. "properties": {
  269. "path": {
  270. "type": "string",
  271. "description": "Absolute path to the sysroot"
  272. }
  273. },
  274. "additionalProperties": false
  275. }
  276. },
  277. "additionalProperties": false
  278. },
  279. "archive": {
  280. "type": "object",
  281. "description": "Only present for static library targets",
  282. "properties": {
  283. "commandFragments": {
  284. "type": "array",
  285. "description": "Ordered fragments of the archiver command line, if available",
  286. "items": {
  287. "type": "object",
  288. "required": [
  289. "fragment",
  290. "role"
  291. ],
  292. "properties": {
  293. "fragment": {
  294. "type": "string",
  295. "description": "Fragment of the archiver command line"
  296. },
  297. "role": {
  298. "type": "string",
  299. "enum": [
  300. "flags"
  301. ],
  302. "description": "Role of the fragment content"
  303. }
  304. },
  305. "additionalProperties": false
  306. }
  307. },
  308. "lto": {
  309. "type": "boolean",
  310. "description": "True if link-time optimization is enabled"
  311. }
  312. },
  313. "additionalProperties": false
  314. },
  315. "debuggerV2_8": {
  316. "type": "object",
  317. "properties": {
  318. "workingDirectory": {
  319. "type": "string",
  320. "description": "Working directory for a debugger"
  321. }
  322. },
  323. "additionalProperties": false
  324. },
  325. "dependencies": {
  326. "type": "array",
  327. "items": {
  328. "type": "object",
  329. "required": [
  330. "id"
  331. ],
  332. "properties": {
  333. "id": {
  334. "type": "string",
  335. "description": "Unique identifier of another target on which this one depends"
  336. },
  337. "backtrace": {
  338. "type": "integer",
  339. "minimum": 0,
  340. "description": "Index into backtraceGraph nodes array of the command that created the dependency, if available"
  341. }
  342. },
  343. "additionalProperties": false
  344. }
  345. },
  346. "fileSetsV2_5": {
  347. "type": "array",
  348. "items": {
  349. "type": "object",
  350. "required": [
  351. "name",
  352. "type",
  353. "visibility",
  354. "baseDirectories"
  355. ],
  356. "properties": {
  357. "name": {
  358. "type": "string"
  359. },
  360. "type": {
  361. "type": "string",
  362. "enum": [
  363. "HEADERS",
  364. "CXX_MODULES"
  365. ]
  366. },
  367. "visibility": {
  368. "type": "string",
  369. "enum": [
  370. "PUBLIC",
  371. "PRIVATE",
  372. "INTERFACE"
  373. ]
  374. },
  375. "baseDirectories": {
  376. "type": "array",
  377. "minItems": 1,
  378. "items": {
  379. "type": "string"
  380. },
  381. "description": "Base directories containing the file set's files. If a directory is inside the top level source directory, its path is specified relative to that directory. Otherwise, its path is absolute."
  382. }
  383. },
  384. "additionalProperties": false
  385. }
  386. },
  387. "sourcesPath": {
  388. "type": "string",
  389. "description": "Path to the source file. If the file is inside the top level source directory, the path is specified relative to that directory. Otherwise, the path is absolute."
  390. },
  391. "sourcesCompileGroupIndex": {
  392. "type": "integer",
  393. "minimum": 0,
  394. "description": "Index into the compileGroups array. Only present if the file is compiled."
  395. },
  396. "sourcesSourceGroupIndex": {
  397. "type": "integer",
  398. "minimum": 0,
  399. "description": "Index into the sourceGroups array. Only present if the file is part of a source group."
  400. },
  401. "sourcesIsGenerated": {
  402. "type": "boolean",
  403. "description": "True if the file has its GENERATED property set to true"
  404. },
  405. "sourcesFileSetIndexV2_5": {
  406. "type": "integer",
  407. "minimum": 0,
  408. "description": "Index into the fileSets array. Only present if the file is part of a file set."
  409. },
  410. "sourcesV2_0": {
  411. "type": "array",
  412. "items": {
  413. "type": "object",
  414. "required": [
  415. "path"
  416. ],
  417. "properties": {
  418. "path": {
  419. "$ref": "#/definitions/sourcesPath"
  420. },
  421. "compileGroupIndex": {
  422. "$ref": "#/definitions/sourcesCompileGroupIndex"
  423. },
  424. "sourceGroupIndex": {
  425. "$ref": "#/definitions/sourcesSourceGroupIndex"
  426. },
  427. "isGenerated": {
  428. "$ref": "#/definitions/sourcesIsGenerated"
  429. },
  430. "backtrace": {
  431. "$ref": "#/definitions/backtrace"
  432. }
  433. },
  434. "additionalProperties": false
  435. }
  436. },
  437. "sourcesV2_5": {
  438. "type": "array",
  439. "items": {
  440. "type": "object",
  441. "required": [
  442. "path"
  443. ],
  444. "properties": {
  445. "path": {
  446. "$ref": "#/definitions/sourcesPath"
  447. },
  448. "compileGroupIndex": {
  449. "$ref": "#/definitions/sourcesCompileGroupIndex"
  450. },
  451. "sourceGroupIndex": {
  452. "$ref": "#/definitions/sourcesSourceGroupIndex"
  453. },
  454. "isGenerated": {
  455. "$ref": "#/definitions/sourcesIsGenerated"
  456. },
  457. "backtrace": {
  458. "$ref": "#/definitions/backtrace"
  459. },
  460. "fileSetIndex": {
  461. "$ref": "#/definitions/sourcesFileSetIndexV2_5"
  462. }
  463. },
  464. "additionalProperties": false
  465. }
  466. },
  467. "sourceGroups": {
  468. "type": "array",
  469. "items": {
  470. "type": "object",
  471. "required": [
  472. "name",
  473. "sourceIndexes"
  474. ],
  475. "properties": {
  476. "name": {
  477. "type": "string",
  478. "description": "Name of source group"
  479. },
  480. "sourceIndexes": {
  481. "type": "array",
  482. "items": {
  483. "type": "integer",
  484. "minimum": 0
  485. },
  486. "description": "Indices into sources array"
  487. }
  488. },
  489. "additionalProperties": false
  490. }
  491. },
  492. "compileGroupsSourceIndexes": {
  493. "type": "array",
  494. "items": {
  495. "type": "integer",
  496. "minimum": 0
  497. },
  498. "description": "Indices into the sources array for sources belonging to the group"
  499. },
  500. "compileGroupsLanguage": {
  501. "type": "string",
  502. "description": "Language used to compile sources in the group"
  503. },
  504. "compileGroupsLanguageStandardV2_2": {
  505. "type": "object",
  506. "required": [
  507. "backtraces",
  508. "standard"
  509. ],
  510. "properties": {
  511. "backtraces": {
  512. "type": "array",
  513. "items": {
  514. "type": "integer",
  515. "minimum": 0
  516. },
  517. "description": "Indices into the backtraceGraph nodes array"
  518. },
  519. "standard": {
  520. "type": "string",
  521. "description": "Language standard"
  522. }
  523. },
  524. "additionalProperties": false
  525. },
  526. "compileGroupsCompileCommandFragments": {
  527. "type": "array",
  528. "items": {
  529. "type": "object",
  530. "required": [
  531. "fragment"
  532. ],
  533. "properties": {
  534. "fragment": {
  535. "type": "string",
  536. "description": "Fragment of the compile command line"
  537. },
  538. "backtrace": {
  539. "type": "integer",
  540. "minimum": 0,
  541. "description": "Index into the backtraceGraph nodes array"
  542. }
  543. },
  544. "additionalProperties": false
  545. }
  546. },
  547. "compileGroupsIncludes": {
  548. "type": "array",
  549. "items": {
  550. "type": "object",
  551. "required": [
  552. "path"
  553. ],
  554. "properties": {
  555. "path": {
  556. "type": "string",
  557. "description": "Include directory path"
  558. },
  559. "isSystem": {
  560. "type": "boolean",
  561. "description": "True if the path is a system include directory"
  562. },
  563. "backtrace": {
  564. "type": "integer",
  565. "minimum": 0,
  566. "description": "Index into the backtraceGraph nodes array"
  567. }
  568. },
  569. "additionalProperties": false
  570. }
  571. },
  572. "compileGroupsFrameworksV2_6": {
  573. "type": "array",
  574. "items": {
  575. "type": "object",
  576. "required": [
  577. "path"
  578. ],
  579. "properties": {
  580. "path": {
  581. "type": "string",
  582. "description": "Framework directory path"
  583. },
  584. "isSystem": {
  585. "type": "boolean",
  586. "description": "True if the path is to a system framework directory"
  587. },
  588. "backtrace": {
  589. "type": "integer",
  590. "minimum": 0,
  591. "description": "Index into the backtraceGraph nodes array"
  592. }
  593. },
  594. "additionalProperties": false
  595. }
  596. },
  597. "compileGroupsPrecompileHeadersV2_1": {
  598. "type": "array",
  599. "items": {
  600. "type": "object",
  601. "required": [
  602. "header"
  603. ],
  604. "properties": {
  605. "header": {
  606. "type": "string",
  607. "description": "Path to the precompile header file"
  608. },
  609. "backtrace": {
  610. "type": "integer",
  611. "minimum": 0,
  612. "description": "Index into the backtraceGraph nodes array"
  613. }
  614. },
  615. "additionalProperties": false
  616. }
  617. },
  618. "compileGroupsDefines": {
  619. "type": "array",
  620. "items": {
  621. "type": "object",
  622. "required": [
  623. "define"
  624. ],
  625. "properties": {
  626. "define": {
  627. "type": "string",
  628. "description": "Preprocessor definition in name or name=value format"
  629. },
  630. "backtrace": {
  631. "type": "integer",
  632. "minimum": 0,
  633. "description": "Index into the backtraceGraph nodes array"
  634. }
  635. },
  636. "additionalProperties": false
  637. }
  638. },
  639. "compileGroupsSysroot": {
  640. "type": "object",
  641. "required": [
  642. "path"
  643. ],
  644. "properties": {
  645. "path": {
  646. "type": "string",
  647. "description": "Absolute path to the sysroot"
  648. }
  649. },
  650. "additionalProperties": false
  651. },
  652. "compileGroupsV2_0": {
  653. "type": "array",
  654. "items": {
  655. "type": "object",
  656. "required": [
  657. "sourceIndexes",
  658. "language"
  659. ],
  660. "properties": {
  661. "sourceIndexes": {
  662. "$ref": "#/definitions/compileGroupsSourceIndexes"
  663. },
  664. "language": {
  665. "$ref": "#/definitions/compileGroupsLanguage"
  666. },
  667. "compileCommandFragments": {
  668. "$ref": "#/definitions/compileGroupsCompileCommandFragments"
  669. },
  670. "includes": {
  671. "$ref": "#/definitions/compileGroupsIncludes"
  672. },
  673. "defines": {
  674. "$ref": "#/definitions/compileGroupsDefines"
  675. },
  676. "sysroot": {
  677. "$ref": "#/definitions/compileGroupsSysroot"
  678. }
  679. },
  680. "additionalProperties": false
  681. }
  682. },
  683. "compileGroupsV2_1": {
  684. "type": "array",
  685. "items": {
  686. "type": "object",
  687. "required": [
  688. "sourceIndexes",
  689. "language"
  690. ],
  691. "properties": {
  692. "sourceIndexes": {
  693. "$ref": "#/definitions/compileGroupsSourceIndexes"
  694. },
  695. "language": {
  696. "$ref": "#/definitions/compileGroupsLanguage"
  697. },
  698. "compileCommandFragments": {
  699. "$ref": "#/definitions/compileGroupsCompileCommandFragments"
  700. },
  701. "includes": {
  702. "$ref": "#/definitions/compileGroupsIncludes"
  703. },
  704. "precompileHeaders": {
  705. "$ref": "#/definitions/compileGroupsPrecompileHeadersV2_1"
  706. },
  707. "defines": {
  708. "$ref": "#/definitions/compileGroupsDefines"
  709. },
  710. "sysroot": {
  711. "$ref": "#/definitions/compileGroupsSysroot"
  712. }
  713. },
  714. "additionalProperties": false
  715. }
  716. },
  717. "compileGroupsV2_2": {
  718. "type": "array",
  719. "items": {
  720. "type": "object",
  721. "required": [
  722. "sourceIndexes",
  723. "language"
  724. ],
  725. "properties": {
  726. "sourceIndexes": {
  727. "$ref": "#/definitions/compileGroupsSourceIndexes"
  728. },
  729. "language": {
  730. "$ref": "#/definitions/compileGroupsLanguage"
  731. },
  732. "languageStandard": {
  733. "$ref": "#/definitions/compileGroupsLanguageStandardV2_2"
  734. },
  735. "compileCommandFragments": {
  736. "$ref": "#/definitions/compileGroupsCompileCommandFragments"
  737. },
  738. "includes": {
  739. "$ref": "#/definitions/compileGroupsIncludes"
  740. },
  741. "precompileHeaders": {
  742. "$ref": "#/definitions/compileGroupsPrecompileHeadersV2_1"
  743. },
  744. "defines": {
  745. "$ref": "#/definitions/compileGroupsDefines"
  746. },
  747. "sysroot": {
  748. "$ref": "#/definitions/compileGroupsSysroot"
  749. }
  750. },
  751. "additionalProperties": false
  752. }
  753. },
  754. "compileGroupsV2_6": {
  755. "type": "array",
  756. "items": {
  757. "type": "object",
  758. "required": [
  759. "sourceIndexes",
  760. "language"
  761. ],
  762. "properties": {
  763. "sourceIndexes": {
  764. "$ref": "#/definitions/compileGroupsSourceIndexes"
  765. },
  766. "language": {
  767. "$ref": "#/definitions/compileGroupsLanguage"
  768. },
  769. "languageStandard": {
  770. "$ref": "#/definitions/compileGroupsLanguageStandardV2_2"
  771. },
  772. "compileCommandFragments": {
  773. "$ref": "#/definitions/compileGroupsCompileCommandFragments"
  774. },
  775. "includes": {
  776. "$ref": "#/definitions/compileGroupsIncludes"
  777. },
  778. "frameworks": {
  779. "$ref": "#/definitions/compileGroupsFrameworksV2_6"
  780. },
  781. "precompileHeaders": {
  782. "$ref": "#/definitions/compileGroupsPrecompileHeadersV2_1"
  783. },
  784. "defines": {
  785. "$ref": "#/definitions/compileGroupsDefines"
  786. },
  787. "sysroot": {
  788. "$ref": "#/definitions/compileGroupsSysroot"
  789. }
  790. },
  791. "additionalProperties": false
  792. }
  793. },
  794. "backtraceGraph": {
  795. "type": "object",
  796. "required": [
  797. "nodes",
  798. "commands",
  799. "files"
  800. ],
  801. "properties": {
  802. "nodes": {
  803. "type": "array",
  804. "items": {
  805. "type": "object",
  806. "required": [
  807. "file"
  808. ],
  809. "properties": {
  810. "file": {
  811. "type": "integer",
  812. "minimum": 0,
  813. "description": "0-based index into the backtrace files array"
  814. },
  815. "line": {
  816. "type": "integer",
  817. "minimum": 1,
  818. "description": "This is present when the node represents a line within the file. The line number is a 1-based value."
  819. },
  820. "command": {
  821. "type": "integer",
  822. "minimum": 0,
  823. "description": "This is present when the node represents a command invocation. It is a 0-based index into the backtrace commands array."
  824. },
  825. "parent": {
  826. "type": "integer",
  827. "minimum": 0,
  828. "description": "This is present when the node is not the bottom of the call stack. It is a 0-based index of another node in the backtrace nodes array."
  829. }
  830. },
  831. "additionalProperties": false
  832. }
  833. },
  834. "commands": {
  835. "type": "array",
  836. "description": "Each list item is a string specifying a command name",
  837. "items": {
  838. "type": "string"
  839. }
  840. },
  841. "files": {
  842. "type": "array",
  843. "description": "Each list item is a string specifying the path to a file, represented with forward slashes. If the file is inside the top level source directory, the path is specified relative to that directory. Otherwise, the path is absolute.",
  844. "items": {
  845. "type": "string"
  846. }
  847. }
  848. },
  849. "additionalProperties": false
  850. },
  851. "codemodelV2_0": {
  852. "required": [
  853. "name",
  854. "id",
  855. "type",
  856. "paths",
  857. "sources",
  858. "backtraceGraph"
  859. ],
  860. "properties": {
  861. "name": {
  862. "$ref": "#/definitions/name"
  863. },
  864. "id": {
  865. "$ref": "#/definitions/id"
  866. },
  867. "type": {
  868. "$ref": "#/definitions/type"
  869. },
  870. "backtrace": {
  871. "$ref": "#/definitions/backtrace"
  872. },
  873. "folder": {
  874. "$ref": "#/definitions/folder"
  875. },
  876. "paths": {
  877. "$ref": "#/definitions/paths"
  878. },
  879. "nameOnDisk": {
  880. "$ref": "#/definitions/nameOnDisk"
  881. },
  882. "artifacts": {
  883. "$ref": "#/definitions/artifacts"
  884. },
  885. "isGeneratorProvided": {
  886. "$ref": "#/definitions/isGeneratorProvided"
  887. },
  888. "install": {
  889. "$ref": "#/definitions/install"
  890. },
  891. "link": {
  892. "$ref": "#/definitions/link"
  893. },
  894. "archive": {
  895. "$ref": "#/definitions/archive"
  896. },
  897. "dependencies": {
  898. "$ref": "#/definitions/dependencies"
  899. },
  900. "sources": {
  901. "$ref": "#/definitions/sourcesV2_0"
  902. },
  903. "sourceGroups": {
  904. "$ref": "#/definitions/sourceGroups"
  905. },
  906. "compileGroups": {
  907. "$ref": "#/definitions/compileGroupsV2_0"
  908. },
  909. "backtraceGraph": {
  910. "$ref": "#/definitions/backtraceGraph"
  911. }
  912. },
  913. "additionalProperties": false
  914. },
  915. "codemodelV2_1": {
  916. "required": [
  917. "name",
  918. "id",
  919. "type",
  920. "paths",
  921. "sources",
  922. "backtraceGraph"
  923. ],
  924. "properties": {
  925. "name": {
  926. "$ref": "#/definitions/name"
  927. },
  928. "id": {
  929. "$ref": "#/definitions/id"
  930. },
  931. "type": {
  932. "$ref": "#/definitions/type"
  933. },
  934. "backtrace": {
  935. "$ref": "#/definitions/backtrace"
  936. },
  937. "folder": {
  938. "$ref": "#/definitions/folder"
  939. },
  940. "paths": {
  941. "$ref": "#/definitions/paths"
  942. },
  943. "nameOnDisk": {
  944. "$ref": "#/definitions/nameOnDisk"
  945. },
  946. "artifacts": {
  947. "$ref": "#/definitions/artifacts"
  948. },
  949. "isGeneratorProvided": {
  950. "$ref": "#/definitions/isGeneratorProvided"
  951. },
  952. "install": {
  953. "$ref": "#/definitions/install"
  954. },
  955. "link": {
  956. "$ref": "#/definitions/link"
  957. },
  958. "archive": {
  959. "$ref": "#/definitions/archive"
  960. },
  961. "dependencies": {
  962. "$ref": "#/definitions/dependencies"
  963. },
  964. "sources": {
  965. "$ref": "#/definitions/sourcesV2_0"
  966. },
  967. "sourceGroups": {
  968. "$ref": "#/definitions/sourceGroups"
  969. },
  970. "compileGroups": {
  971. "$ref": "#/definitions/compileGroupsV2_1"
  972. },
  973. "backtraceGraph": {
  974. "$ref": "#/definitions/backtraceGraph"
  975. }
  976. },
  977. "additionalProperties": false
  978. },
  979. "codemodelV2_2": {
  980. "required": [
  981. "name",
  982. "id",
  983. "type",
  984. "paths",
  985. "sources",
  986. "backtraceGraph"
  987. ],
  988. "properties": {
  989. "name": {
  990. "$ref": "#/definitions/name"
  991. },
  992. "id": {
  993. "$ref": "#/definitions/id"
  994. },
  995. "type": {
  996. "$ref": "#/definitions/type"
  997. },
  998. "backtrace": {
  999. "$ref": "#/definitions/backtrace"
  1000. },
  1001. "folder": {
  1002. "$ref": "#/definitions/folder"
  1003. },
  1004. "paths": {
  1005. "$ref": "#/definitions/paths"
  1006. },
  1007. "nameOnDisk": {
  1008. "$ref": "#/definitions/nameOnDisk"
  1009. },
  1010. "artifacts": {
  1011. "$ref": "#/definitions/artifacts"
  1012. },
  1013. "isGeneratorProvided": {
  1014. "$ref": "#/definitions/isGeneratorProvided"
  1015. },
  1016. "install": {
  1017. "$ref": "#/definitions/install"
  1018. },
  1019. "link": {
  1020. "$ref": "#/definitions/link"
  1021. },
  1022. "archive": {
  1023. "$ref": "#/definitions/archive"
  1024. },
  1025. "dependencies": {
  1026. "$ref": "#/definitions/dependencies"
  1027. },
  1028. "sources": {
  1029. "$ref": "#/definitions/sourcesV2_0"
  1030. },
  1031. "sourceGroups": {
  1032. "$ref": "#/definitions/sourceGroups"
  1033. },
  1034. "compileGroups": {
  1035. "$ref": "#/definitions/compileGroupsV2_2"
  1036. },
  1037. "backtraceGraph": {
  1038. "$ref": "#/definitions/backtraceGraph"
  1039. }
  1040. },
  1041. "additionalProperties": false
  1042. },
  1043. "codemodelV2_5": {
  1044. "required": [
  1045. "name",
  1046. "id",
  1047. "type",
  1048. "paths",
  1049. "sources",
  1050. "backtraceGraph"
  1051. ],
  1052. "properties": {
  1053. "name": {
  1054. "$ref": "#/definitions/name"
  1055. },
  1056. "id": {
  1057. "$ref": "#/definitions/id"
  1058. },
  1059. "type": {
  1060. "$ref": "#/definitions/type"
  1061. },
  1062. "backtrace": {
  1063. "$ref": "#/definitions/backtrace"
  1064. },
  1065. "folder": {
  1066. "$ref": "#/definitions/folder"
  1067. },
  1068. "paths": {
  1069. "$ref": "#/definitions/paths"
  1070. },
  1071. "nameOnDisk": {
  1072. "$ref": "#/definitions/nameOnDisk"
  1073. },
  1074. "artifacts": {
  1075. "$ref": "#/definitions/artifacts"
  1076. },
  1077. "isGeneratorProvided": {
  1078. "$ref": "#/definitions/isGeneratorProvided"
  1079. },
  1080. "install": {
  1081. "$ref": "#/definitions/install"
  1082. },
  1083. "link": {
  1084. "$ref": "#/definitions/link"
  1085. },
  1086. "archive": {
  1087. "$ref": "#/definitions/archive"
  1088. },
  1089. "dependencies": {
  1090. "$ref": "#/definitions/dependencies"
  1091. },
  1092. "fileSets": {
  1093. "$ref": "#/definitions/fileSetsV2_5"
  1094. },
  1095. "sources": {
  1096. "$ref": "#/definitions/sourcesV2_5"
  1097. },
  1098. "sourceGroups": {
  1099. "$ref": "#/definitions/sourceGroups"
  1100. },
  1101. "compileGroups": {
  1102. "$ref": "#/definitions/compileGroupsV2_2"
  1103. },
  1104. "backtraceGraph": {
  1105. "$ref": "#/definitions/backtraceGraph"
  1106. }
  1107. },
  1108. "additionalProperties": false
  1109. },
  1110. "codemodelV2_6": {
  1111. "required": [
  1112. "name",
  1113. "id",
  1114. "type",
  1115. "paths",
  1116. "sources",
  1117. "backtraceGraph"
  1118. ],
  1119. "properties": {
  1120. "name": {
  1121. "$ref": "#/definitions/name"
  1122. },
  1123. "id": {
  1124. "$ref": "#/definitions/id"
  1125. },
  1126. "type": {
  1127. "$ref": "#/definitions/type"
  1128. },
  1129. "backtrace": {
  1130. "$ref": "#/definitions/backtrace"
  1131. },
  1132. "folder": {
  1133. "$ref": "#/definitions/folder"
  1134. },
  1135. "paths": {
  1136. "$ref": "#/definitions/paths"
  1137. },
  1138. "nameOnDisk": {
  1139. "$ref": "#/definitions/nameOnDisk"
  1140. },
  1141. "artifacts": {
  1142. "$ref": "#/definitions/artifacts"
  1143. },
  1144. "isGeneratorProvided": {
  1145. "$ref": "#/definitions/isGeneratorProvided"
  1146. },
  1147. "install": {
  1148. "$ref": "#/definitions/install"
  1149. },
  1150. "link": {
  1151. "$ref": "#/definitions/link"
  1152. },
  1153. "archive": {
  1154. "$ref": "#/definitions/archive"
  1155. },
  1156. "dependencies": {
  1157. "$ref": "#/definitions/dependencies"
  1158. },
  1159. "fileSets": {
  1160. "$ref": "#/definitions/fileSetsV2_5"
  1161. },
  1162. "sources": {
  1163. "$ref": "#/definitions/sourcesV2_5"
  1164. },
  1165. "sourceGroups": {
  1166. "$ref": "#/definitions/sourceGroups"
  1167. },
  1168. "compileGroups": {
  1169. "$ref": "#/definitions/compileGroupsV2_6"
  1170. },
  1171. "backtraceGraph": {
  1172. "$ref": "#/definitions/backtraceGraph"
  1173. }
  1174. },
  1175. "additionalProperties": false
  1176. },
  1177. "codemodelV2_7": {
  1178. "required": [
  1179. "name",
  1180. "id",
  1181. "type",
  1182. "paths",
  1183. "sources",
  1184. "backtraceGraph"
  1185. ],
  1186. "properties": {
  1187. "name": {
  1188. "$ref": "#/definitions/name"
  1189. },
  1190. "id": {
  1191. "$ref": "#/definitions/id"
  1192. },
  1193. "type": {
  1194. "$ref": "#/definitions/type"
  1195. },
  1196. "backtrace": {
  1197. "$ref": "#/definitions/backtrace"
  1198. },
  1199. "folder": {
  1200. "$ref": "#/definitions/folder"
  1201. },
  1202. "paths": {
  1203. "$ref": "#/definitions/paths"
  1204. },
  1205. "nameOnDisk": {
  1206. "$ref": "#/definitions/nameOnDisk"
  1207. },
  1208. "artifacts": {
  1209. "$ref": "#/definitions/artifacts"
  1210. },
  1211. "isGeneratorProvided": {
  1212. "$ref": "#/definitions/isGeneratorProvided"
  1213. },
  1214. "install": {
  1215. "$ref": "#/definitions/install"
  1216. },
  1217. "launchers": {
  1218. "$ref": "#/definitions/launchersV2_7"
  1219. },
  1220. "link": {
  1221. "$ref": "#/definitions/link"
  1222. },
  1223. "archive": {
  1224. "$ref": "#/definitions/archive"
  1225. },
  1226. "dependencies": {
  1227. "$ref": "#/definitions/dependencies"
  1228. },
  1229. "fileSets": {
  1230. "$ref": "#/definitions/fileSetsV2_5"
  1231. },
  1232. "sources": {
  1233. "$ref": "#/definitions/sourcesV2_5"
  1234. },
  1235. "sourceGroups": {
  1236. "$ref": "#/definitions/sourceGroups"
  1237. },
  1238. "compileGroups": {
  1239. "$ref": "#/definitions/compileGroupsV2_6"
  1240. },
  1241. "backtraceGraph": {
  1242. "$ref": "#/definitions/backtraceGraph"
  1243. }
  1244. },
  1245. "additionalProperties": false
  1246. },
  1247. "codemodelV2_8": {
  1248. "required": [
  1249. "name",
  1250. "id",
  1251. "type",
  1252. "paths",
  1253. "sources",
  1254. "backtraceGraph"
  1255. ],
  1256. "properties": {
  1257. "name": {
  1258. "$ref": "#/definitions/name"
  1259. },
  1260. "id": {
  1261. "$ref": "#/definitions/id"
  1262. },
  1263. "type": {
  1264. "$ref": "#/definitions/type"
  1265. },
  1266. "backtrace": {
  1267. "$ref": "#/definitions/backtrace"
  1268. },
  1269. "folder": {
  1270. "$ref": "#/definitions/folder"
  1271. },
  1272. "paths": {
  1273. "$ref": "#/definitions/paths"
  1274. },
  1275. "nameOnDisk": {
  1276. "$ref": "#/definitions/nameOnDisk"
  1277. },
  1278. "artifacts": {
  1279. "$ref": "#/definitions/artifacts"
  1280. },
  1281. "isGeneratorProvided": {
  1282. "$ref": "#/definitions/isGeneratorProvided"
  1283. },
  1284. "install": {
  1285. "$ref": "#/definitions/install"
  1286. },
  1287. "launchers": {
  1288. "$ref": "#/definitions/launchersV2_7"
  1289. },
  1290. "link": {
  1291. "$ref": "#/definitions/link"
  1292. },
  1293. "archive": {
  1294. "$ref": "#/definitions/archive"
  1295. },
  1296. "debugger": {
  1297. "$ref": "#/definitions/debuggerV2_8"
  1298. },
  1299. "dependencies": {
  1300. "$ref": "#/definitions/dependencies"
  1301. },
  1302. "fileSets": {
  1303. "$ref": "#/definitions/fileSetsV2_5"
  1304. },
  1305. "sources": {
  1306. "$ref": "#/definitions/sourcesV2_5"
  1307. },
  1308. "sourceGroups": {
  1309. "$ref": "#/definitions/sourceGroups"
  1310. },
  1311. "compileGroups": {
  1312. "$ref": "#/definitions/compileGroupsV2_6"
  1313. },
  1314. "backtraceGraph": {
  1315. "$ref": "#/definitions/backtraceGraph"
  1316. }
  1317. },
  1318. "additionalProperties": false
  1319. },
  1320. "codemodelV2_9": {
  1321. "required": [
  1322. "codemodelVersion",
  1323. "name",
  1324. "id",
  1325. "type",
  1326. "paths",
  1327. "sources",
  1328. "backtraceGraph"
  1329. ],
  1330. "properties": {
  1331. "codemodelVersion": {
  1332. "$ref": "#/definitions/codemodelVersionV2_9"
  1333. },
  1334. "name": {
  1335. "$ref": "#/definitions/name"
  1336. },
  1337. "id": {
  1338. "$ref": "#/definitions/id"
  1339. },
  1340. "type": {
  1341. "$ref": "#/definitions/type"
  1342. },
  1343. "backtrace": {
  1344. "$ref": "#/definitions/backtrace"
  1345. },
  1346. "folder": {
  1347. "$ref": "#/definitions/folder"
  1348. },
  1349. "paths": {
  1350. "$ref": "#/definitions/paths"
  1351. },
  1352. "nameOnDisk": {
  1353. "$ref": "#/definitions/nameOnDisk"
  1354. },
  1355. "artifacts": {
  1356. "$ref": "#/definitions/artifacts"
  1357. },
  1358. "isGeneratorProvided": {
  1359. "$ref": "#/definitions/isGeneratorProvided"
  1360. },
  1361. "install": {
  1362. "$ref": "#/definitions/install"
  1363. },
  1364. "launchers": {
  1365. "$ref": "#/definitions/launchersV2_7"
  1366. },
  1367. "link": {
  1368. "$ref": "#/definitions/link"
  1369. },
  1370. "archive": {
  1371. "$ref": "#/definitions/archive"
  1372. },
  1373. "debugger": {
  1374. "$ref": "#/definitions/debuggerV2_8"
  1375. },
  1376. "dependencies": {
  1377. "$ref": "#/definitions/dependencies"
  1378. },
  1379. "fileSets": {
  1380. "$ref": "#/definitions/fileSetsV2_5"
  1381. },
  1382. "sources": {
  1383. "$ref": "#/definitions/sourcesV2_5"
  1384. },
  1385. "sourceGroups": {
  1386. "$ref": "#/definitions/sourceGroups"
  1387. },
  1388. "compileGroups": {
  1389. "$ref": "#/definitions/compileGroupsV2_6"
  1390. },
  1391. "backtraceGraph": {
  1392. "$ref": "#/definitions/backtraceGraph"
  1393. }
  1394. },
  1395. "additionalProperties": false
  1396. }
  1397. }
  1398. }