Files
Xenia-Canary/CMakePresets.json
MechaCat02 03362b59fe
Some checks failed
Orchestrator / Commit Message Validation (push) Has been skipped
Orchestrator / Lint (push) Successful in 1m19s
Orchestrator / Windows (x86-64) (push) Failing after 5m16s
Orchestrator / Linux (x86-64) (push) Failing after 13m23s
Orchestrator / Create Release (push) Has been skipped
[Build] Linux→Windows cross-compile toolchain (clang-cl + xwin)
New CMake preset `cross-win-clangcl` for Ninja Multi-Config on
non-Windows hosts. Toolchain: clang-cl (MSVC-ABI), lld-link, xwin SDK/CRT
splat. Shader compilation routes through wine fxc.exe with FXC_PATH
env forwarding and unix→Windows path translation via `winepath -w`.
Plus per-file build fixes (constexpr→const, llvm-rc forward-slash,
zlib-ng AVX guard, /RTCsu MSVC-only). third_party/snappy bumped to
fabi/sylpheed-crossbuild for the target-aware POSIX-gate header.

Produces `xenia_canary.exe` (Debug MSVC) suitable for use as the
audit oracle under Wine for xenia-rs work. See
docs/CROSS_BUILD_SETUP.md for the full reproduction recipe.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-05 23:52:27 +02:00

114 lines
2.9 KiB
JSON

{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "default",
"displayName": "Ninja Multi-Config",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/build"
},
{
"name": "vs",
"displayName": "Visual Studio 2022",
"generator": "Visual Studio 17 2022",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"architecture": "x64",
"binaryDir": "${sourceDir}/build"
},
{
"name": "vs-arm64",
"displayName": "Visual Studio 2022 (ARM64)",
"generator": "Visual Studio 17 2022",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"architecture": "ARM64",
"toolset": "host=x64",
"binaryDir": "${sourceDir}/build/vs-arm64",
"cacheVariables": {
"CMAKE_SYSTEM_PROCESSOR": "ARM64"
}
},
{
"name": "cross-win-clangcl",
"displayName": "Cross (Linux→Win MSVC) clang-cl + xwin",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/build-cross",
"toolchainFile": "${sourceDir}/cmake/toolchains/linux-to-win-msvc.cmake",
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
},
"cacheVariables": {
"XWIN_DIR": "$env{HOME}/.xwin/splat",
"FXC_PATH": "$env{HOME}/.local/share/xenia-cross/fxc/fxc.exe"
}
}
],
"buildPresets": [
{
"name": "debug",
"displayName": "Debug",
"configurePreset": "default",
"configuration": "Debug"
},
{
"name": "release",
"displayName": "Release",
"configurePreset": "default",
"configuration": "Release"
},
{
"name": "checked",
"displayName": "Checked",
"configurePreset": "default",
"configuration": "Checked"
},
{
"name": "vs-debug",
"configurePreset": "vs",
"configuration": "Debug"
},
{
"name": "vs-release",
"configurePreset": "vs",
"configuration": "Release"
},
{
"name": "vs-checked",
"configurePreset": "vs",
"configuration": "Checked"
},
{
"name": "vs-arm64-debug",
"configurePreset": "vs-arm64",
"configuration": "Debug"
},
{
"name": "vs-arm64-release",
"configurePreset": "vs-arm64",
"configuration": "Release"
},
{
"name": "vs-arm64-checked",
"configurePreset": "vs-arm64",
"configuration": "Checked"
},
{ "name": "cross-debug", "configurePreset": "cross-win-clangcl", "configuration": "Debug" },
{ "name": "cross-release", "configurePreset": "cross-win-clangcl", "configuration": "Release" },
{ "name": "cross-checked", "configurePreset": "cross-win-clangcl", "configuration": "Checked" }
]
}