Files
reactos/CMakePresets.json
Mohammad Amin Mollazadeh 83c25051cd [CMAKE] Add CMakePresets.json (#9320)
This file contains various CMake presets to configure the build with various
variables, for different compilers, architectures or DEBUG/RELEASE profiles.

As of RosBE 2.2.1, this file can't be utilized by the CMake bundled with
RosBE, as presets feature is added to CMake in version 3.19.

While RosBE's CMake can't use this file, still it's useful for opening
the project in some C/C++ IDEs (like CLion, Visual Studio, and VSCode).
In a future RosBE update with a newer CMake version, this file can be used
as a replacement for `configure.cmd` and `configure.bat` scripts, too.
2026-08-17 21:24:31 +03:00

303 lines
9.5 KiB
JSON

{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 19,
"patch": 0
},
"configurePresets": [
{
"name": "base-mingw",
"hidden": true,
"generator": "Ninja",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/toolchain-gcc.cmake"
},
"ENABLE_CCACHE": {
"type": "BOOL",
"value": "OFF"
}
}
},
{
"name": "base-msvc",
"hidden": true,
"generator": "Ninja",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/toolchain-msvc.cmake"
}
}
},
{
"name": "base-clang-cl",
"hidden": true,
"inherits": "base-msvc",
"cacheVariables": {
"USE_CLANG_CL": {
"type": "BOOL",
"value": "ON"
}
}
},
{
"name": "base-clang",
"hidden": true,
"generator": "Ninja",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/toolchain-clang.cmake"
}
}
},
{
"name": "base-debug",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "base-release",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "arch-i386",
"hidden": true,
"cacheVariables": {
"ARCH": "i386"
}
},
{
"name": "arch-amd64",
"hidden": true,
"cacheVariables": {
"ARCH": "amd64"
}
},
{
"name": "arch-arm",
"hidden": true,
"cacheVariables": {
"ARCH": "arm"
}
},
{
"name": "arch-arm64",
"hidden": true,
"cacheVariables": {
"ARCH": "arm64"
}
},
{
"name": "mingw-i386-debug",
"displayName": "MinGW Ninja i386 (Debug)",
"description": "GCC build using Ninja for i386 (Debug)",
"inherits": ["base-mingw", "base-debug", "arch-i386"],
"binaryDir": "${sourceDir}/output-MinGW-i386"
},
{
"name": "mingw-amd64-debug",
"displayName": "MinGW Ninja amd64 (Debug)",
"description": "GCC build using Ninja for amd64 (Debug)",
"inherits": ["base-mingw", "base-debug", "arch-amd64"],
"binaryDir": "${sourceDir}/output-MinGW-amd64"
},
{
"name": "msvc-i386-debug",
"displayName": "MSVC Ninja i386 (Debug)",
"description": "MSVC build using Ninja for i386 (Debug)",
"inherits": ["base-msvc", "arch-i386"],
"binaryDir": "${sourceDir}/output-VS-i386"
},
{
"name": "msvc-amd64-debug",
"displayName": "MSVC Ninja amd64 (Debug)",
"description": "MSVC build using Ninja for amd64 (Debug)",
"inherits": ["base-msvc", "base-debug", "arch-amd64"],
"binaryDir": "${sourceDir}/output-VS-amd64"
},
{
"name": "msvc-arm-debug",
"displayName": "MSVC Ninja ARM (Debug)",
"description": "MSVC build using Ninja for ARM (Debug)",
"inherits": ["base-msvc", "base-debug", "arch-arm"],
"binaryDir": "${sourceDir}/output-VS-arm"
},
{
"name": "msvc-arm64-debug",
"displayName": "MSVC Ninja ARM64 (Debug)",
"description": "MSVC build using Ninja for ARM64 (Debug)",
"inherits": ["base-msvc", "base-debug", "arch-arm64"],
"binaryDir": "${sourceDir}/output-VS-arm64"
},
{
"name": "clang-cl-i386-debug",
"displayName": "Clang-cl Ninja i386 (Debug)",
"description": "Clang-cl build for i386 using Ninja (Debug)",
"inherits": ["base-clang-cl", "base-debug", "arch-i386"],
"binaryDir": "${sourceDir}/output-VS-i386"
},
{
"name": "clang-i386-debug",
"displayName": "LLVM Clang Ninja i386 (Debug)",
"description": "LLVM Clang build for i386 using Ninja (Debug)",
"inherits": ["base-clang", "base-debug", "arch-i386"],
"binaryDir": "${sourceDir}/output-Clang-i386"
},
{
"name": "clang-amd64-debug",
"displayName": "LLVM Clang Ninja amd64 (Debug)",
"description": "LLVM Clang build for amd64 using Ninja (Debug)",
"inherits": ["base-clang", "base-debug", "arch-amd64"],
"binaryDir": "${sourceDir}/output-Clang-amd64"
},
{
"name": "clang-arm-debug",
"displayName": "LLVM Clang Ninja arm (Debug)",
"description": "LLVM Clang build for ARM using Ninja (Debug)",
"inherits": ["base-clang", "base-debug", "arch-arm"],
"binaryDir": "${sourceDir}/output-Clang-arm"
},
{
"name": "clang-arm64-debug",
"displayName": "LLVM Clang Ninja arm64 (Debug)",
"description": "LLVM Clang build for ARM64 using Ninja (Debug)",
"inherits": ["base-clang", "base-debug", "arch-arm64"],
"binaryDir": "${sourceDir}/output-Clang-arm64"
},
{
"name": "mingw-i386-release",
"displayName": "MinGW Ninja i386 (Release)",
"description": "GCC build using Ninja for i386 (Release)",
"inherits": ["base-mingw", "base-release", "arch-i386"],
"binaryDir": "${sourceDir}/output-MinGW-i386"
},
{
"name": "mingw-amd64-release",
"displayName": "MinGW Ninja amd64 (Release)",
"description": "GCC build using Ninja for amd64 (Release)",
"inherits": ["base-mingw", "base-release", "arch-amd64"],
"binaryDir": "${sourceDir}/output-MinGW-amd64"
},
{
"name": "msvc-i386-release",
"displayName": "MSVC Ninja i386 (Release)",
"description": "MSVC build using Ninja for i386 (Release)",
"inherits": ["base-msvc", "base-release", "arch-i386"],
"binaryDir": "${sourceDir}/output-VS-i386"
},
{
"name": "msvc-amd64-release",
"displayName": "MSVC Ninja amd64 (Release)",
"description": "MSVC build using Ninja for amd64 (Release)",
"inherits": ["base-msvc", "base-release", "arch-amd64"],
"binaryDir": "${sourceDir}/output-VS-amd64"
},
{
"name": "msvc-arm-release",
"displayName": "MSVC Ninja ARM (Release)",
"description": "MSVC build using Ninja for ARM (Release)",
"inherits": ["base-msvc", "base-release", "arch-arm"],
"binaryDir": "${sourceDir}/output-VS-arm"
},
{
"name": "msvc-arm64-release",
"displayName": "MSVC Ninja ARM64 (Release)",
"description": "MSVC build using Ninja for ARM64 (Release)",
"inherits": ["base-msvc", "base-release", "arch-arm64"],
"binaryDir": "${sourceDir}/output-VS-arm64"
},
{
"name": "clang-cl-i386-release",
"displayName": "Clang-cl Ninja i386 (Release)",
"description": "Clang-cl build for i386 using Ninja (Release)",
"inherits": ["base-clang-cl", "base-release", "arch-i386"],
"binaryDir": "${sourceDir}/output-VS-i386"
},
{
"name": "clang-i386-release",
"displayName": "LLVM Clang Ninja i386 (Release)",
"description": "LLVM Clang build for i386 using Ninja (Release)",
"inherits": ["base-clang", "base-release", "arch-i386"],
"binaryDir": "${sourceDir}/output-Clang-i386"
},
{
"name": "clang-amd64-release",
"displayName": "LLVM Clang Ninja amd64 (Release)",
"description": "LLVM Clang build for amd64 using Ninja (Release)",
"inherits": ["base-clang", "base-release", "arch-amd64"],
"binaryDir": "${sourceDir}/output-Clang-amd64"
},
{
"name": "clang-arm-release",
"displayName": "LLVM Clang Ninja ARM (Release)",
"description": "LLVM Clang build for ARM using Ninja (Release)",
"inherits": ["base-clang", "base-release", "arch-arm"],
"binaryDir": "${sourceDir}/output-Clang-arm"
},
{
"name": "clang-arm64-release",
"displayName": "LLVM Clang Ninja arm64 (Release)",
"description": "LLVM Clang build for ARM64 using Ninja (Release)",
"inherits": ["base-clang", "base-release", "arch-arm64"],
"binaryDir": "${sourceDir}/output-Clang-arm64"
},
{
"name": "vs2022-sln-i386",
"displayName": "Visual Studio 2022 Solution i386",
"description": "Generates a VS 2022 Solution for i386",
"inherits": ["base-msvc", "arch-i386"],
"generator": "Visual Studio 17 2022",
"architecture": {
"value": "Win32",
"strategy": "external"
},
"binaryDir": "${sourceDir}/output-VS-i386-sln"
},
{
"name": "vs2022-sln-amd64",
"displayName": "Visual Studio 2022 Solution amd64",
"description": "Generates a VS 2022 Solution for amd64",
"inherits": ["base-msvc", "arch-amd64"],
"generator": "Visual Studio 17 2022",
"architecture": {
"value": "x64",
"strategy": "external"
},
"binaryDir": "${sourceDir}/output-VS-amd64-sln"
},
{
"name": "vs2022-sln-arm",
"displayName": "Visual Studio 2022 Solution ARM",
"description": "Generates a VS 2022 Solution for ARM",
"inherits": ["base-msvc", "arch-arm"],
"generator": "Visual Studio 17 2022",
"architecture": {
"value": "arm",
"strategy": "external"
},
"binaryDir": "${sourceDir}/output-VS-arm-sln"
},
{
"name": "vs2022-sln-arm64",
"displayName": "Visual Studio 2022 Solution ARM64",
"description": "Generates a VS 2022 Solution for ARM64",
"inherits": ["base-msvc", "arch-arm64"],
"generator": "Visual Studio 17 2022",
"architecture": {
"value": "arm64",
"strategy": "external"
},
"binaryDir": "${sourceDir}/output-VS-arm64-sln"
}
]
}