{ "version": 6, "cmakeMinimumRequired": { "major": 3, "minor": 25, "patch": 0 }, "configurePresets": [ { "name": "default", "displayName": "Default configure step", "description": "Use 'build' dir and Unix makefiles", "binaryDir": "${sourceDir}/build", "generator": "Unix Makefiles" }, { "name": "debug-config", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" } }, { "name": "release-config", "hidden": true, "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, { "name": "clang-config", "hidden": true, "toolchainFile": "${sourceDir}/cmake/toolchains/linux-clang.cmake" }, { "name": "gnu-config", "hidden": true, "toolchainFile": "${sourceDir}/cmake/toolchains/linux-gnu.cmake" }, { "name": "windows-msvc", "displayName": "[Multi] Windows (MSVC)", "description": "Set architecture to 64-bit (b/c RakNet)", "inherits": "default", "generator": "Visual Studio 17 2022", "architecture": { "value": "x64" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" }, "cacheVariables": { "CMAKE_CXX_FLAGS_INIT": "/Zc:inline" } }, { "name": "windows-default", "inherits": "windows-msvc", "displayName": "Windows only Configure Settings", "description": "Sets build and install directories", "generator": "Ninja", "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" }, "architecture": { "value": "x64", "strategy": "external" } }, { "name": "linux-config", "inherits": "default", "hidden": true, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" } }, { "name": "macos-config", "inherits": "default", "hidden": true, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "linux-clang-debug", "inherits": [ "linux-config", "clang-config", "debug-config" ], "displayName": "[Debug] Linux (Clang)", "description": "Create a debug build using the Clang toolchain for Linux" }, { "name": "linux-clang-release", "inherits": [ "linux-config", "clang-config", "release-config" ], "displayName": "[Release] Linux (Clang)", "description": "Create a release build using the Clang toolchain for Linux" }, { "name": "linux-gnu-debug", "inherits": [ "linux-config", "gnu-config", "debug-config" ], "displayName": "[Debug] Linux (GNU)", "description": "Create a debug build using the GNU toolchain for Linux" }, { "name": "linux-gnu-release", "inherits": [ "linux-config", "gnu-config", "release-config" ], "displayName": "[Release] Linux (GNU)", "description": "Create a release build using the GNU toolchain for Linux" }, { "name": "macos-debug", "inherits": [ "macos-config", "debug-config" ], "displayName": "[Debug] MacOS", "description": "Create a debug build using MacOS" }, { "name": "macos-release", "inherits": [ "macos-config", "release-config" ], "displayName": "[Release] MacOS", "description": "Create a release build using MacOS" } ], "buildPresets": [ { "name": "default", "configurePreset": "default", "displayName": "Default Build", "description": "Default Build", "jobs": 2 }, { "name": "windows-msvc-debug", "configurePreset": "windows-msvc", "displayName": "[Debug] Windows (MSVC)", "description": "This preset is used to build in debug mode using the MSVC toolchain on Windows", "configuration": "Debug", "jobs": 2 }, { "name": "windows-msvc-release", "configurePreset": "windows-msvc", "displayName": "[Release] Windows (MSVC)", "description": "This preset is used to build in release mode using the MSVC toolchain on Windows", "configuration": "Release", "jobs": 2 }, { "name": "linux-clang-debug", "configurePreset": "linux-clang-debug", "displayName": "[Debug] Linux (Clang)", "description": "This preset is used to build in debug mode using the Clang toolchain on Linux", "configuration": "Debug", "jobs": 2 }, { "name": "linux-clang-release", "configurePreset": "linux-clang-release", "displayName": "[Release] Linux (Clang)", "description": "This preset is used to build in release mode using the Clang toolchain on Linux", "configuration": "Release", "jobs": 2 }, { "name": "linux-gnu-debug", "configurePreset": "linux-gnu-debug", "displayName": "[Debug] Linux (GNU)", "description": "This preset is used to build in debug mode using the GNU toolchain on Linux", "configuration": "Debug", "jobs": 2 }, { "name": "linux-gnu-release", "configurePreset": "linux-gnu-release", "displayName": "[Release] Linux (GNU)", "description": "This preset is used to build in release mode using the GNU toolchain on Linux", "configuration": "Release", "jobs": 2 }, { "name": "macos-debug", "configurePreset": "macos-debug", "displayName": "[Debug] MacOS", "description": "This preset is used to build in debug mode on MacOS", "jobs": 2 }, { "name": "macos-release", "configurePreset": "macos-release", "displayName": "[Release] MacOS", "description": "This preset is used to build in release mode on MacOS", "jobs": 2 } ], "testPresets": [ { "name": "default", "configurePreset": "default", "execution": { "jobs": 2 }, "output": { "outputOnFailure": true } }, { "name": "windows-msvc", "inherits": "default", "configurePreset": "windows-msvc", "displayName": "[Multi] Windows (MSVC)", "description": "Runs all tests on a Windows configuration", "configuration": "Release", "filter": { "exclude": { "name": "((example)|(minigzip))+" } } }, { "name": "linux-clang-debug", "inherits": "default", "configurePreset": "linux-clang-debug", "displayName": "[Debug] Linux (Clang)", "description": "Runs all tests on a Linux Clang configuration", "configuration": "Release" }, { "name": "linux-clang-release", "inherits": "default", "configurePreset": "linux-clang-release", "displayName": "[Release] Linux (Clang)", "description": "Runs all tests on a Linux Clang configuration", "configuration": "Release" }, { "name": "linux-gnu-debug", "inherits": "default", "configurePreset": "linux-gnu-debug", "displayName": "[Debug] Linux (GNU)", "description": "Runs all tests on a Linux GNU configuration", "configuration": "Release" }, { "name": "linux-gnu-release", "inherits": "default", "configurePreset": "linux-gnu-release", "displayName": "[Release] Linux (GNU)", "description": "Runs all tests on a Linux GNU configuration", "configuration": "Release" }, { "name": "macos-debug", "inherits": "default", "configurePreset": "macos-debug", "displayName": "[Debug] MacOS", "description": "Runs all tests on a MacOS configuration", "configuration": "Debug" }, { "name": "macos-release", "inherits": "default", "configurePreset": "macos-release", "displayName": "[Release] MacOS", "description": "Runs all tests on a MacOS configuration", "configuration": "Release" } ], "workflowPresets": [ { "name": "default", "steps": [ { "type": "configure", "name": "default" }, { "type": "build", "name": "default" }, { "type": "test", "name": "default" } ] }, { "name": "ci-windows-2022", "displayName": "Windows CI Workflow", "description": "CI workflow preset for Windows", "steps": [ { "type": "configure", "name": "windows-msvc" }, { "type": "build", "name": "windows-msvc-release" }, { "type": "test", "name": "windows-msvc" } ] }, { "name": "ci-ubuntu-22.04", "displayName": "Ubuntu CI Workflow", "description": "CI workflow preset for Ubuntu", "steps": [ { "type": "configure", "name": "linux-gnu-release" }, { "type": "build", "name": "linux-gnu-release" }, { "type": "test", "name": "linux-gnu-release" } ] }, { "name": "linux-clang-release", "displayName": "Build using Clang on Linux", "description": "Clang workflow preset for Linux", "steps": [ { "type": "configure", "name": "linux-clang-release" }, { "type": "build", "name": "linux-clang-release" }, { "type": "test", "name": "linux-clang-release" } ] }, { "name": "ci-macos-13", "displayName": "MacOS CI Workflow", "description": "CI workflow preset for MacOS", "steps": [ { "type": "configure", "name": "macos-release" }, { "type": "build", "name": "macos-release" }, { "type": "test", "name": "macos-release" } ] } ] }