{
  "version": 3,
  "configurePresets": [
    {
      "name": "windows-base",
      "hidden": true,
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build/${presetName}",
      "installDir": "${sourceDir}/install/${presetName}",
      "cacheVariables": {
        "CMAKE_CXX_COMPILER": "cl.exe",
        "CMAKE_CXX_FLAGS": "/nologo /MP /volatile:iso /Zc:inline /Zc:preprocessor /EHsc /Zc:__cplusplus /Zc:externConstexpr /Zc:throwingNew"
      },
      "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Windows"
      }
    },
    {
      "name": "windows-debug",
      "hidden": true,
      "inherits": "windows-base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_CXX_FLAGS_DEBUG": "/Zi /Ob0 /Od /RTC1",
        "CMAKE_EXE_LINKER_FLAGS_DEBUG": "/nologo /DEBUG:FASTLINK",
        "CMAKE_SHARED_LINKER_FLAGS_DEBUG": "/nologo /DEBUG:FASTLINK",
        "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreadedDebugDLL"
      }
    },
    {
      "name": "windows-release",
      "hidden": true,
      "inherits": "windows-base",
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "CMAKE_CXX_FLAGS_RELEASE": "/O2 /Ob3 /GS- /DNDEBUG",
        "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreadedDLL"
      }
    },
    {
      "name": "win64-debug",
      "displayName": "Win64 Debug",
      "inherits": "windows-debug",
      "architecture": {
        "value": "x64",
        "strategy": "external"
      }
    },
    {
      "name": "win64-release",
      "displayName": "Win64 Release",
      "inherits": "windows-release",
      "architecture": {
        "value": "x64",
        "strategy": "external"
      }
    },
    {
      "name": "win32-debug",
      "displayName": "Win32 Debug",
      "inherits": "windows-debug",
      "architecture": {
        "value": "x86",
        "strategy": "external"
      }
    },
    {
      "name": "win32-release",
      "displayName": "Win32 Release",
      "inherits": "windows-release",
      "architecture": {
        "value": "x86",
        "strategy": "external"
      }
    },
    {
      "name": "win64-debug-shared",
      "displayName": "Win64 Debug Shared",
      "inherits": [
        "win64-debug"
      ],
      "cacheVariables": {
        "BUILD_SHARED_LIBS": "ON"
      }
    },
    {
      "name": "linux-base",
      "hidden": true,
      "generator": "Unix Makefiles",
      "binaryDir": "${sourceDir}/build/${presetName}",
      "installDir": "${sourceDir}/install/${presetName}",
      "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Linux"
      }
    },
    {
      "name": "clang-debug",
      "displayName": "Clang Debug",
      "inherits": [
        "linux-base"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_CXX_COMPILER": "clang++-19"
      }
    },
    {
      "name": "clang-release",
      "displayName": "Clang Release",
      "inherits": [
        "linux-base"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "CMAKE_CXX_COMPILER": "clang++-19"
      }
    },
    {
      "name": "gcc-debug-shared",
      "displayName": "GCC Debug Shared",
      "inherits": [
        "linux-base"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Debug",
        "CMAKE_CXX_COMPILER": "g++-12",
        "BUILD_SHARED_LIBS": "ON"
      }
    },
    {
      "name": "gcc-release",
      "displayName": "GCC Release",
      "inherits": [
        "linux-base"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "CMAKE_CXX_COMPILER": "g++-12"
      }
    },
    {
      "name": "gcc-10-release",
      "displayName": "GCC Release",
      "inherits": [
        "linux-base"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release",
        "CMAKE_CXX_COMPILER": "g++-10"
      }
    },
    {
      "name": "macos-base",
      "hidden": true,
      "generator": "Unix Makefiles",
      "binaryDir": "${sourceDir}/build/${presetName}",
      "installDir": "${sourceDir}/install/${presetName}",
      "condition": {
        "type": "equals",
        "lhs": "${hostSystemName}",
        "rhs": "Darwin"
      }
    },
    {
      "name": "macos-release",
      "displayName": "macOS Release",
      "inherits": [
        "macos-base"
      ],
      "cacheVariables": {
        "CMAKE_BUILD_TYPE": "Release"
      }
    }
  ]
}