{
  "version": 3,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 19,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "release",
      "displayName": "Release (no ASan)",
      "description": "Release build without sanitizers",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
      }
    },
    {
      "name": "release-asan",
      "displayName": "Release (ASan)",
      "description": "Release build with Address Sanitizer",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "CMAKE_CXX_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
        "CMAKE_C_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
        "CMAKE_EXE_LINKER_FLAGS": "-fsanitize=address",
        "CMAKE_SHARED_LINKER_FLAGS": "-fsanitize=address",
        "CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
      }
    },
    {
      "name": "debug",
      "displayName": "Debug (no ASan)",
      "description": "Debug build without sanitizers",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_C_COMPILER": "clang",
        "CMAKE_CXX_COMPILER": "clang++",
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
      }
    },
    {
      "name": "debug-asan",
      "displayName": "Debug (ASan)",
      "description": "Debug build with Address Sanitizer",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_C_COMPILER": "clang",
        "CMAKE_CXX_COMPILER": "clang++",
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_CXX_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
        "CMAKE_C_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
        "CMAKE_EXE_LINKER_FLAGS": "-fsanitize=address",
        "CMAKE_SHARED_LINKER_FLAGS": "-fsanitize=address",
        "CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
      }
    },
    {
      "name": "debug-mac",
      "displayName": "Debug Mac (no ASan)",
      "description": "Debug Mac build without sanitizers",
      "binaryDir": "${sourceDir}/build",
      "generator": "Xcode",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
      }
    },
    {
      "name": "debug-mac-asan",
      "displayName": "Debug Mac (ASan)",
      "description": "Debug Mac build with Address Sanitizer",
      "binaryDir": "${sourceDir}/build",
      "generator": "Xcode",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_CXX_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
        "CMAKE_C_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
        "CMAKE_EXE_LINKER_FLAGS": "-fsanitize=address",
        "CMAKE_SHARED_LINKER_FLAGS": "-fsanitize=address",
        "CMAKE_INSTALL_PREFIX": "C:/Program Files/Seele"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "release",
      "displayName": "Release (no ASan)",
      "configurePreset": "release",
      "jobs": 14
    },
    {
      "name": "release-asan",
      "displayName": "Release (ASan)",
      "configurePreset": "release-asan",
      "jobs": 14
    },
    {
      "name": "debug",
      "displayName": "Debug (no ASan)",
      "configurePreset": "debug",
      "jobs": 14
    },
    {
      "name": "debug-mac",
      "displayName": "Debug Mac (no ASan)",
      "configurePreset": "debug-mac",
      "jobs": 14
    },
    {
      "name": "debug-mac-asan",
      "displayName": "Debug Mac (ASan)",
      "configurePreset": "debug-mac-asan",
      "jobs": 14
    },
    {
      "name": "debug-asan",
      "displayName": "Debug (ASan)",
      "configurePreset": "debug-asan",
      "jobs": 14
    }
  ]
}
