DarkflameServer/CMakePresets.json
2024-04-05 18:10:09 -05:00

370 lines
9.5 KiB
JSON

{
"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-base",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "release-base",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "clang-base",
"hidden": true,
"toolchainFile": "${sourceDir}/cmake/toolchains/linux-clang.cmake"
},
{
"name": "gcc-base",
"hidden": true,
"toolchainFile": "${sourceDir}/cmake/toolchains/linux-gcc.cmake"
},
{
"name": "ci-windows-2022",
"displayName": "CI configure step for Windows",
"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": "ci-windows-2022",
"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-base",
"inherits": "default",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
}
},
{
"name": "macos-base",
"inherits": "default",
"hidden": true,
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
}
},
{
"name": "linux-clang-debug",
"inherits": [
"linux-base",
"clang-base",
"debug-base"
],
"displayName": "[Debug] Linux (Clang)",
"description": "Create a debug build using the Clang toolchain for Linux"
},
{
"name": "linux-clang-release",
"inherits": [
"linux-base",
"clang-base",
"release-base"
],
"displayName": "[Release] Linux (Clang)",
"description": "Create a release build using the Clang toolchain for Linux"
},
{
"name": "linux-gcc-debug",
"inherits": [
"linux-base",
"gcc-base",
"debug-base"
],
"displayName": "[Debug] Linux (GCC)",
"description": "Create a debug build using the GNU toolchain for Linux"
},
{
"name": "linux-gcc-release",
"inherits": [
"linux-base",
"gcc-base",
"release-base"
],
"displayName": "[Release] Linux (GCC)",
"description": "Create a release build using the GNU toolchain for Linux"
},
{
"name": "macos-debug",
"inherits": [
"macos-base",
"release-base"
],
"displayName": "[Debug] MacOS",
"description": "Create a debug build using MacOS"
},
{
"name": "macos-release",
"inherits": [
"macos-base",
"release-base"
],
"displayName": "[Release] MacOS",
"description": "Create a release build using MacOS"
}
],
"buildPresets": [
{
"name": "default",
"configurePreset": "default",
"displayName": "Default Build",
"description": "Default Build",
"jobs": 2
},
{
"name": "ci-windows-2022",
"configurePreset": "ci-windows-2022",
"displayName": "Windows CI Build",
"description": "This preset is used by the CI build 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-gcc-debug",
"configurePreset": "linux-gcc-debug",
"displayName": "[Debug] Linux (GCC)",
"description": "This preset is used to build in debug mode using the GCC toolchain on Linux",
"configuration": "Debug",
"jobs": 2
},
{
"name": "linux-gcc-release",
"configurePreset": "linux-gcc-release",
"displayName": "[Release] Linux (GCC)",
"description": "This preset is used to build in release mode using the GCC 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",
"configuration": "Debug",
"jobs": 2
},
{
"name": "macos-release",
"configurePreset": "macos-release",
"displayName": "[Release] MacOS",
"description": "This preset is used to build in release mode on MacOS",
"configuration": "Release",
"jobs": 2
}
],
"testPresets": [
{
"name": "default",
"configurePreset": "default",
"execution": {
"jobs": 2
},
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-windows-2022",
"inherits": "default",
"configurePreset": "ci-windows-2022",
"displayName": "CI Tests on windows",
"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-gcc-debug",
"inherits": "default",
"configurePreset": "linux-gcc-debug",
"displayName": "[Debug] Linux (GCC)",
"description": "Runs all tests on a Linux GCC configuration",
"configuration": "Release"
},
{
"name": "linux-gcc-release",
"inherits": "default",
"configurePreset": "linux-gcc-release",
"displayName": "[Release] Linux (GCC)",
"description": "Runs all tests on a Linux GCC configuration",
"configuration": "Release"
},
{
"name": "macos-debug",
"inherits": "default",
"configurePreset": "macos-debug",
"displayName": "[Debug] MacOS",
"description": "Runs all tests on a MacOS configuration",
"configuration": "Release"
},
{
"name": "macos-release",
"inherits": "default",
"configurePreset": "macos-release",
"displayName": "[Release] MacOS",
"description": "Runs all tests on a MacOS configuration",
"configuration": "Release"
}
],
"workflowPresets": [
{
"name": "ci-windows-2022",
"displayName": "Windows CI Workflow",
"description": "CI workflow preset for Windows",
"steps": [
{
"type": "configure",
"name": "ci-windows-2022"
},
{
"type": "build",
"name": "ci-windows-2022"
},
{
"type": "test",
"name": "ci-windows-2022"
}
]
},
{
"name": "ci-ubuntu-22.04",
"displayName": "Ubuntu CI Workflow",
"description": "CI workflow preset for Ubuntu",
"steps": [
{
"type": "configure",
"name": "linux-gcc-release"
},
{
"type": "build",
"name": "linux-gcc-release"
},
{
"type": "test",
"name": "linux-gcc-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"
}
]
}
]
}