CMakePresets.json 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  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. "buildPresets": [
  192. {
  193. "name": "default-release",
  194. "hidden": true,
  195. "configuration": "RelWithDebInfo"
  196. },
  197. {
  198. "name": "linux-clang-release",
  199. "configurePreset": "linux-clang-release",
  200. "inherits": "default-release"
  201. },
  202. {
  203. "name": "linux-gcc-release",
  204. "configurePreset": "linux-gcc-release",
  205. "inherits": "default-release"
  206. },
  207. {
  208. "name": "macos-xcode-release",
  209. "configurePreset": "macos-xcode-release",
  210. "inherits": "default-release"
  211. },
  212. {
  213. "name": "macos-ninja-release",
  214. "configurePreset": "macos-ninja-release",
  215. "inherits": "default-release"
  216. },
  217. {
  218. "name": "macos-conan-ninja-release",
  219. "configurePreset": "macos-conan-ninja-release",
  220. "inherits": "default-release"
  221. },
  222. {
  223. "name": "macos-arm-conan-ninja-release",
  224. "configurePreset": "macos-arm-conan-ninja-release",
  225. "inherits": "default-release"
  226. },
  227. {
  228. "name": "windows-msvc-release",
  229. "configurePreset": "windows-msvc-release",
  230. "inherits": "default-release",
  231. "configuration": "Release"
  232. },
  233. {
  234. "name": "windows-msvc-relwithdebinfo",
  235. "configurePreset": "windows-msvc-release",
  236. "inherits": "default-release"
  237. },
  238. {
  239. "name": "windows-mingw-conan-linux",
  240. "configurePreset": "windows-mingw-conan-linux",
  241. "inherits": "default-release",
  242. "configuration": "Release"
  243. },
  244. {
  245. "name": "ios-release-conan",
  246. "configurePreset": "ios-release-conan",
  247. "inherits": "default-release",
  248. "configuration": "Release",
  249. "targets": ["vcmiclient"],
  250. "nativeToolOptions": [
  251. "CODE_SIGNING_ALLOWED_FOR_APPS=NO"
  252. ]
  253. },
  254. {
  255. "name": "ios-release-legacy",
  256. "configurePreset": "ios-release-legacy",
  257. "inherits": "ios-release-conan"
  258. }
  259. ],
  260. "testPresets": [
  261. {
  262. "name": "default-release",
  263. "hidden": true,
  264. "output": {
  265. "shortProgress": true,
  266. "verbosity": "verbose"
  267. }
  268. },
  269. {
  270. "name": "linux-clang-release",
  271. "configurePreset": "linux-clang-release",
  272. "inherits": "default-release"
  273. },
  274. {
  275. "name": "linux-gcc-release",
  276. "configurePreset": "linux-gcc-release",
  277. "inherits": "default-release"
  278. },
  279. {
  280. "name": "macos-xcode-release",
  281. "configurePreset": "macos-xcode-release",
  282. "inherits": "default-release"
  283. },
  284. {
  285. "name": "macos-ninja-release",
  286. "configurePreset": "macos-ninja-release",
  287. "inherits": "default-release"
  288. },
  289. {
  290. "name": "windows-msvc-release",
  291. "configurePreset": "windows-msvc-release",
  292. "inherits": "default-release"
  293. },
  294. {
  295. "name": "windows-mingw-conan-linux",
  296. "configurePreset": "windows-mingw-conan-linux",
  297. "inherits": "default-release"
  298. }
  299. ]
  300. }