CMakePresets.json 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. {
  2. "version": 6,
  3. "cmakeMinimumRequired": {
  4. "major": 3,
  5. "minor": 25,
  6. "patch": 0
  7. },
  8. "configurePresets": [
  9. {
  10. "hidden": true,
  11. "name": "default_base",
  12. "displayName": "Default Config",
  13. "binaryDir": "${fileDir}/Build/ladybird",
  14. "cacheVariables": {
  15. "CMAKE_BUILD_TYPE": "RelWithDebInfo",
  16. "SERENITY_CACHE_DIR": "${fileDir}/Build/caches",
  17. "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
  18. "VCPKG_INSTALL_OPTIONS": "--no-print-usage",
  19. "VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/release-triplets"
  20. },
  21. "environment": {
  22. "LADYBIRD_SOURCE_DIR": "${fileDir}",
  23. "VCPKG_ROOT": "${fileDir}/Toolchain/Tarballs/vcpkg",
  24. "VCPKG_BINARY_SOURCES": "clear;files,${fileDir}/Toolchain/Build/vcpkg-binary-cache,readwrite;$penv{VCPKG_BINARY_SOURCES}"
  25. },
  26. "vendor": {
  27. "jetbrains.com/clion": {
  28. "toolchain": "Default"
  29. }
  30. }
  31. },
  32. {
  33. "hidden": true,
  34. "name": "windows",
  35. "description": "Visual Studio IDE config (experimental)",
  36. "architecture": {
  37. "value": "x64",
  38. "strategy": "external"
  39. },
  40. "cacheVariables": {
  41. "ENABLE_QT": "OFF"
  42. },
  43. "vendor": {
  44. "microsoft.com/VisualStudioSettings/CMake/1.0": {
  45. "intelliSenseMode": "windows-clang-x64"
  46. }
  47. },
  48. "condition": {
  49. "type": "equals",
  50. "lhs": "${hostSystemName}",
  51. "rhs": "Windows"
  52. }
  53. },
  54. {
  55. "name": "default",
  56. "description": "Default build using Ninja generator",
  57. "generator": "Ninja",
  58. "inherits": "default_base",
  59. "condition": {
  60. "type": "notEquals",
  61. "lhs": "${hostSystemName}",
  62. "rhs": "Windows"
  63. }
  64. },
  65. {
  66. "name": "windows_ninja",
  67. "displayName": "Default with ClangCL and Ninja",
  68. "description": "Windows build using Ninja generator (experimental)",
  69. "inherits": [
  70. "default_base",
  71. "windows"
  72. ],
  73. "generator": "Ninja",
  74. "cacheVariables": {
  75. "CMAKE_C_COMPILER": "clang-cl",
  76. "CMAKE_CXX_COMPILER": "clang-cl"
  77. }
  78. },
  79. {
  80. "name": "windows_msbuild",
  81. "displayName": "Default with ClangCL and MSBuild",
  82. "description": "Default build using Visual Studio generator (experimental)",
  83. "inherits": [
  84. "default_base",
  85. "windows"
  86. ],
  87. "generator": "Visual Studio 17 2022",
  88. "toolset": "ClangCL"
  89. },
  90. {
  91. "name": "Debug",
  92. "inherits": "default",
  93. "displayName": "Debug Config",
  94. "description": "Debug build using Ninja generator",
  95. "binaryDir": "${fileDir}/Build/ladybird-debug",
  96. "cacheVariables": {
  97. "CMAKE_BUILD_TYPE": "Debug",
  98. "VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/debug-triplets"
  99. }
  100. },
  101. {
  102. "name": "Sanitizer",
  103. "inherits": "Debug",
  104. "displayName": "Sanitizer Config",
  105. "description": "Debug build using Sanitizers",
  106. "binaryDir": "${fileDir}/Build/ladybird-sanitizers",
  107. "cacheVariables": {
  108. "ENABLE_UNDEFINED_SANITIZER": "ON",
  109. "ENABLE_ADDRESS_SANITIZER": "ON",
  110. "VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/sanitizer-triplets"
  111. }
  112. },
  113. {
  114. "hidden": true,
  115. "name": "vcpkg_ci",
  116. "description": "Use the GitHub Actions vcpkg cache",
  117. "environment": {
  118. "VCPKG_BINARY_SOURCES": "clear;x-gha,readwrite"
  119. }
  120. },
  121. {
  122. "name": "CI",
  123. "inherits": [
  124. "vcpkg_ci",
  125. "default"
  126. ],
  127. "displayName": "Non-Sanitizer CI Config"
  128. },
  129. {
  130. "name": "Sanitizer_CI",
  131. "inherits": [
  132. "vcpkg_ci",
  133. "Sanitizer"
  134. ],
  135. "displayName": "Sanitizer CI Config",
  136. "cacheVariables": {
  137. "CMAKE_BUILD_TYPE": ""
  138. }
  139. },
  140. {
  141. "name": "Fuzzers_CI",
  142. "inherits": [
  143. "vcpkg_ci",
  144. "default"
  145. ],
  146. "displayName": "Fuzzers Config",
  147. "description": "Fuzzers build with GitHub Actions cache",
  148. "binaryDir": "${fileDir}/Build/ladybird-fuzzers",
  149. "cacheVariables": {
  150. "CMAKE_BUILD_TYPE": "",
  151. "ENABLE_QT": "OFF",
  152. "ENABLE_FUZZERS_LIBFUZZER": "ON",
  153. "ENABLE_ADDRESS_SANITIZER": "ON"
  154. }
  155. }
  156. ],
  157. "buildPresets": [
  158. {
  159. "name": "default",
  160. "configurePreset": "default",
  161. "displayName": "Build",
  162. "description": "Build the project",
  163. "targets": [
  164. "all"
  165. ]
  166. },
  167. {
  168. "name": "windows_msbuild",
  169. "configurePreset": "windows_msbuild",
  170. "displayName": "Build",
  171. "description": "Build the project",
  172. "targets": [
  173. "ALL_BUILD"
  174. ]
  175. },
  176. {
  177. "name": "windows_ninja",
  178. "configurePreset": "windows_ninja",
  179. "displayName": "Build",
  180. "description": "Build the project",
  181. "targets": [
  182. "all"
  183. ]
  184. },
  185. {
  186. "name": "Sanitizer",
  187. "configurePreset": "Sanitizer",
  188. "displayName": "Build with Sanitizers",
  189. "description": "Build the project with Sanitizers",
  190. "targets": [
  191. "all"
  192. ]
  193. }
  194. ],
  195. "testPresets": [
  196. {
  197. "name": "default",
  198. "configurePreset": "default",
  199. "output": {
  200. "outputOnFailure": true
  201. },
  202. "execution": {
  203. "noTestsAction": "error",
  204. "stopOnFailure": true
  205. },
  206. "environment": {
  207. "LADYBIRD_SOURCE_DIR": "${fileDir}"
  208. }
  209. },
  210. {
  211. "name": "Sanitizer",
  212. "inherits": "default",
  213. "configurePreset": "Sanitizer",
  214. "environment": {
  215. "ASAN_OPTIONS": "strict_string_checks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=1:allocator_may_return_null=1",
  216. "UBSAN_OPTIONS": "print_stacktrace=1:print_summary=1:halt_on_error=1"
  217. }
  218. },
  219. {
  220. "name": "Debug",
  221. "inherits": "default",
  222. "configurePreset": "Debug"
  223. }
  224. ]
  225. }