{
  "version": 6,
  "configurePresets": [
    {
      "name":        "generic-gcc-ninja",
      "displayName": "Generic (gcc-ninja)",
      "description": "Basic configuration with the GCC toolchain using Ninja generator.",
      "generator":   "Ninja Multi-Config",
      "binaryDir":   "${sourceDir}/build/${presetName}",
      "cacheVariables": {
        "CMAKE_CXX_COMPILER": "g++"
      }
    },
    {
      "name":        "generic-clang++",
      "displayName": "Generic (clang-ninja)",
      "description": "Basic configuration with the LLVM toolchain using Ninja generator.",
      "generator":   "Ninja Multi-Config",
      "binaryDir":   "${sourceDir}/build/${presetName}",
      "cacheVariables": {
        "CMAKE_CXX_COMPILER": "clang++"
      }
    }
  ],
  "buildPresets": [
    {
      "name":            "build-debug-gcc-ninja",
      "displayName":     "Debug (gcc-ninja)",
      "description":     "Compile a debug build using GCC.",
      "configurePreset": "generic-gcc-ninja",
      "configuration":   "Debug"
    },
    {
      "name":            "build-release-gcc-ninja",
      "displayName":     "Release (gcc-ninja)",
      "description":     "Compile a release build using GCC.",
      "configurePreset": "generic-gcc-ninja",
      "configuration":   "Release"
    }
  ]
}

