253 lines
7.9 KiB
JSON
253 lines
7.9 KiB
JSON
{
|
|
"version": 2,
|
|
"cmakeMinimumRequired": {
|
|
"major": 3,
|
|
"minor": 21,
|
|
"patch": 0
|
|
},
|
|
"configurePresets": [
|
|
{
|
|
"name": "base",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"CMAKE_CXX_FLAGS": "$env{COMMONLIBSSE_COMPILER} $env{COMMONLIBSSE_PLATFORM} $env{COMMONLIBSSE_TEXT}"
|
|
}
|
|
},
|
|
{
|
|
"name": "vcpkg",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
|
|
"VCPKG_TARGET_TRIPLET": "x64-windows-skse",
|
|
"VCPKG_HOST_TRIPLET": "x64-windows-skse",
|
|
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/cmake",
|
|
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL"
|
|
}
|
|
},
|
|
{
|
|
"name": "win32",
|
|
"hidden": true,
|
|
"environment": {
|
|
"COMMONLIBSSE_PLATFORM": "-DWIN32_LEAN_AND_MEAN -DNOMINMAX"
|
|
}
|
|
},
|
|
{
|
|
"name": "win32-unicode",
|
|
"hidden": true,
|
|
"inherits": "win32",
|
|
"environment": {
|
|
"COMMONLIBSSE_TEXT": "-DUNICODE -D_UNICODE"
|
|
}
|
|
},
|
|
{
|
|
"name": "x64",
|
|
"hidden": true,
|
|
"architecture": {
|
|
"value": "x64",
|
|
"strategy": "external"
|
|
}
|
|
},
|
|
{
|
|
"name": "msvc",
|
|
"hidden": true,
|
|
"environment": {
|
|
"COMMONLIBSSE_COMPILER": "/permissive- /Zc:preprocessor /EHsc $penv{CXXFLAGS}"
|
|
},
|
|
"vendor": {
|
|
"microsoft.com/VisualStudioSettings/CMake/1.0": {
|
|
"intelliSenseMode": "windows-msvc-x64",
|
|
"enableMicrosoftCodeAnalysis": true,
|
|
"enableClangTidyCodeAnalysis": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "clang-cl",
|
|
"hidden": true,
|
|
"cacheVariables": {
|
|
"CMAKE_C_COMPILER": "clang-cl",
|
|
"CMAKE_CXX_COMPILER": "clang-cl"
|
|
},
|
|
"environment": {
|
|
"COMMONLIBSSE_COMPILER": "/permissive- /EHsc -Wno-overloaded-virtual -Wno-delete-non-abstract-non-virtual-dtor -D__cpp_lib_char8_t -D__cpp_consteval -D__cpp_lib_format $penv{CXXFLAGS}"
|
|
},
|
|
"vendor": {
|
|
"microsoft.com/VisualStudioSettings/CMake/1.0": {
|
|
"intelliSenseMode": "windows-clang-x64",
|
|
"enableMicrosoftCodeAnalysis": true,
|
|
"enableClangTidyCodeAnalysis": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "build-tests",
|
|
"displayName": "Build Tests",
|
|
"hidden": true,
|
|
"description": "Include test suites in the build.",
|
|
"cacheVariables": {
|
|
"BUILD_TESTS": {
|
|
"type": "STRING",
|
|
"value": "ON"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "build-release-msvc",
|
|
"inherits": [
|
|
"base",
|
|
"vcpkg",
|
|
"win32-unicode",
|
|
"x64",
|
|
"build-tests",
|
|
"msvc"
|
|
],
|
|
"displayName": "Release",
|
|
"description": "Optimized release build.",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/release-msvc",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": {
|
|
"type": "STRING",
|
|
"value": "Release"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "build-debug-msvc",
|
|
"inherits": [
|
|
"base",
|
|
"vcpkg",
|
|
"win32-unicode",
|
|
"x64",
|
|
"build-tests",
|
|
"msvc"
|
|
],
|
|
"displayName": "Debug",
|
|
"description": "Debug build for testing.",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/debug-msvc",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": {
|
|
"type": "STRING",
|
|
"value": "Debug"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "build-debug-clang-cl",
|
|
"inherits": [
|
|
"base",
|
|
"vcpkg",
|
|
"win32-unicode",
|
|
"x64",
|
|
"build-tests",
|
|
"clang-cl"
|
|
],
|
|
"displayName": "Debug",
|
|
"description": "Debug build for testing.",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/debug-clang",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": {
|
|
"type": "STRING",
|
|
"value": "Debug"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "build-release-clang-cl",
|
|
"inherits": [
|
|
"base",
|
|
"vcpkg",
|
|
"win32-unicode",
|
|
"x64",
|
|
"build-tests",
|
|
"clang-cl"
|
|
],
|
|
"displayName": "Release",
|
|
"description": "Optimized release build.",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/release-clang",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": {
|
|
"type": "STRING",
|
|
"value": "Release"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{
|
|
"name": "release-msvc",
|
|
"displayName": "Release (MSVC)",
|
|
"configurePreset": "build-release-msvc",
|
|
"description": "Optimized release build."
|
|
},
|
|
{
|
|
"name": "debug-msvc",
|
|
"displayName": "Debug (MSVC)",
|
|
"configurePreset": "build-debug-msvc",
|
|
"description": "Debug build for testing."
|
|
},
|
|
{
|
|
"name": "release-clang-cl",
|
|
"displayName": "Release (Clang)",
|
|
"configurePreset": "build-release-clang-cl",
|
|
"description": "Optimized release build."
|
|
},
|
|
{
|
|
"name": "debug-clang-cl",
|
|
"displayName": "Debug (Clang)",
|
|
"configurePreset": "build-debug-clang-cl",
|
|
"description": "Debug build for testing."
|
|
}
|
|
],
|
|
"testPresets": [
|
|
{
|
|
"name": "tests-all",
|
|
"displayName": "All Tests",
|
|
"configurePreset": "build-debug-msvc",
|
|
"output": {
|
|
"outputOnFailure": true
|
|
},
|
|
"execution": {
|
|
"noTestsAction": "error",
|
|
"stopOnFailure": false
|
|
}
|
|
},
|
|
{
|
|
"name": "tests-unit",
|
|
"displayName": "Unit Tests",
|
|
"description": "Runs tests that do not require any Skyrim module loaded into the process.",
|
|
"inherits": "tests-all",
|
|
"filter": {
|
|
"exclude": {
|
|
"label": "[integration],[e2e]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "tests-integration",
|
|
"displayName": "Integration Tests",
|
|
"description": "Runs tests that interact with a Skyrim module at rest (do not require the Skyrim module to have run any main function).",
|
|
"inherits": "tests-all",
|
|
"filter": {
|
|
"include": {
|
|
"label": "[integration]"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "tests-e2e",
|
|
"displayName": "End-to-End Tests",
|
|
"description": "Runs test that depend on a fully running Skyrim engine in the process.",
|
|
"inherits": "tests-all",
|
|
"filter": {
|
|
"include": {
|
|
"label": "[e2e]"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|