CMakePresets.json 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  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": "macos-ninja-release",
  86. "displayName": "Ninja release",
  87. "description": "VCMI MacOS Ninja",
  88. "inherits": "default-release"
  89. },
  90. {
  91. "name": "macos-conan-ninja-release",
  92. "displayName": "Ninja+Conan release",
  93. "description": "VCMI MacOS Ninja using Conan",
  94. "inherits": [
  95. "build-with-conan",
  96. "default-release"
  97. ],
  98. "cacheVariables": {
  99. "CMAKE_BUILD_TYPE": "Release"
  100. }
  101. },
  102. {
  103. "name": "macos-arm-conan-ninja-release",
  104. "displayName": "Ninja+Conan arm64 release",
  105. "description": "VCMI MacOS-arm64 Ninja using Conan",
  106. "inherits": "macos-conan-ninja-release"
  107. },
  108. {
  109. "name": "macos-xcode-release",
  110. "displayName": "XCode release",
  111. "description": "VCMI MacOS Xcode",
  112. "inherits": "default-release",
  113. "generator": "Xcode"
  114. },
  115. {
  116. "name": "ios-device",
  117. "displayName": "Base iOS device",
  118. "description": "Base VCMI preset for iOS device",
  119. "generator": "Xcode",
  120. "binaryDir": "../build-${presetName}",
  121. "cacheVariables": {
  122. "CMAKE_SYSTEM_NAME": "iOS",
  123. "FORCE_BUNDLED_FL": "ON",
  124. "FORCE_BUNDLED_MINIZIP": "ON",
  125. "ENABLE_EDITOR" : "OFF"
  126. }
  127. },
  128. {
  129. "name": "ios-simulator",
  130. "displayName": "Base iOS simulator",
  131. "description": "Base VCMI preset for iOS simulator",
  132. "inherits": "ios-device",
  133. "cacheVariables": {
  134. "CMAKE_OSX_SYSROOT": "iphonesimulator"
  135. }
  136. },
  137. {
  138. "name": "ios-device-conan",
  139. "displayName": "Base iOS device using Conan",
  140. "description": "Base VCMI preset for iOS device using Conan",
  141. "inherits": [
  142. "build-with-conan",
  143. "ios-device"
  144. ]
  145. },
  146. {
  147. "name": "base-ios-release",
  148. "displayName": "Base iOS release",
  149. "description": "Base VCMI preset for iOS release",
  150. "inherits": "base-release",
  151. "hidden": true,
  152. "cacheVariables": {
  153. "BUNDLE_IDENTIFIER_PREFIX": "eu.vcmi"
  154. }
  155. },
  156. {
  157. "name": "ios-release-conan",
  158. "displayName": "iOS+Conan release",
  159. "description": "VCMI iOS release using Conan",
  160. "inherits": [
  161. "base-ios-release",
  162. "ios-device-conan"
  163. ]
  164. },
  165. {
  166. "name": "ios-release-legacy",
  167. "displayName": "iOS release using legacy dependencies",
  168. "description": "VCMI iOS release using legacy dependencies",
  169. "inherits": [
  170. "base-ios-release",
  171. "ios-device"
  172. ],
  173. "cacheVariables": {
  174. "CMAKE_PREFIX_PATH": "${sourceDir}/build/iphoneos"
  175. }
  176. }
  177. ],
  178. "buildPresets": [
  179. {
  180. "name": "default-release",
  181. "hidden": true,
  182. "configuration": "RelWithDebInfo"
  183. },
  184. {
  185. "name": "linux-clang-release",
  186. "configurePreset": "linux-clang-release",
  187. "inherits": "default-release"
  188. },
  189. {
  190. "name": "linux-gcc-release",
  191. "configurePreset": "linux-gcc-release",
  192. "inherits": "default-release"
  193. },
  194. {
  195. "name": "macos-xcode-release",
  196. "configurePreset": "macos-xcode-release",
  197. "inherits": "default-release"
  198. },
  199. {
  200. "name": "macos-ninja-release",
  201. "configurePreset": "macos-ninja-release",
  202. "inherits": "default-release"
  203. },
  204. {
  205. "name": "macos-conan-ninja-release",
  206. "configurePreset": "macos-conan-ninja-release",
  207. "inherits": "default-release"
  208. },
  209. {
  210. "name": "macos-arm-conan-ninja-release",
  211. "configurePreset": "macos-arm-conan-ninja-release",
  212. "inherits": "default-release"
  213. },
  214. {
  215. "name": "windows-msvc-release",
  216. "configurePreset": "windows-msvc-release",
  217. "inherits": "default-release",
  218. "configuration": "Release"
  219. },
  220. {
  221. "name": "windows-msvc-relwithdebinfo",
  222. "configurePreset": "windows-msvc-release",
  223. "inherits": "default-release"
  224. },
  225. {
  226. "name": "ios-release-conan",
  227. "configurePreset": "ios-release-conan",
  228. "inherits": "default-release",
  229. "configuration": "Release",
  230. "targets": ["vcmiclient"],
  231. "nativeToolOptions": [
  232. "CODE_SIGNING_ALLOWED_FOR_APPS=NO"
  233. ]
  234. },
  235. {
  236. "name": "ios-release-legacy",
  237. "configurePreset": "ios-release-legacy",
  238. "inherits": "ios-release-conan"
  239. }
  240. ],
  241. "testPresets": [
  242. {
  243. "name": "default-release",
  244. "hidden": true,
  245. "output": {
  246. "shortProgress": true,
  247. "verbosity": "verbose"
  248. }
  249. },
  250. {
  251. "name": "linux-clang-release",
  252. "configurePreset": "linux-clang-release",
  253. "inherits": "default-release"
  254. },
  255. {
  256. "name": "linux-gcc-release",
  257. "configurePreset": "linux-gcc-release",
  258. "inherits": "default-release"
  259. },
  260. {
  261. "name": "macos-xcode-release",
  262. "configurePreset": "macos-xcode-release",
  263. "inherits": "default-release"
  264. },
  265. {
  266. "name": "macos-ninja-release",
  267. "configurePreset": "macos-ninja-release",
  268. "inherits": "default-release"
  269. },
  270. {
  271. "name": "windows-msvc-release",
  272. "configurePreset": "windows-msvc-release",
  273. "inherits": "default-release"
  274. }
  275. ]
  276. }