{
    "version": 3,
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 24,
        "patch": 0
    },
    "configurePresets": [
        {
            "name": "cmake-pedantic",
            "hidden": true,
            "warnings": {
                "dev": true,
                "deprecated": true,
                "unusedCli": true,
                "systemVars": false
            }
        },
        {
            "name": "std",
            "description": "This preset makes sure the project actually builds with at least the specified standard",
            "hidden": true,
            "cacheVariables": {
                "CMAKE_CXX_EXTENSIONS": "OFF",
                "CMAKE_CXX_STANDARD": "20",
                "CMAKE_CXX_STANDARD_REQUIRED": "ON"
            }
        },
        {
            "name": "vcpkg",
            "hidden": true,
            "cacheVariables": {
              "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
              "VCPKG_INSTALL_OPTIONS": "--no-print-usage"
            }
        },
        {
            "name": "dev",
            "binaryDir": "${sourceDir}/build",
            "inherits": [
                "std",
                "vcpkg"
            ],
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
                "CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -fdiagnostics-color=always"
            }
        }
    ]
}
