CMakePresets.json 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. {
  2. "version": 4,
  3. "cmakeMinimumRequired": {
  4. "major": 3,
  5. "minor": 23,
  6. "patch": 0
  7. },
  8. "include": [
  9. "../Common/CMakePresets.json"
  10. ],
  11. "configurePresets": [
  12. {
  13. "name": "linux-default",
  14. "displayName": "Linux",
  15. "description": "Linux default configuration",
  16. "binaryDir": "${sourceDir}/build/linux",
  17. "inherits": [
  18. "linux-ninja",
  19. "linux-unity",
  20. "linux-non-monolithic"
  21. ]
  22. },
  23. {
  24. "name": "linux-mono-default",
  25. "displayName": "Linux Monolithic with Unity and Ninja",
  26. "description": "Configures Linux to build the Monolithic permutation using Ninja with Unity builds",
  27. "binaryDir": "${sourceDir}/build/linux_mono",
  28. "inherits": [
  29. "linux-ninja",
  30. "linux-unity",
  31. "linux-monolithic"
  32. ]
  33. },
  34. {
  35. "name": "linux-clang-default",
  36. "displayName": "Linux Clang with Ninja and unity",
  37. "description": "Configure Linux using the Ninja generator and clang compiler in non-monolithic",
  38. "binaryDir": "${sourceDir}/build/linux_ninja_clang",
  39. "inherits": [
  40. "linux-ninja",
  41. "linux-clang",
  42. "linux-non-monolithic"
  43. ]
  44. },
  45. {
  46. "name": "linux-gcc-default",
  47. "displayName": "Linux GCC with Ninja and unity",
  48. "description": "Configure Linux using the Ninja generator and gcc compiler in non-monolithic",
  49. "binaryDir": "${sourceDir}/build/linux_ninja_gcc",
  50. "inherits": [
  51. "linux-ninja",
  52. "linux-gcc",
  53. "linux-non-monolithic"
  54. ]
  55. },
  56. {
  57. "name": "linux-unity",
  58. "displayName": "Linux Unity",
  59. "description": "Linux build which uses unity files",
  60. "binaryDir": "${sourceDir}/build/linux_unity",
  61. "inherits": [
  62. "unity",
  63. "host-linux"
  64. ]
  65. },
  66. {
  67. "name": "linux-no-unity",
  68. "displayName": "Linux without Unity",
  69. "description": "Linux build which uses unity files",
  70. "binaryDir": "${sourceDir}/build/linux_no_unity",
  71. "inherits": [
  72. "no-unity",
  73. "host-linux"
  74. ]
  75. },
  76. {
  77. "name": "linux-non-monolithic",
  78. "displayName": "Linux Non-monolithic",
  79. "description": "Default configuration for non-monolithic builds",
  80. "binaryDir": "${sourceDir}/build/linux_non_mono",
  81. "inherits": [
  82. "non-monolithic",
  83. "host-linux"
  84. ]
  85. },
  86. {
  87. "name": "linux-monolithic",
  88. "displayName": "Linux Monolithic",
  89. "description": "Default configuration for monolithic builds",
  90. "binaryDir": "${sourceDir}/build/linux_mono",
  91. "inherits": [
  92. "monolithic",
  93. "host-linux"
  94. ]
  95. },
  96. {
  97. "name": "linux-ninja",
  98. "displayName": "Linux Ninja",
  99. "description": "Configure Linux using with the Ninja generator",
  100. "binaryDir": "${sourceDir}/build/linux_ninja",
  101. "inherits": [
  102. "ninja-multi-config",
  103. "host-linux"
  104. ]
  105. },
  106. {
  107. "name": "linux-ninja-unity",
  108. "displayName": "Linux Ninja Unity",
  109. "description": "Configure Linux with the Ninja generator + Unity Builds",
  110. "binaryDir": "${sourceDir}/build/linux_ninja_unity",
  111. "inherits": [
  112. "ninja-multi-config",
  113. "linux-unity"
  114. ]
  115. },
  116. {
  117. "name": "linux-ninja-no-unity",
  118. "displayName": "Linux Ninja without Unity",
  119. "description": "Configure Linux with the Ninja Generator without unity builds",
  120. "binaryDir": "${sourceDir}/build/linux_ninja_no_unity",
  121. "inherits": [
  122. "ninja-multi-config",
  123. "linux-no-unity"
  124. ]
  125. },
  126. {
  127. "name": "linux-makefiles",
  128. "displayName": "Linux Unix Makefiles",
  129. "description": "Configure Linux using with the Unix Makefiles generator",
  130. "binaryDir": "${sourceDir}/build/linux_makefiles",
  131. "inherits": [
  132. "makefiles",
  133. "host-linux"
  134. ]
  135. },
  136. {
  137. "name": "linux-makefiles-unity",
  138. "displayName": "Linux Unix Makefiles Unity",
  139. "description": "Configure Linux with the Unix Makefiles generator + Unity Builds",
  140. "binaryDir": "${sourceDir}/build/linux_makefiles_unity",
  141. "inherits": [
  142. "makefiles",
  143. "linux-unity"
  144. ]
  145. },
  146. {
  147. "name": "linux-makefiles-no-unity",
  148. "displayName": "Linux Unix Makefiles without Unity",
  149. "description": "Configure Linux with the Unix Makefiles Generator without unity builds",
  150. "binaryDir": "${sourceDir}/build/linux_makefiles_no_unity",
  151. "inherits": [
  152. "makefiles",
  153. "linux-no-unity"
  154. ]
  155. },
  156. {
  157. "name": "linux-clang",
  158. "displayName": "Linux Clang",
  159. "description": "Default Linux configuration using the clang compiler",
  160. "binaryDir": "${sourceDir}/build/linux_clang",
  161. "inherits":[
  162. "linux-clang-unity"
  163. ]
  164. },
  165. {
  166. "name": "linux-clang-unity",
  167. "displayName": "Linux Clang + Unity",
  168. "description": "Configure Linux with the clang compiler + Unity Builds",
  169. "binaryDir": "${sourceDir}/build/linux_clang_unity",
  170. "cacheVariables": {
  171. "CMAKE_C_COMPILER": {
  172. "type": "STRING",
  173. "value": "clang"
  174. },
  175. "CMAKE_CXX_COMPILER": {
  176. "type": "STRING",
  177. "value": "clang++"
  178. }
  179. },
  180. "inherits": [
  181. "linux-unity"
  182. ]
  183. },
  184. {
  185. "name": "linux-clang-no-unity",
  186. "displayName": "Linux Clang without Unity",
  187. "description": "Configure Linux with the clang compiler without unity builds",
  188. "binaryDir": "${sourceDir}/build/linux_clang_no_unity",
  189. "cacheVariables": {
  190. "CMAKE_C_COMPILER": {
  191. "type": "STRING",
  192. "value": "clang"
  193. },
  194. "CMAKE_CXX_COMPILER": {
  195. "type": "STRING",
  196. "value": "clang++"
  197. }
  198. },
  199. "inherits": [
  200. "linux-no-unity"
  201. ]
  202. },
  203. {
  204. "name": "linux-gcc",
  205. "displayName": "Linux GCC",
  206. "description": "Default Linux configuration using the gcc compiler",
  207. "binaryDir": "${sourceDir}/build/linux_gcc",
  208. "inherits":[
  209. "linux-gcc-unity"
  210. ]
  211. },
  212. {
  213. "name": "linux-gcc-unity",
  214. "displayName": "Linux GCC + Unity",
  215. "description": "Configure Linux with the GCC compiler + Unity Builds",
  216. "binaryDir": "${sourceDir}/build/linux_gcc_unity",
  217. "cacheVariables": {
  218. "CMAKE_C_COMPILER": {
  219. "type": "STRING",
  220. "value": "gcc"
  221. },
  222. "CMAKE_CXX_COMPILER": {
  223. "type": "STRING",
  224. "value": "g++"
  225. }
  226. },
  227. "inherits": [
  228. "linux-unity"
  229. ]
  230. },
  231. {
  232. "name": "linux-gcc-no-unity",
  233. "displayName": "Linux GCC without Unity",
  234. "description": "Configure Linux with the GCC compiler without unity builds",
  235. "binaryDir": "${sourceDir}/build/linux_gcc_no_unity",
  236. "cacheVariables": {
  237. "CMAKE_C_COMPILER": {
  238. "type": "STRING",
  239. "value": "gcc"
  240. },
  241. "CMAKE_CXX_COMPILER": {
  242. "type": "STRING",
  243. "value": "g++"
  244. }
  245. },
  246. "inherits": [
  247. "linux-no-unity"
  248. ]
  249. }
  250. ],
  251. "buildPresets": [
  252. {
  253. "name": "linux-default",
  254. "displayName": "Linux",
  255. "description": "Builds all targets for Linux",
  256. "configurePreset": "linux-default",
  257. "inherits":[
  258. "host-linux"
  259. ]
  260. },
  261. {
  262. "name": "linux-install",
  263. "displayName": "Linux install",
  264. "description": "Builds the \"install\" target for Linux, which builds all target and runs the CMake --install step",
  265. "configurePreset": "linux-default",
  266. "inherits": [
  267. "install",
  268. "host-linux"
  269. ]
  270. },
  271. {
  272. "name": "linux-mono-default",
  273. "displayName": "Linux Monolithic",
  274. "description": "Builds all targets for Linux in the monolithic permutation",
  275. "configurePreset": "linux-mono-default",
  276. "inherits":[
  277. "host-linux"
  278. ]
  279. },
  280. {
  281. "name": "linux-mono-install",
  282. "displayName": "Linux Monolithic install",
  283. "description": "Builds the \"install\" target for linux monolithic permutation, which builds all target and runs the CMake --install step",
  284. "configurePreset": "linux-mono-default",
  285. "inherits": [
  286. "install",
  287. "host-linux"
  288. ]
  289. },
  290. {
  291. "name": "linux-clang-default",
  292. "displayName": "Linux",
  293. "description": "Builds all targets for Linux using the Clang compiler",
  294. "configurePreset": "linux-clang-default",
  295. "inherits":[
  296. "host-linux"
  297. ]
  298. },
  299. {
  300. "name": "linux-gcc-default",
  301. "displayName": "Linux",
  302. "description": "Builds all targets for Linux using the GCC compiler",
  303. "configurePreset": "linux-gcc-default",
  304. "inherits":[
  305. "host-linux"
  306. ]
  307. },
  308. {
  309. "name": "linux-editor",
  310. "displayName": "Linux Editor",
  311. "description": "Builds the Editor application for Linux",
  312. "configurePreset": "linux-default",
  313. "inherits": [
  314. "editor",
  315. "host-linux"
  316. ]
  317. },
  318. {
  319. "name": "linux-assetprocessor",
  320. "displayName": "Linux AssetProcessor",
  321. "description": "Builds the AssetProcessor application for Linux",
  322. "configurePreset": "linux-default",
  323. "inherits": [
  324. "assetprocessor",
  325. "host-linux"
  326. ]
  327. },
  328. {
  329. "name": "linux-test",
  330. "displayName": "Linux CTest",
  331. "description": "Builds the TEST_SUITE_smoke/TEST_SUITE_main custom targets for Linux",
  332. "configurePreset": "linux-default",
  333. "inherits": [
  334. "test-default",
  335. "host-linux"
  336. ]
  337. }
  338. ],
  339. "testPresets": [
  340. {
  341. "name": "linux-test-default",
  342. "displayName": "Linux CTest",
  343. "description": "Runs the Smoke + Main Test Suite. Requires the linux-test build preset to have completed successfully",
  344. "configurePreset": "linux-default",
  345. "inherits": [
  346. "test-default",
  347. "host-linux"
  348. ]
  349. },
  350. {
  351. "name": "linux-test-debug",
  352. "displayName": "Linux CTest debug",
  353. "description": "Runs the Smoke + Main Test Suite in debug configuration. Requires the linux-test build preset to have completed successfully",
  354. "configurePreset": "linux-default",
  355. "inherits": [
  356. "test-default-debug",
  357. "host-linux"
  358. ]
  359. },
  360. {
  361. "name": "linux-test-profile",
  362. "displayName": "Linux CTest profile",
  363. "description": "Runs the Smoke + Main Test Suite in profile configuration. Requires the linux-test build preset to have completed successfully",
  364. "configurePreset": "linux-default",
  365. "inherits": [
  366. "test-default-profile",
  367. "host-linux"
  368. ]
  369. }
  370. ]
  371. }