CMakePresets.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  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_GITVERSION": "$env{VCMI_PACKAGE_GITVERSION}"
  29. }
  30. },
  31. {
  32. "name": "default-release",
  33. "inherits": "base-release",
  34. "hidden": true,
  35. "generator": "Ninja",
  36. "cacheVariables": {
  37. "FORCE_BUNDLED_FL": "OFF"
  38. }
  39. },
  40. {
  41. "name" : "linux-release",
  42. "inherits" : "default-release",
  43. "hidden": true,
  44. "cacheVariables": {
  45. "CMAKE_INSTALL_PREFIX" : "/usr/local"
  46. }
  47. },
  48. {
  49. "name": "linux-clang-release",
  50. "displayName": "Clang x86_64-pc-linux-gnu",
  51. "description": "VCMI Linux Clang",
  52. "inherits": "linux-release",
  53. "cacheVariables": {
  54. "CMAKE_C_COMPILER": "/usr/bin/clang",
  55. "CMAKE_CXX_COMPILER": "/usr/bin/clang++"
  56. }
  57. },
  58. {
  59. "name": "linux-gcc-release",
  60. "displayName": "GCC x86_64-pc-linux-gnu",
  61. "description": "VCMI Linux GCC",
  62. "inherits": "linux-release",
  63. "cacheVariables": {
  64. "CMAKE_C_COMPILER": "/usr/bin/gcc",
  65. "CMAKE_CXX_COMPILER": "/usr/bin/g++"
  66. }
  67. },
  68. {
  69. "name": "windows-msvc-release",
  70. "displayName": "Windows x64 RelWithDebInfo",
  71. "description": "VCMI RelWithDebInfo build",
  72. "inherits": "default-release",
  73. "generator": "Visual Studio 17 2022",
  74. "architecture": {
  75. "value": "x64",
  76. "strategy": "set"
  77. },
  78. "cacheVariables": {
  79. "CMAKE_TOOLCHAIN_FILE": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake",
  80. "CMAKE_POLICY_DEFAULT_CMP0091": "NEW",
  81. "FORCE_BUNDLED_MINIZIP": "ON"
  82. }
  83. },
  84. {
  85. "name": "windows-mingw-conan-linux",
  86. "displayName": "Ninja+Conan release",
  87. "description": "VCMI Windows Ninja using Conan on Linux",
  88. "inherits": [
  89. "build-with-conan",
  90. "default-release"
  91. ],
  92. "cacheVariables": {
  93. "CMAKE_BUILD_TYPE": "Release",
  94. "FORCE_BUNDLED_FL": "ON"
  95. }
  96. },
  97. {
  98. "name": "macos-ninja-release",
  99. "displayName": "Ninja release",
  100. "description": "VCMI MacOS Ninja",
  101. "inherits": "default-release"
  102. },
  103. {
  104. "name": "macos-conan-ninja-release",
  105. "displayName": "Ninja+Conan release",
  106. "description": "VCMI MacOS Ninja using Conan",
  107. "inherits": [
  108. "build-with-conan",
  109. "default-release"
  110. ],
  111. "cacheVariables": {
  112. "CMAKE_BUILD_TYPE": "Release"
  113. }
  114. },
  115. {
  116. "name": "macos-arm-conan-ninja-release",
  117. "displayName": "Ninja+Conan arm64 release",
  118. "description": "VCMI MacOS-arm64 Ninja using Conan",
  119. "inherits": "macos-conan-ninja-release"
  120. },
  121. {
  122. "name": "macos-xcode-release",
  123. "displayName": "XCode release",
  124. "description": "VCMI MacOS Xcode",
  125. "inherits": "default-release",
  126. "generator": "Xcode"
  127. },
  128. {
  129. "name": "ios-device",
  130. "displayName": "Base iOS device",
  131. "description": "Base VCMI preset for iOS device",
  132. "generator": "Xcode",
  133. "binaryDir": "../build-${presetName}",
  134. "cacheVariables": {
  135. "CMAKE_SYSTEM_NAME": "iOS",
  136. "FORCE_BUNDLED_FL": "ON",
  137. "FORCE_BUNDLED_MINIZIP": "ON",
  138. "ENABLE_EDITOR" : "OFF"
  139. }
  140. },
  141. {
  142. "name": "ios-simulator",
  143. "displayName": "Base iOS simulator",
  144. "description": "Base VCMI preset for iOS simulator",
  145. "inherits": "ios-device",
  146. "cacheVariables": {
  147. "CMAKE_OSX_SYSROOT": "iphonesimulator"
  148. }
  149. },
  150. {
  151. "name": "ios-device-conan",
  152. "displayName": "Base iOS device using Conan",
  153. "description": "Base VCMI preset for iOS device using Conan",
  154. "inherits": [
  155. "build-with-conan",
  156. "ios-device"
  157. ]
  158. },
  159. {
  160. "name": "base-ios-release",
  161. "displayName": "Base iOS release",
  162. "description": "Base VCMI preset for iOS release",
  163. "inherits": "base-release",
  164. "hidden": true,
  165. "cacheVariables": {
  166. "BUNDLE_IDENTIFIER_PREFIX": "eu.vcmi"
  167. }
  168. },
  169. {
  170. "name": "ios-release-conan",
  171. "displayName": "iOS+Conan release",
  172. "description": "VCMI iOS release using Conan",
  173. "inherits": [
  174. "base-ios-release",
  175. "ios-device-conan"
  176. ]
  177. },
  178. {
  179. "name": "ios-release-legacy",
  180. "displayName": "iOS release using legacy dependencies",
  181. "description": "VCMI iOS release using legacy dependencies",
  182. "inherits": [
  183. "base-ios-release",
  184. "ios-device"
  185. ],
  186. "cacheVariables": {
  187. "CMAKE_PREFIX_PATH": "${sourceDir}/build/iphoneos"
  188. }
  189. },
  190. {
  191. "name": "android-conan-ninja-release",
  192. "displayName": "Android release",
  193. "description": "VCMI Android Ninja using Conan",
  194. "inherits": [
  195. "build-with-conan",
  196. "default-release"
  197. ],
  198. "cacheVariables": {
  199. "CMAKE_BUILD_TYPE": "Release"
  200. }
  201. }
  202. ],
  203. "buildPresets": [
  204. {
  205. "name": "default-release",
  206. "hidden": true,
  207. "configuration": "RelWithDebInfo"
  208. },
  209. {
  210. "name": "linux-clang-release",
  211. "configurePreset": "linux-clang-release",
  212. "inherits": "default-release"
  213. },
  214. {
  215. "name": "linux-gcc-release",
  216. "configurePreset": "linux-gcc-release",
  217. "inherits": "default-release"
  218. },
  219. {
  220. "name": "macos-xcode-release",
  221. "configurePreset": "macos-xcode-release",
  222. "inherits": "default-release"
  223. },
  224. {
  225. "name": "macos-ninja-release",
  226. "configurePreset": "macos-ninja-release",
  227. "inherits": "default-release"
  228. },
  229. {
  230. "name": "macos-conan-ninja-release",
  231. "configurePreset": "macos-conan-ninja-release",
  232. "inherits": "default-release"
  233. },
  234. {
  235. "name": "macos-arm-conan-ninja-release",
  236. "configurePreset": "macos-arm-conan-ninja-release",
  237. "inherits": "default-release"
  238. },
  239. {
  240. "name": "windows-msvc-release",
  241. "configurePreset": "windows-msvc-release",
  242. "inherits": "default-release",
  243. "configuration": "Release"
  244. },
  245. {
  246. "name": "windows-msvc-relwithdebinfo",
  247. "configurePreset": "windows-msvc-release",
  248. "inherits": "default-release"
  249. },
  250. {
  251. "name": "windows-mingw-conan-linux",
  252. "configurePreset": "windows-mingw-conan-linux",
  253. "inherits": "default-release",
  254. "configuration": "Release"
  255. },
  256. {
  257. "name": "ios-release-conan",
  258. "configurePreset": "ios-release-conan",
  259. "inherits": "default-release",
  260. "configuration": "Release",
  261. "targets": ["vcmiclient"],
  262. "nativeToolOptions": [
  263. "CODE_SIGNING_ALLOWED_FOR_APPS=NO"
  264. ]
  265. },
  266. {
  267. "name": "ios-release-legacy",
  268. "configurePreset": "ios-release-legacy",
  269. "inherits": "ios-release-conan"
  270. },
  271. {
  272. "name": "android-conan-ninja-release",
  273. "configurePreset": "android-conan-ninja-release",
  274. "inherits": "default-release"
  275. }
  276. ],
  277. "testPresets": [
  278. {
  279. "name": "default-release",
  280. "hidden": true,
  281. "output": {
  282. "shortProgress": true,
  283. "verbosity": "verbose"
  284. }
  285. },
  286. {
  287. "name": "linux-clang-release",
  288. "configurePreset": "linux-clang-release",
  289. "inherits": "default-release"
  290. },
  291. {
  292. "name": "linux-gcc-release",
  293. "configurePreset": "linux-gcc-release",
  294. "inherits": "default-release"
  295. },
  296. {
  297. "name": "macos-xcode-release",
  298. "configurePreset": "macos-xcode-release",
  299. "inherits": "default-release"
  300. },
  301. {
  302. "name": "macos-ninja-release",
  303. "configurePreset": "macos-ninja-release",
  304. "inherits": "default-release"
  305. },
  306. {
  307. "name": "windows-msvc-release",
  308. "configurePreset": "windows-msvc-release",
  309. "inherits": "default-release"
  310. },
  311. {
  312. "name": "windows-mingw-conan-linux",
  313. "configurePreset": "windows-mingw-conan-linux",
  314. "inherits": "default-release"
  315. }
  316. ]
  317. }