{
"version": 3,
"cmakeMinimumRequired": { "major": 3, "minor": 21, "patch": 0 },
"configurePresets": [
{
"name": "wheel-base",
"hidden": true,
"displayName": "Official wheel posture (shared, no vendored OpenMP/BLAS)",
"description": "Shared libtranscribe for the Python provider wheels. OpenMP and non-Apple system BLAS are off so wheel-repair tools (auditwheel/delocate/delvewheel) never vendor an OpenMP/BLAS runtime that would collide with PyTorch/NumPy/MKL in the same process. GGML_NATIVE off so the binary is not tuned to the build machine. NOTE: the official wheels build these same postures through the TRANSCRIBE_WHEEL_LANE overrides in the repo-root pyproject.toml (base posture supplied by the SKBUILD block in CMakeLists.txt) — keep both in sync. The presets remain for hand-built provider directories.",
"binaryDir": "${sourceDir}/build-wheel",
"generator": "Ninja",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"TRANSCRIBE_BUILD_SHARED": "ON",
"TRANSCRIBE_USE_OPENMP": "OFF",
"TRANSCRIBE_USE_SYSTEM_BLAS": "OFF",
"TRANSCRIBE_BUILD_TESTS": "OFF",
"TRANSCRIBE_BUILD_EXAMPLES": "OFF",
"GGML_NATIVE": "OFF"
}
},
{
"name": "wheel-linux-cpu",
"inherits": "wheel-base",
"displayName": "Linux x86_64 conservative CPU wheel",
"description": "The permanent compatibility floor. TRANSCRIBE_X86_CONSERVATIVE fans out to GGML_NATIVE=OFF plus every x86 SIMD tier OFF (one switch, defined in CMakeLists.txt — GGML_NATIVE=OFF alone does NOT disable the tiers): the resulting binary runs on a baseline x86-64 machine without SIGILL. Performance is the job of the fat-CPU (Strategy B) track, not this wheel.",
"cacheVariables": {
"TRANSCRIBE_X86_CONSERVATIVE": "ON"
}
},
{
"name": "wheel-macos-metal",
"inherits": "wheel-base",
"displayName": "macOS arm64 Metal wheel",
"description": "Metal ships by default on Apple Silicon, with the shader library embedded so there are no sidecar .metal files to vendor or locate at runtime. Single-artifact (no dynamic backend modules): one platform, one GPU API.",
"cacheVariables": {
"TRANSCRIBE_METAL": "ON",
"GGML_METAL": "ON",
"GGML_METAL_EMBED_LIBRARY": "ON"
}
},
{
"name": "wheel-linux-cpu-vulkan",
"inherits": "wheel-linux-cpu",
"displayName": "Linux x86_64 default wheel: fat CPU + Vulkan backend modules",
"description": "The default Linux provider (M6.5). GGML_BACKEND_DL builds every backend as a loadable module next to libtranscribe; GGML_CPU_ALL_VARIANTS emits one ggml-cpu-<tier> module per x86 ISA tier (runtime feature scoring, llama.cpp-release shape) — the x64 baseline tier is the SIGILL-safe floor, so the per-tier SIMD-off flags inherited from wheel-linux-cpu are inert here (ggml gates them behind NOT GGML_CPU_ALL_VARIANTS) and kept only as the floor if ALL_VARIANTS is disabled. The Vulkan module ships too. On machines without a Vulkan loader/driver the Vulkan module fails to load quietly and CPU keeps working — degradation verified by the provider-dl-vulkan and clean-install CI lanes. Build image needs the Vulkan SDK (glslc).",
"cacheVariables": {
"TRANSCRIBE_GGML_BACKEND_DL": "ON",
"TRANSCRIBE_VULKAN": "ON",
"GGML_VULKAN": "ON",
"GGML_CPU_ALL_VARIANTS": "ON"
}
},
{
"name": "wheel-windows-cpu-vulkan",
"inherits": "wheel-linux-cpu-vulkan",
"displayName": "Windows x86_64 default wheel: CPU + Vulkan backend modules",
"description": "Same provider shape as wheel-linux-cpu-vulkan on Windows: conservative CPU module + Vulkan module, loaded package-locally (the Python loader calls os.add_dll_directory before CDLL). Build image needs the Vulkan SDK (glslc)."
}
]
}