{
  "version": 2,
  "configurePresets": [
    {
      "name": "default",
      "displayName": "Default Config",
      "description": "Sets common properties",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/${presetName}",
      "cacheVariables": {
        "CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
      }
    },
    {
      "name": "clang-tidy",
      "inherits": "default",
      "generator": "Unix Makefiles",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_C_COMPILER": "clang-14",
        "CMAKE_CXX_COMPILER": "clang++-14",
        "CMAKE_CXX_CLANG_TIDY": "clang-tidy-14"
      }
    },
    {
      "name": "debug-clang14",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_C_COMPILER": "clang-14",
        "CMAKE_CXX_COMPILER": "clang++-14"
      }
    },
    {
      "name": "debug-gcc11",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_C_COMPILER": "gcc-11",
        "CMAKE_CXX_COMPILER": "g++-11"
      }
    },
    {
      "name": "release-clang14",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "CMAKE_C_COMPILER": "clang-14",
        "CMAKE_CXX_COMPILER": "clang++-14"
      }
    },
    {
      "name": "release-gcc11",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "CMAKE_C_COMPILER": "gcc-11",
        "CMAKE_CXX_COMPILER": "g++-11"
      }
    },
    {
      "name": "debug-clang",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_C_COMPILER": "clang",
        "CMAKE_CXX_COMPILER": "clang++"
      }
    },
    {
      "name": "release-clang",
      "inherits": "default",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "RelWithDebInfo",
        "CMAKE_C_COMPILER": "clang",
        "CMAKE_CXX_COMPILER": "clang++"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "debug-clang14",
      "configurePreset": "debug-clang14"
    },
    {
      "name": "debug-gcc11",
      "configurePreset": "debug-gcc11"
    },
    {
      "name": "release-clang14",
      "configurePreset": "release-clang14"
    },
    {
      "name": "release-gcc11",
      "configurePreset": "release-gcc11"
    }
  ]
}