{
    "version": 3,
    "configurePresets": [
        {
            "name": "bindir",
            "hidden": true,
            "binaryDir": "build/${presetName}"
        },
        {
            "name": "vcpkg",
            "hidden": true,
            "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
        },
        {
            "name": "dev-base",
            "hidden": true,
            "inherits": [
                "bindir",
                "vcpkg"
            ],
            "generator": "Ninja",
            "cacheVariables": {
                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
                "CMAKE_BUILD_TYPE": "Debug"
            }
        },
        {
            "name": "dev",
            "inherits": [
                "dev-base"
            ],
            "displayName": "Development"
        },
        {
            "name": "dev-make-clang",
            "inherits": [
                "dev-make"
            ],
            "cacheVariables": {
                "CMAKE_CXX_COMPILER": "clang++"
            }
        },
        {
            "name": "dev-vs",
            "inherits": [
                "dev-base"
            ],
            "generator": "Visual Studio 17 2022",
            "displayName": "Development (Visual Studio)"
        },
        {
            "name": "dist",
            "inherits": ["bindir", "vcpkg"],
            "generator": "Ninja",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release"
            }
        }
    ],
    "buildPresets": [
        {
            "name": "dev-make",
            "configurePreset": "dev-make"
        },
        {
            "name": "dev-ninja",
            "configurePreset": "dev-ninja"
        },
        {
            "name": "dev-make-clang",
            "configurePreset": "dev-make-clang"
        },
        {
            "name": "dev-vs",
            "configurePreset": "dev-vs"
        },
        {
            "name": "dist",
            "configurePreset": "dist"
        }
    ]
}