{
  "version": 8,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 29,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "base",
      "hidden": true,
      "binaryDir": "${sourceDir}/out/build/${presetName}",
      "cacheVariables": {
        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
        "PP_BUILD_APP": "ON",
        "PP_BUILD_TESTS": "ON",
        "PP_BUILD_TOOLS": "ON",
        "PP_ENABLE_OPENGL": "ON",
        "PP_ENABLE_VULKAN_EXPERIMENTAL": "OFF",
        "PP_ENABLE_VR": "ON",
        "PP_ENABLE_CLOUD": "ON",
        "PP_ENABLE_VIDEO": "ON"
      }
    },
    {
      "name": "platform-headless-base",
      "hidden": true,
      "inherits": "base",
      "cacheVariables": {
        "PP_BUILD_APP": "OFF",
        "PP_ENABLE_CLOUD": "OFF",
        "PP_ENABLE_VIDEO": "OFF"
      }
    },
    {
      "name": "windows-vs2026-x64",
      "inherits": "base",
      "displayName": "Windows VS 2026 x64",
      "generator": "Visual Studio 18 2026",
      "architecture": "x64"
    },
    {
      "name": "windows-msvc-default",
      "inherits": "base",
      "displayName": "Windows MSVC default generator",
      "generator": "Visual Studio 18 2026",
      "architecture": "x64"
    },
    {
      "name": "windows-msvc-vcpkg-headless",
      "inherits": "platform-headless-base",
      "displayName": "Windows MSVC vcpkg headless",
      "generator": "Visual Studio 18 2026",
      "architecture": "x64",
      "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
      "cacheVariables": {
        "PP_USE_VCPKG_TINYXML2": "ON"
      }
    },
    {
      "name": "windows-clangcl-asan",
      "inherits": "platform-headless-base",
      "displayName": "Windows clang-cl ASan",
      "generator": "Ninja",
      "cacheVariables": {
        "CMAKE_C_COMPILER": "clang-cl",
        "CMAKE_CXX_COMPILER": "clang-cl",
        "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreadedDLL",
        "PP_ENABLE_ASAN": "ON",
        "PP_ENABLE_UBSAN": "OFF"
      }
    },
    {
      "name": "linux-clang",
      "inherits": "platform-headless-base",
      "displayName": "Linux clang",
      "generator": "Ninja",
      "cacheVariables": {
        "CMAKE_C_COMPILER": "clang",
        "CMAKE_CXX_COMPILER": "clang++"
      }
    },
    {
      "name": "android-base",
      "hidden": true,
      "inherits": "platform-headless-base",
      "generator": "Ninja",
      "toolchainFile": "$env{ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake",
      "cacheVariables": {
        "ANDROID_PLATFORM": "android-26",
        "ANDROID_STL": "c++_shared",
        "PP_ENABLE_VR": "OFF",
        "PP_ENABLE_OPENGL": "ON"
      }
    },
    {
      "name": "android-arm64",
      "inherits": "android-base",
      "displayName": "Android arm64-v8a",
      "cacheVariables": {
        "ANDROID_ABI": "arm64-v8a"
      }
    },
    {
      "name": "android-x64",
      "inherits": "android-base",
      "displayName": "Android x86_64",
      "cacheVariables": {
        "ANDROID_ABI": "x86_64"
      }
    },
    {
      "name": "android-quest-arm64",
      "inherits": "android-base",
      "displayName": "Android Quest arm64-v8a",
      "cacheVariables": {
        "ANDROID_ABI": "arm64-v8a",
        "PP_ENABLE_VR": "ON",
        "PP_ANDROID_FLAVOR": "quest"
      }
    },
    {
      "name": "android-focus-arm64",
      "inherits": "android-base",
      "displayName": "Android Focus/Wave arm64-v8a",
      "cacheVariables": {
        "ANDROID_ABI": "arm64-v8a",
        "PP_ENABLE_VR": "ON",
        "PP_ANDROID_FLAVOR": "focus"
      }
    },
    {
      "name": "emscripten",
      "inherits": "platform-headless-base",
      "displayName": "Emscripten WebGL",
      "generator": "Ninja",
      "cacheVariables": {
        "PP_ENABLE_VR": "OFF",
        "PP_ENABLE_VIDEO": "OFF"
      }
    },
    {
      "name": "macos",
      "inherits": "platform-headless-base",
      "displayName": "macOS",
      "generator": "Ninja"
    },
    {
      "name": "ios-device",
      "inherits": "platform-headless-base",
      "displayName": "iOS device",
      "generator": "Xcode",
      "cacheVariables": {
        "CMAKE_SYSTEM_NAME": "iOS",
        "CMAKE_OSX_SYSROOT": "iphoneos"
      }
    },
    {
      "name": "ios-simulator",
      "inherits": "platform-headless-base",
      "displayName": "iOS simulator",
      "generator": "Xcode",
      "cacheVariables": {
        "CMAKE_SYSTEM_NAME": "iOS",
        "CMAKE_OSX_SYSROOT": "iphonesimulator"
      }
    }
  ],
  "buildPresets": [
    {
      "name": "windows-vs2026-x64",
      "configurePreset": "windows-vs2026-x64"
    },
    {
      "name": "windows-msvc-default",
      "configurePreset": "windows-msvc-default"
    },
    {
      "name": "windows-msvc-vcpkg-headless",
      "configurePreset": "windows-msvc-vcpkg-headless"
    },
    {
      "name": "windows-clangcl-asan",
      "configurePreset": "windows-clangcl-asan"
    },
    {
      "name": "linux-clang",
      "configurePreset": "linux-clang"
    },
    {
      "name": "android-arm64",
      "configurePreset": "android-arm64"
    },
    {
      "name": "android-x64",
      "configurePreset": "android-x64"
    },
    {
      "name": "android-quest-arm64",
      "configurePreset": "android-quest-arm64"
    },
    {
      "name": "android-focus-arm64",
      "configurePreset": "android-focus-arm64"
    },
    {
      "name": "emscripten",
      "configurePreset": "emscripten"
    },
    {
      "name": "macos",
      "configurePreset": "macos"
    },
    {
      "name": "ios-device",
      "configurePreset": "ios-device"
    },
    {
      "name": "ios-simulator",
      "configurePreset": "ios-simulator"
    }
  ],
  "testPresets": [
    {
      "name": "desktop-fast",
      "configurePreset": "windows-msvc-default",
      "output": {
        "outputOnFailure": true
      },
      "filter": {
        "exclude": {
          "label": "gpu|slow|platform"
        }
      }
    },
    {
      "name": "desktop-fast-vs2026",
      "configurePreset": "windows-vs2026-x64",
      "output": {
        "outputOnFailure": true
      },
      "filter": {
        "exclude": {
          "label": "gpu|slow|platform"
        }
      }
    },
    {
      "name": "desktop-fast-vcpkg",
      "configurePreset": "windows-msvc-vcpkg-headless",
      "output": {
        "outputOnFailure": true
      },
      "filter": {
        "exclude": {
          "label": "gpu|slow|platform"
        }
      }
    },
    {
      "name": "desktop-gpu",
      "configurePreset": "windows-msvc-default",
      "output": {
        "outputOnFailure": true
      },
      "filter": {
        "include": {
          "label": "gpu"
        }
      }
    },
    {
      "name": "fuzz",
      "configurePreset": "windows-msvc-default",
      "output": {
        "outputOnFailure": true
      },
      "filter": {
        "include": {
          "label": "fuzz"
        }
      }
    },
    {
      "name": "stress",
      "configurePreset": "windows-msvc-default",
      "output": {
        "outputOnFailure": true
      },
      "filter": {
        "include": {
          "label": "stress"
        }
      }
    }
  ]
}
