2023-01-02 10:21:08 -08:00
{
"version" : 6 ,
"cmakeMinimumRequired" : {
"major" : 3 ,
"minor" : 19 ,
"patch" : 0
},
"configurePresets" : [
{
2023-01-03 17:37:32 -08:00
"name" : "clang-base" ,
"displayName" : "Base" ,
"description" : "Base preset for Clang. Only for inheriting from." ,
2023-01-02 10:21:08 -08:00
"hidden" : true ,
2023-01-03 17:37:32 -08:00
"binaryDir" : "${sourceDir}/build" ,
"generator" : "Ninja" ,
2023-01-02 11:11:39 -08:00
"cacheVariables" : {
2023-01-03 17:37:32 -08:00
"CMAKE_EXE_LINKER_FLAGS_INIT" : "-fuse-ld=lld" ,
"CMAKE_MODULE_LINKER_FLAGS_INIT" : "-fuse-ld=lld" ,
"CMAKE_SHARED_LINKER_FLAGS_INIT" : "-fuse-ld=lld" ,
2023-01-02 11:11:39 -08:00
"CMAKE_C_COMPILER" : "clang" ,
"CMAKE_CXX_COMPILER" : "clang++"
2023-01-02 10:21:08 -08:00
}
},
{
"name" : "ninja-multi" ,
"displayName" : "Ninja Multi Config" ,
"description" : "Generate multiple ninja build files." ,
2023-12-29 21:18:03 +10:00
"inherits" : "clang-base" ,
2023-01-02 10:21:08 -08:00
"generator" : "Ninja Multi-Config"
},
{
"name" : "clang-debug" ,
"displayName" : "Clang Debug" ,
"description" : "Debug build using ninja and clang." ,
2023-01-03 17:37:32 -08:00
"inherits" : "clang-base" ,
2023-01-02 10:21:08 -08:00
"cacheVariables" : {
"CMAKE_BUILD_TYPE" : "Debug"
}
},
{
"name" : "clang-devel" ,
"displayName" : "Clang Devel" ,
"description" : "Developer build using ninja & clang." ,
2023-01-03 17:37:32 -08:00
"inherits" : "clang-base" ,
2023-01-02 10:21:08 -08:00
"cacheVariables" : {
"CMAKE_BUILD_TYPE" : "Devel"
}
},
{
"name" : "clang-release" ,
"displayName" : "Clang Release" ,
2023-01-03 18:12:42 -08:00
"description" : "Release lto build using ninja & clang." ,
2023-01-03 17:37:32 -08:00
"inherits" : "clang-base" ,
2023-01-02 10:21:08 -08:00
"cacheVariables" : {
2023-01-03 18:12:42 -08:00
"CMAKE_INTERPROCEDURAL_OPTIMIZATION" : "ON" ,
2026-06-20 20:27:55 -07:00
"CMAKE_BUILD_TYPE" : "Release" ,
"ENABLE_RECOMPILER_TEST_HOOKS" : "OFF"
}
},
{
"name" : "clang-perf" ,
"displayName" : "Clang Devel + perf jitdump" ,
"description" : "Devel build with USE_PERF_JITDUMP=ON; emits /tmp/pcsx2-perf-<pid>/jit-<pid>.dump for `perf inject --jit`." ,
"inherits" : "clang-devel" ,
"binaryDir" : "${sourceDir}/build-perf" ,
"cacheVariables" : {
"USE_PERF_JITDUMP" : "ON"
}
},
2026-07-27 19:57:12 -07:00
{
"name" : "clang-coverage" ,
"displayName" : "Clang Devel + source-based coverage" ,
"description" : "Devel build instrumented with -fprofile-instr-generate -fcoverage-mapping, into build-coverage/. Drive it with tools/coverage.sh, which runs the gtest binaries and reports line/region coverage scoped to pcsx2/arm64/." ,
"inherits" : "clang-devel" ,
"binaryDir" : "${sourceDir}/build-coverage" ,
"cacheVariables" : {
"USE_COVERAGE" : "ON" ,
"ENABLE_TESTS" : "ON" ,
"ENABLE_RECOMPILER_TEST_HOOKS" : "ON" ,
"ENABLE_QT_UI" : "OFF"
}
},
2026-06-20 20:27:55 -07:00
{
"name" : "clang-handheld" ,
"displayName" : "Clang Handheld (SDL3 / kmsdrm)" ,
2026-07-23 08:45:29 -07:00
"description" : "RelWithDebInfo build of the SDL3 frontend for handhelds. No Qt. Primary display path is VK_KHR_display (VulkanDirect, kmsdrm); WAYLAND_API is on so the SDL frontend can fall back to a Wayland Vulkan surface when launched inside a compositor. Requires ECM + Wayland-Egl dev headers on the build host — pure kmsdrm targets without them can build VulkanDirect-only by overriding -DWAYLAND_API=OFF." ,
2026-06-20 20:27:55 -07:00
"inherits" : "clang-base" ,
"binaryDir" : "${sourceDir}/build-handheld" ,
"cacheVariables" : {
"CMAKE_BUILD_TYPE" : "RelWithDebInfo" ,
"ENABLE_QT_UI" : "OFF" ,
"ENABLE_GSRUNNER" : "ON" ,
"ENABLE_SDL_FRONTEND" : "ON" ,
"ENABLE_TESTS" : "OFF" ,
"ENABLE_RECOMPILER_TEST_HOOKS" : "OFF" ,
"USE_BACKTRACE" : "OFF" ,
"X11_API" : "OFF" ,
2026-07-23 08:45:29 -07:00
"WAYLAND_API" : "ON"
2023-01-02 10:21:08 -08:00
}
}
]
2023-01-03 18:12:42 -08:00
}