mirror of
https://github.com/reactos/reactos.git
synced 2026-09-08 02:14:47 +08:00
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.
303 lines
9.5 KiB
JSON
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"
|
|
}
|
|
]
|
|
}
|