{
    "version": 6,
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 19
    },
    "configurePresets": [
        {
            "name": "default",
            "generator": "Unix Makefiles",
            "binaryDir": "${sourceDir}/build/saunafs",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "RelWithDebInfo",
                "CODE_COVERAGE": "OFF",
                "ENABLE_CLIENT_LIB": "ON",
                "ENABLE_DOCS": "ON",
                "ENABLE_FOUNDATIONDB": "ON",
                "ENABLE_INODE64": "OFF",
                "ENABLE_NFS_GANESHA": "ON",
                "ENABLE_POLONAISE": "OFF",
                "ENABLE_TESTS": "ON",
                "ENABLE_URAFT": "ON",
                "ENABLE_WERROR": "ON",
                "GSH_CAN_HOST_LOCAL_FS": "ON",
                "SAUNAFS_TEST_POINTER_OBFUSCATION": "ON"
            },
            "hidden": true,
            "condition": {
                "type": "notEquals",
                "lhs": "${hostSystemName}",
                "rhs": "Windows"
            }
        },
        {
            "name": "vcpkg",
            "toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
            "hidden": true
        },
        {
            "name": "windows-default",
            "generator": "MinGW Makefiles",
            "binaryDir": "${sourceDir}/build/saunafs",
            "installDir": "${sourceDir}/install/saunafs/",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "RelWithDebInfo",
                "CMAKE_CXX_COMPILER": "C:/msys64/mingw64/bin/g++.exe",
                "CMAKE_C_COMPILER": "C:/msys64/mingw64/bin/gcc.exe",
                "CMAKE_MAKE_PROGRAM": "C:/msys64/mingw64/bin/mingw32-make.exe",
                "CODE_COVERAGE": "OFF",
                "ENABLE_CLIENT_LIB": "OFF",
                "ENABLE_DOCS": "OFF",
                "ENABLE_FOUNDATIONDB": "OFF",
                "ENABLE_NFS_ACL_SUPPORT": "OFF",
                "ENABLE_NFS_GANESHA": "OFF",
                "ENABLE_POLONAISE": "OFF",
                "ENABLE_PROMETHEUS": "OFF",
                "ENABLE_TESTS": "OFF",
                "ENABLE_URAFT": "OFF",
                "ENABLE_WERROR": "ON",
                "GSH_CAN_HOST_LOCAL_FS": "OFF",
                "SAUNAFS_TEST_POINTER_OBFUSCATION": "OFF",
                "SOCKET_LIBRARIES": "C:/msys64/mingw64/lib/libws2_32.a"
            },
            "hidden": true,
            "condition": {
                "type": "equals",
                "lhs": "${hostSystemName}",
                "rhs": "Windows"
            }
        },
        {
            "name": "windows",
            "inherits": ["windows-default", "vcpkg"],
            "cacheVariables": {
                "VCPKG_DEFAULT_TRIPLET": "x64-mingw-static",
                "VCPKG_HOST_TRIPLET": "x64-mingw-static",
                "VCPKG_TARGET_TRIPLET": "x64-mingw-static"
            }
        },
        {
            "name": "debug",
            "binaryDir": "${sourceDir}/build/saunafs/debug",
            "installDir": "${sourceDir}/install/saunafs/",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug"
            },
            "inherits": "default"
        },
        {
            "name": "coverage",
            "binaryDir": "${sourceDir}/build/saunafs/coverage",
            "installDir": "${sourceDir}/install/saunafs/",
            "cacheVariables": {
                "CODE_COVERAGE": "ON"
            },
            "inherits": "default"
        },
        {
            "name": "test",
            "installDir": "${sourceDir}/install/saunafs/",
            "inherits": "default"
        },
        {
            "name": "release",
            "binaryDir": "${sourceDir}/build/saunafs/release",
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_INSTALL_PREFIX": "/",
                "ENABLE_TESTS": "OFF",
                "ENABLE_WERROR": "OFF",
                "SAUNAFS_TEST_POINTER_OBFUSCATION": "OFF",
                "ENABLE_FOUNDATIONDB": "OFF"
            },
            "inherits": "default"
        },
        {
            "name": "debug-vcpkg",
            "inherits": ["debug", "vcpkg"]
        },
        {
            "name": "release-vcpkg",
            "inherits": ["release", "vcpkg"]
        },
        {
            "name": "coverage-vcpkg",
            "inherits": ["coverage", "vcpkg"]
        },
        {
            "name": "test-vcpkg",
            "inherits": ["test", "vcpkg"]
        }
    ],
    "buildPresets": [
        {
            "name": "default",
            "hidden": true
        },
        {
            "name": "windows",
            "configurePreset": "windows",
            "inherits": ["default"]
        },
        {
            "name": "test",
            "configurePreset": "test",
            "inherits": ["default"]
        },
        {
            "name": "debug",
            "configurePreset": "debug",
            "inherits": ["default"]
        },
        {
            "name": "coverage",
            "configurePreset": "coverage",
            "inherits": ["default"]
        },
        {
            "name": "release",
            "configurePreset": "release",
            "inherits": ["default"]
        },
        {
            "name": "debug-vcpkg",
            "configurePreset": "debug-vcpkg",
            "inherits": ["default"]
        },
        {
            "name": "release-vcpkg",
            "configurePreset": "release-vcpkg",
            "inherits": ["default"]
        },
        {
            "name": "coverage-vcpkg",
            "configurePreset": "coverage-vcpkg",
            "inherits": ["default"]
        },
        {
            "name": "test-vcpkg",
            "configurePreset": "test-vcpkg",
            "inherits": ["default"]
        }
    ],
    "workflowPresets": [
        {
            "name": "debug",
            "steps": [
                {
                    "type": "configure",
                    "name": "debug"
                },
                {
                    "type": "build",
                    "name": "debug"
                }
            ]
        },
        {
            "name": "windows",
            "steps": [
                {
                    "type": "configure",
                    "name": "windows"
                },
                {
                    "type": "build",
                    "name": "windows"
                }
            ]
        },
        {
            "name": "release",
            "steps": [
                {
                    "type": "configure",
                    "name": "release"
                },
                {
                    "type": "build",
                    "name": "release"
                },
                {
                    "type": "package",
                    "name": "release"
                }
            ]
        },
        {
            "name": "test",
            "steps": [
                {
                    "type": "configure",
                    "name": "test"
                },
                {
                    "type": "build",
                    "name": "test"
                }
            ]
        },
        {
            "name": "coverage",
            "steps": [
                {
                    "type": "configure",
                    "name": "coverage"
                },
                {
                    "type": "build",
                    "name": "coverage"
                }
            ]
        },
        {
            "name": "debug-vcpkg",
            "steps": [
                {
                    "type": "configure",
                    "name": "debug-vcpkg"
                },
                {
                    "type": "build",
                    "name": "debug-vcpkg"
                }
            ]
        },
        {
            "name": "release-vcpkg",
            "steps": [
                {
                    "type": "configure",
                    "name": "release-vcpkg"
                },
                {
                    "type": "build",
                    "name": "release-vcpkg"
                },
                {
                    "type": "package",
                    "name": "release-vcpkg"
                }
            ]
        },
        {
            "name": "coverage-vcpkg",
            "steps": [
                {
                    "type": "configure",
                    "name": "coverage-vcpkg"
                },
                {
                    "type": "build",
                    "name": "coverage-vcpkg"
                }
            ]
        },
        {
            "name": "test-vcpkg",
            "steps": [
                {
                    "type": "configure",
                    "name": "test-vcpkg"
                },
                {
                    "type": "build",
                    "name": "test-vcpkg"
                }
            ]
        }
    ],
    "packagePresets": [
        {
            "name": "release",
            "configurePreset": "release",
            "generators": ["DEB"]
        },
        {
            "name": "release-vcpkg",
            "configurePreset": "release-vcpkg",
            "generators": ["DEB"]
        }
    ]
}
