{
  "version": 6,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 24,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "base",
      "hidden": true,
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/${presetName}",
      "cacheVariables": {
        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/install/${presetName}",
        "NQQ_BUILD_TESTS": "ON"
      }
    },
    {
      "name": "dev",
      "displayName": "Developer Debug",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "ci",
      "displayName": "CI Debug",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    },
    {
      "name": "release",
      "displayName": "Release",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    },
    {
      "name": "asan",
      "displayName": "AddressSanitizer",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "NQQ_ENABLE_ASAN": "ON"
      }
    },
    {
      "name": "ubsan",
      "displayName": "UndefinedBehaviorSanitizer",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "NQQ_ENABLE_UBSAN": "ON"
      }
    },
    {
      "name": "clang-tidy",
      "displayName": "Clang-Tidy",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_CXX_CLANG_TIDY": "clang-tidy"
      }
    },
    {
      "name": "clazy",
      "displayName": "Clazy",
      "inherits": "base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "dev",
      "configurePreset": "dev"
    },
    {
      "name": "ci",
      "configurePreset": "ci"
    },
    {
      "name": "release",
      "configurePreset": "release"
    },
    {
      "name": "asan",
      "configurePreset": "asan"
    },
    {
      "name": "ubsan",
      "configurePreset": "ubsan"
    },
    {
      "name": "clang-tidy",
      "configurePreset": "clang-tidy"
    },
    {
      "name": "clazy",
      "configurePreset": "clazy"
    }
  ],
  "testPresets": [
    {
      "name": "release",
      "configurePreset": "release",
      "output": {
        "outputOnFailure": true
      }
    },
    {
      "name": "dev",
      "configurePreset": "dev",
      "output": {
        "outputOnFailure": true
      }
    },
    {
      "name": "ci",
      "configurePreset": "ci",
      "output": {
        "outputOnFailure": true
      }
    },
    {
      "name": "asan",
      "configurePreset": "asan",
      "output": {
        "outputOnFailure": true
      }
    },
    {
      "name": "ubsan",
      "configurePreset": "ubsan",
      "output": {
        "outputOnFailure": true
      }
    },
    {
      "name": "clang-tidy",
      "configurePreset": "clang-tidy",
      "output": {
        "outputOnFailure": true
      }
    },
    {
      "name": "clazy",
      "configurePreset": "clazy",
      "output": {
        "outputOnFailure": true
      }
    }
  ]
}
