CMakePresets.json 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  1. {
  2. "version": 2,
  3. "configurePresets": [
  4. {
  5. "name": "release-binary-dir",
  6. "hidden": true,
  7. "binaryDir": "${sourceDir}/out/build/${presetName}"
  8. },
  9. {
  10. "name": "build-with-conan",
  11. "hidden": true,
  12. "cacheVariables": {
  13. "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/conan-generated/conan_toolchain.cmake",
  14. "FORCE_BUNDLED_MINIZIP": "OFF"
  15. }
  16. },
  17. {
  18. "name": "base-release",
  19. "inherits": "release-binary-dir",
  20. "hidden": true,
  21. "cacheVariables": {
  22. "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
  23. "PACKAGE_FILE_NAME" : "$env{VCMI_PACKAGE_FILE_NAME}",
  24. "PACKAGE_NAME_SUFFIX" : "$env{VCMI_PACKAGE_NAME_SUFFIX}",
  25. "CMAKE_BUILD_TYPE": "RelWithDebInfo",
  26. "ENABLE_TEST": "OFF",
  27. "ENABLE_STRICT_COMPILATION": "ON",
  28. "ENABLE_GOLDMASTER": "$env{VCMI_PACKAGE_GOLDMASTER}",
  29. "ENABLE_PCH" : "OFF"
  30. }
  31. },
  32. {
  33. "name": "default-release",
  34. "inherits": "base-release",
  35. "hidden": true,
  36. "generator": "Ninja",
  37. "cacheVariables": {
  38. "FORCE_BUNDLED_FL": "OFF"
  39. }
  40. },
  41. {
  42. "name" : "linux-release",
  43. "inherits" : "default-release",
  44. "hidden": true,
  45. "cacheVariables": {
  46. "CMAKE_INSTALL_PREFIX" : "/usr/local"
  47. }
  48. },
  49. {
  50. "name": "linux-test",
  51. "inherits": "linux-release",
  52. "hidden": true,
  53. "cacheVariables": {
  54. "ENABLE_LOBBY": "ON",
  55. "ENABLE_TEST": "ON",
  56. "ENABLE_LUA": "ON"
  57. }
  58. },
  59. {
  60. "name": "linux-clang-release",
  61. "displayName": "Clang x86_64-pc-linux-gnu",
  62. "description": "VCMI Linux Clang",
  63. "inherits": "linux-release",
  64. "cacheVariables": {
  65. "CMAKE_C_COMPILER": "/usr/bin/clang",
  66. "CMAKE_CXX_COMPILER": "/usr/bin/clang++"
  67. }
  68. },
  69. {
  70. "name": "linux-clang-release-ccache",
  71. "displayName": "Clang x86_64-pc-linux-gnu with ccache",
  72. "description": "VCMI Linux Clang with ccache",
  73. "inherits": "linux-release",
  74. "cacheVariables": {
  75. "ENABLE_CCACHE": "ON"
  76. }
  77. },
  78. {
  79. "name": "linux-gcc-release",
  80. "displayName": "GCC x86_64-pc-linux-gnu",
  81. "description": "VCMI Linux GCC",
  82. "inherits": "linux-release",
  83. "cacheVariables": {
  84. "ENABLE_LUA" : "ON",
  85. "CMAKE_C_COMPILER": "/usr/bin/gcc",
  86. "CMAKE_CXX_COMPILER": "/usr/bin/g++"
  87. }
  88. },
  89. {
  90. "name": "linux-gcc-release-ccache",
  91. "displayName": "GCC x86_64-pc-linux-gnu with ccache",
  92. "description": "VCMI Linux GCC with ccache",
  93. "inherits": "linux-release",
  94. "cacheVariables": {
  95. "ENABLE_CCACHE": "ON"
  96. }
  97. },
  98. {
  99. "name": "linux-gcc-debug",
  100. "displayName": "GCC x86_64-pc-linux-gnu (debug)",
  101. "description": "VCMI Linux GCC (Debug)",
  102. "inherits": "linux-release",
  103. "cacheVariables": {
  104. "CMAKE_BUILD_TYPE": "Debug",
  105. "ENABLE_LUA" : "ON",
  106. "CMAKE_C_COMPILER": "/usr/bin/gcc",
  107. "CMAKE_CXX_COMPILER": "/usr/bin/g++"
  108. }
  109. },
  110. {
  111. "name": "linux-clang-test",
  112. "displayName": "Clang x86_64-pc-linux-gnu with unit testing",
  113. "description": "VCMI Linux Clang",
  114. "inherits": "linux-test",
  115. "cacheVariables": {
  116. "CMAKE_C_COMPILER": "/usr/bin/clang",
  117. "CMAKE_CXX_COMPILER": "/usr/bin/clang++"
  118. }
  119. },
  120. {
  121. "name": "linux-gcc-test",
  122. "displayName": "GCC x86_64-pc-linux-gnu with unit testing",
  123. "description": "VCMI Linux GCC",
  124. "inherits": "linux-test",
  125. "cacheVariables": {
  126. "ENABLE_LUA" : "OFF",
  127. "CMAKE_C_COMPILER": "/usr/bin/gcc",
  128. "CMAKE_CXX_COMPILER": "/usr/bin/g++"
  129. }
  130. },
  131. {
  132. "name": "windows-mingw-release",
  133. "displayName": "Windows x64 MinGW Release",
  134. "description": "VCMI Windows Ninja using MinGW",
  135. "inherits": "default-release",
  136. "cacheVariables": {
  137. "CMAKE_BUILD_TYPE": "Release",
  138. "CMAKE_C_COMPILER": "gcc",
  139. "CMAKE_CXX_COMPILER": "g++"
  140. }
  141. },
  142. {
  143. "name": "windows-msvc-release",
  144. "displayName": "Windows x64 RelWithDebInfo",
  145. "description": "VCMI RelWithDebInfo build",
  146. "inherits": "default-release",
  147. "generator": "Visual Studio 17 2022",
  148. "architecture": {
  149. "value": "x64",
  150. "strategy": "set"
  151. },
  152. "cacheVariables": {
  153. "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake",
  154. "CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
  155. "FORCE_BUNDLED_MINIZIP": "ON"
  156. }
  157. },
  158. {
  159. "name": "windows-msvc-release-x86",
  160. "displayName": "Windows x86 RelWithDebInfo",
  161. "description": "VCMI RelWithDebInfo build",
  162. "inherits": "default-release",
  163. "generator": "Visual Studio 17 2022",
  164. "cacheVariables": {
  165. "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake",
  166. "CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
  167. "FORCE_BUNDLED_MINIZIP": "ON",
  168. "CMAKE_GENERATOR_PLATFORM": "WIN32"
  169. }
  170. },
  171. {
  172. "name": "windows-msvc-release-ccache",
  173. "displayName": "Windows x64 RelWithDebInfo with ccache",
  174. "description": "VCMI RelWithDebInfo build with ccache",
  175. "inherits": "windows-msvc-release",
  176. "cacheVariables": {
  177. "ENABLE_CCACHE": "ON"
  178. }
  179. },
  180. {
  181. "name": "windows-mingw-conan-linux",
  182. "displayName": "Ninja+Conan release",
  183. "description": "VCMI Windows Ninja using Conan on Linux",
  184. "inherits": [
  185. "build-with-conan",
  186. "default-release"
  187. ],
  188. "cacheVariables": {
  189. "CMAKE_BUILD_TYPE": "Release",
  190. "FORCE_BUNDLED_FL": "ON"
  191. }
  192. },
  193. {
  194. "name": "macos-ninja-release",
  195. "displayName": "Ninja release",
  196. "description": "VCMI MacOS Ninja",
  197. "inherits": "default-release"
  198. },
  199. {
  200. "name": "macos-conan-ninja-release",
  201. "displayName": "Ninja+Conan release",
  202. "description": "VCMI MacOS Ninja using Conan",
  203. "inherits": [
  204. "build-with-conan",
  205. "default-release"
  206. ],
  207. "cacheVariables": {
  208. "CMAKE_BUILD_TYPE": "Release"
  209. }
  210. },
  211. {
  212. "name": "macos-arm-conan-ninja-release",
  213. "displayName": "Ninja+Conan arm64 release",
  214. "description": "VCMI MacOS-arm64 Ninja using Conan",
  215. "inherits": "macos-conan-ninja-release"
  216. },
  217. {
  218. "name": "macos-xcode-release",
  219. "displayName": "XCode release",
  220. "description": "VCMI MacOS Xcode",
  221. "inherits": "default-release",
  222. "generator": "Xcode"
  223. },
  224. {
  225. "name": "ios-device",
  226. "displayName": "Base iOS device",
  227. "description": "Base VCMI preset for iOS device",
  228. "generator": "Xcode",
  229. "binaryDir": "../build-${presetName}",
  230. "cacheVariables": {
  231. "CMAKE_SYSTEM_NAME": "iOS",
  232. "FORCE_BUNDLED_FL": "ON",
  233. "FORCE_BUNDLED_MINIZIP": "ON",
  234. "ENABLE_EDITOR" : "OFF"
  235. }
  236. },
  237. {
  238. "name": "ios-simulator",
  239. "displayName": "Base iOS simulator",
  240. "description": "Base VCMI preset for iOS simulator",
  241. "inherits": "ios-device",
  242. "cacheVariables": {
  243. "CMAKE_OSX_SYSROOT": "iphonesimulator"
  244. }
  245. },
  246. {
  247. "name": "ios-device-conan",
  248. "displayName": "Base iOS device using Conan",
  249. "description": "Base VCMI preset for iOS device using Conan",
  250. "inherits": [
  251. "build-with-conan",
  252. "ios-device"
  253. ]
  254. },
  255. {
  256. "name": "base-ios-release",
  257. "displayName": "Base iOS release",
  258. "description": "Base VCMI preset for iOS release",
  259. "inherits": "base-release",
  260. "hidden": true,
  261. "cacheVariables": {
  262. "BUNDLE_IDENTIFIER_PREFIX": "eu.vcmi"
  263. }
  264. },
  265. {
  266. "name": "ios-release-conan",
  267. "displayName": "iOS+Conan release",
  268. "description": "VCMI iOS release using Conan",
  269. "inherits": [
  270. "base-ios-release",
  271. "ios-device-conan"
  272. ],
  273. "cacheVariables": {
  274. "ENABLE_PCH" : "ON"
  275. }
  276. },
  277. {
  278. "name": "ios-release-conan-ccache",
  279. "displayName": "iOS+Conan release using ccache",
  280. "description": "VCMI iOS release using Conan and ccache",
  281. "inherits": "ios-release-conan",
  282. "cacheVariables": {
  283. "ENABLE_PCH" : "OFF",
  284. "ENABLE_CCACHE": "ON"
  285. }
  286. },
  287. {
  288. "name": "ios-release-legacy",
  289. "displayName": "iOS release using legacy dependencies",
  290. "description": "VCMI iOS release using legacy dependencies",
  291. "inherits": [
  292. "base-ios-release",
  293. "ios-device"
  294. ],
  295. "cacheVariables": {
  296. "CMAKE_PREFIX_PATH": "${sourceDir}/build/iphoneos"
  297. }
  298. },
  299. {
  300. "name": "android-conan-ninja-release",
  301. "displayName": "Android release",
  302. "description": "VCMI Android Ninja using Conan",
  303. "inherits": [
  304. "build-with-conan",
  305. "default-release"
  306. ],
  307. "cacheVariables": {
  308. "CMAKE_BUILD_TYPE": "RelWithDebInfo",
  309. "ANDROIDDEPLOYQT_OPTIONS" : "--aab"
  310. }
  311. },
  312. {
  313. "name": "android-daily-release",
  314. "displayName": "Android daily release",
  315. "description": "VCMI Android daily build",
  316. "inherits": "android-conan-ninja-release",
  317. "cacheVariables": {
  318. "ANDROID_GRADLE_PROPERTIES": "applicationIdSuffix=.daily;signingConfig=dailySigning;applicationLabel=VCMI daily;applicationVariant=daily"
  319. }
  320. },
  321. {
  322. "name": "portmaster-release",
  323. "displayName": "PortMaster",
  324. "description": "VCMI PortMaster",
  325. "inherits": "default-release",
  326. "cacheVariables": {
  327. "CMAKE_BUILD_TYPE": "Release",
  328. "CMAKE_INSTALL_PREFIX": ".",
  329. "ENABLE_DEBUG_CONSOLE": "OFF",
  330. "ENABLE_EDITOR": "OFF",
  331. "ENABLE_GITVERSION": "OFF",
  332. "ENABLE_LAUNCHER": "OFF",
  333. "ENABLE_SERVER": "OFF",
  334. "ENABLE_TRANSLATIONS": "OFF",
  335. "FORCE_BUNDLED_FL": "ON",
  336. "ENABLE_GOLDMASTER": "ON",
  337. "VCMI_PORTMASTER": "ON"
  338. }
  339. }
  340. ],
  341. "buildPresets": [
  342. {
  343. "name": "default-release",
  344. "hidden": true,
  345. "configuration": "RelWithDebInfo"
  346. },
  347. {
  348. "name": "default-debug",
  349. "hidden": true,
  350. "configuration": "Debug"
  351. },
  352. {
  353. "name": "linux-clang-release",
  354. "configurePreset": "linux-clang-release",
  355. "inherits": "default-release"
  356. },
  357. {
  358. "name": "linux-clang-release-ccache",
  359. "configurePreset": "linux-clang-release-ccache",
  360. "inherits": "linux-clang-release"
  361. },
  362. {
  363. "name": "linux-clang-test",
  364. "configurePreset": "linux-clang-test",
  365. "inherits": "default-release"
  366. },
  367. {
  368. "name": "linux-gcc-test",
  369. "configurePreset": "linux-gcc-test",
  370. "inherits": "default-release"
  371. },
  372. {
  373. "name": "linux-gcc-release",
  374. "configurePreset": "linux-gcc-release",
  375. "inherits": "default-release"
  376. },
  377. {
  378. "name": "linux-gcc-release-ccache",
  379. "configurePreset": "linux-gcc-release-ccache",
  380. "inherits": "linux-gcc-release"
  381. },
  382. {
  383. "name": "linux-gcc-debug",
  384. "configurePreset": "linux-gcc-debug",
  385. "inherits": "default-debug"
  386. },
  387. {
  388. "name": "macos-xcode-release",
  389. "configurePreset": "macos-xcode-release",
  390. "inherits": "default-release"
  391. },
  392. {
  393. "name": "macos-ninja-release",
  394. "configurePreset": "macos-ninja-release",
  395. "inherits": "default-release"
  396. },
  397. {
  398. "name": "macos-conan-ninja-release",
  399. "configurePreset": "macos-conan-ninja-release",
  400. "inherits": "default-release"
  401. },
  402. {
  403. "name": "macos-arm-conan-ninja-release",
  404. "configurePreset": "macos-arm-conan-ninja-release",
  405. "inherits": "default-release"
  406. },
  407. {
  408. "name": "windows-mingw-release",
  409. "configurePreset": "windows-mingw-release",
  410. "inherits": "default-release"
  411. },
  412. {
  413. "name": "windows-msvc-release",
  414. "configurePreset": "windows-msvc-release",
  415. "inherits": "default-release"
  416. },
  417. {
  418. "name": "windows-msvc-release-x86",
  419. "configurePreset": "windows-msvc-release-x86",
  420. "inherits": "default-release"
  421. },
  422. {
  423. "name": "windows-msvc-release-ccache",
  424. "configurePreset": "windows-msvc-release-ccache",
  425. "inherits": "windows-msvc-release"
  426. },
  427. {
  428. "name": "windows-msvc-relwithdebinfo",
  429. "configurePreset": "windows-msvc-release",
  430. "inherits": "default-release"
  431. },
  432. {
  433. "name": "windows-mingw-conan-linux",
  434. "configurePreset": "windows-mingw-conan-linux",
  435. "inherits": "default-release",
  436. "configuration": "Release"
  437. },
  438. {
  439. "name": "ios-release-conan",
  440. "configurePreset": "ios-release-conan",
  441. "inherits": "default-release",
  442. "configuration": "Release",
  443. "targets": ["vcmiclient"],
  444. "nativeToolOptions": [
  445. "CODE_SIGNING_ALLOWED_FOR_APPS=NO"
  446. ]
  447. },
  448. {
  449. "name": "ios-release-conan-ccache",
  450. "configurePreset": "ios-release-conan-ccache",
  451. "inherits": "ios-release-conan"
  452. },
  453. {
  454. "name": "ios-release-legacy",
  455. "configurePreset": "ios-release-legacy",
  456. "inherits": "ios-release-conan"
  457. },
  458. {
  459. "name": "android-conan-ninja-release",
  460. "configurePreset": "android-conan-ninja-release",
  461. "inherits": "default-release"
  462. },
  463. {
  464. "name": "android-daily-release",
  465. "configurePreset": "android-daily-release",
  466. "inherits": "android-conan-ninja-release"
  467. },
  468. {
  469. "name": "portmaster-release",
  470. "configurePreset": "portmaster-release",
  471. "inherits": "default-release",
  472. "configuration": "Release"
  473. }
  474. ],
  475. "testPresets": [
  476. {
  477. "name": "default-release",
  478. "hidden": true,
  479. "output": {
  480. "shortProgress": true,
  481. "verbosity": "verbose"
  482. }
  483. },
  484. {
  485. "name": "linux-clang-release",
  486. "configurePreset": "linux-clang-release",
  487. "inherits": "default-release"
  488. },
  489. {
  490. "name": "linux-gcc-release",
  491. "configurePreset": "linux-gcc-release",
  492. "inherits": "default-release"
  493. },
  494. {
  495. "name": "linux-clang-test",
  496. "configurePreset": "linux-clang-test",
  497. "inherits": "default-release"
  498. },
  499. {
  500. "name": "linux-gcc-test",
  501. "configurePreset": "linux-gcc-test",
  502. "inherits": "default-release"
  503. },
  504. {
  505. "name": "macos-xcode-release",
  506. "configurePreset": "macos-xcode-release",
  507. "inherits": "default-release"
  508. },
  509. {
  510. "name": "macos-ninja-release",
  511. "configurePreset": "macos-ninja-release",
  512. "inherits": "default-release"
  513. },
  514. {
  515. "name": "windows-mingw-release",
  516. "configurePreset": "windows-mingw-release",
  517. "inherits": "default-release"
  518. },
  519. {
  520. "name": "windows-msvc-release",
  521. "configurePreset": "windows-msvc-release",
  522. "inherits": "default-release"
  523. },
  524. {
  525. "name": "windows-mingw-conan-linux",
  526. "configurePreset": "windows-mingw-conan-linux",
  527. "inherits": "default-release"
  528. }
  529. ]
  530. }