{ "version": 8, "configurePresets": [ { "name": "base", "hidden": true, "description": "Base preset with common settings", "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { "CMAKE_CONFIGURATION_TYPES": "Debug;Release;MinSizeRel;RelWithDebInfo", "UHDR_BUILD_DEPS": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_POLICY_VERSION_MINIMUM": "3.5", "CMAKE_POLICY_DEFAULT_CMP0077": "NEW", "CMAKE_POLICY_DEFAULT_CMP0135": "NEW", "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/install" } }, { "name": "emscripten", "displayName": "Emscripten (WebAssembly)", "description": "Build for web using Emscripten (requires EMSDK environment variable). HEIC and AVCI are off for the same patent reasons as in released builds; HTJ2K encoding is off because libheif only accepts an already-installed OpenJPH, and Emscripten installs nothing.", "generator": "Ninja", "binaryDir": "${sourceDir}/build/${presetName}", "toolchainFile": "$env{EMSDK}/cmake/Modules/Platform/Emscripten.cmake", "cacheVariables": { "CMAKE_BUILD_TYPE": "MinSizeRel", "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/deploy", "HDRVIEW_ENABLE_HTJ2K": "OFF", "HDRVIEW_ENABLE_HEIC": "OFF", "HDRVIEW_ENABLE_AVCI": "OFF", "UHDR_BUILD_DEPS": "ON" } }, { "name": "ninja-multi-base", "hidden": true, "inherits": "base", "description": "Base for Ninja Multi-Config builds", "generator": "Ninja Multi-Config" }, { "name": "msvc-base", "hidden": true, "inherits": "base", "description": "Base for Visual Studio builds", "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "macos-base", "hidden": true, "description": "Base settings for macOS builds", "cacheVariables": { "CMAKE_OSX_DEPLOYMENT_TARGET": "10.15" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "macos-cpm", "hidden": true, "inherits": "macos-base", "description": "macOS with CPM dependencies" }, { "name": "macos-local", "hidden": true, "inherits": "macos-base", "description": "macOS using Homebrew dependencies", "cacheVariables": { "CPM_USE_LOCAL_PACKAGES": "ON", "CMAKE_PREFIX_PATH": "/opt/homebrew;/usr/local" } }, { "name": "linux-base", "hidden": true, "description": "Base settings for Linux builds", "cacheVariables": { "HELLOIMGUI_DOWNLOAD_FREETYPE_IF_NEEDED": "ON" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" } }, { "name": "linux-cpm-base", "hidden": true, "inherits": "linux-base", "description": "Linux with CPM dependencies" }, { "name": "linux-local-base", "hidden": true, "inherits": "linux-base", "description": "Linux using system dependencies", "cacheVariables": { "CPM_USE_LOCAL_PACKAGES": "ON" } }, { "name": "macos-arm64-cpm", "displayName": "macOS Apple Silicon (CPM)", "description": "Native Apple Silicon build using CPM for dependencies", "inherits": ["ninja-multi-base", "macos-cpm"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "macos-arm64-local", "displayName": "macOS Apple Silicon (Local)", "description": "Native Apple Silicon build using Homebrew dependencies", "inherits": ["ninja-multi-base", "macos-local"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "macos-x86_64-cpm", "displayName": "macOS Intel (CPM)", "description": "Native Intel build using CPM for dependencies", "inherits": ["ninja-multi-base", "macos-cpm"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "macos-x86_64-local", "displayName": "macOS Intel (Local)", "description": "Native Intel build using Homebrew dependencies", "inherits": ["ninja-multi-base", "macos-local"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "macos-universal", "displayName": "macOS Universal Binary", "description": "Universal binary for both Apple Silicon and Intel", "inherits": ["ninja-multi-base", "macos-cpm"], "toolchainFile": "${sourceDir}/cmake/ignore-brew.cmake", "cacheVariables": { "CMAKE_OSX_ARCHITECTURES": "arm64;x86_64", "HDRVIEW_ENABLE_LIBWEBP": "OFF", "HDRVIEW_ENABLE_LIBJPEG": "OFF", "HDRVIEW_ENABLE_LIBUHDR": "OFF", "HELLOIMGUI_FREETYPE_STATIC": "ON", "PNG_HARDWARE_OPTIMIZATIONS": "ON" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" } }, { "name": "windows-msvc", "displayName": "Windows (MSVC)", "description": "Windows build with Visual Studio", "inherits": "msvc-base", "architecture": "x64", "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "windows-arm64-msvc", "displayName": "Windows ARM64 (MSVC)", "description": "Native Windows ARM64 build with Visual Studio", "inherits": "msvc-base", "architecture": "arm64", "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "windows-ninja", "displayName": "Windows (Ninja)", "description": "Windows build with Ninja", "inherits": "ninja-multi-base", "cacheVariables": { "CMAKE_C_COMPILER": "cl.exe", "CMAKE_CXX_COMPILER": "cl.exe" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" } }, { "name": "linux-cpm", "displayName": "Linux (CPM)", "description": "Linux build using CPM for dependencies", "inherits": ["ninja-multi-base", "linux-cpm-base"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" } }, { "name": "linux-local", "displayName": "Linux (Local)", "description": "Linux build using system dependencies", "inherits": ["ninja-multi-base", "linux-local-base"], "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" } }, { "name": "linux-appimage", "displayName": "Linux AppImage", "description": "Linux build optimized for AppImage packaging with bundled dependencies", "inherits": ["ninja-multi-base", "linux-cpm-base"], "cacheVariables": { "HDRVIEW_PORTABLE_INSTALL": "OFF", "HDRVIEW_ENABLE_LIBPNG": "ON", "HDRVIEW_ENABLE_LIBJPEG": "ON", "HDRVIEW_ENABLE_LIBUHDR": "ON", "HDRVIEW_ENABLE_LIBJXL": "ON", "HDRVIEW_ENABLE_J2K": "ON", "HDRVIEW_ENABLE_HTJ2K": "ON", "HDRVIEW_ENABLE_AVIF": "ON", "HDRVIEW_ENABLE_HEIC": "ON", "HDRVIEW_ENABLE_AVCI": "ON", "HDRVIEW_ENABLE_LIBWEBP": "ON", "HDRVIEW_ENABLE_LIBTIFF": "ON", "HDRVIEW_ENABLE_LIBRAW": "ON", "HDRVIEW_ENABLE_X3F": "ON", "CMAKE_INSTALL_PREFIX": "/usr", "ASSETS_LOCATION": "/usr/bin/assets" }, "condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" } } ], "buildPresets": [ { "name": "build-base-debug", "hidden": true, "configuration": "Debug", "jobs": 0 }, { "name": "build-base-release", "hidden": true, "configuration": "Release", "jobs": 0 }, { "name": "build-base-minsizerel", "hidden": true, "configuration": "MinSizeRel", "jobs": 0 }, { "name": "build-base-relwithdebinfo", "hidden": true, "configuration": "RelWithDebInfo", "jobs": 0 }, { "name": "macos-arm64-cpm-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "macos-arm64-cpm" }, { "name": "macos-arm64-cpm-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "macos-arm64-cpm" }, { "name": "macos-arm64-cpm-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "macos-arm64-cpm" }, { "name": "macos-arm64-cpm-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "macos-arm64-cpm" }, { "name": "macos-arm64-local-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "macos-arm64-local" }, { "name": "macos-arm64-local-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "macos-arm64-local" }, { "name": "macos-arm64-local-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "macos-arm64-local" }, { "name": "macos-arm64-local-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "macos-arm64-local" }, { "name": "macos-x86_64-cpm-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "macos-x86_64-cpm" }, { "name": "macos-x86_64-cpm-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "macos-x86_64-cpm" }, { "name": "macos-x86_64-cpm-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "macos-x86_64-cpm" }, { "name": "macos-x86_64-cpm-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "macos-x86_64-cpm" }, { "name": "macos-x86_64-local-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "macos-x86_64-local" }, { "name": "macos-x86_64-local-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "macos-x86_64-local" }, { "name": "macos-x86_64-local-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "macos-x86_64-local" }, { "name": "macos-x86_64-local-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "macos-x86_64-local" }, { "name": "macos-universal-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "macos-universal" }, { "name": "macos-universal-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "macos-universal" }, { "name": "macos-universal-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "macos-universal" }, { "name": "macos-universal-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "macos-universal" }, { "name": "windows-msvc-debug", "displayName": "Debug (MSVC)", "inherits": "build-base-debug", "configurePreset": "windows-msvc" }, { "name": "windows-msvc-release", "displayName": "Release (MSVC)", "inherits": "build-base-release", "configurePreset": "windows-msvc" }, { "name": "windows-msvc-minsizerel", "displayName": "MinSizeRel (MSVC)", "inherits": "build-base-minsizerel", "configurePreset": "windows-msvc" }, { "name": "windows-msvc-relwithdebinfo", "displayName": "RelWithDebInfo (MSVC)", "inherits": "build-base-relwithdebinfo", "configurePreset": "windows-msvc" }, { "name": "windows-arm64-msvc-debug", "displayName": "Debug (ARM64 MSVC)", "inherits": "build-base-debug", "configurePreset": "windows-arm64-msvc" }, { "name": "windows-arm64-msvc-release", "displayName": "Release (ARM64 MSVC)", "inherits": "build-base-release", "configurePreset": "windows-arm64-msvc" }, { "name": "windows-arm64-msvc-minsizerel", "displayName": "MinSizeRel (ARM64 MSVC)", "inherits": "build-base-minsizerel", "configurePreset": "windows-arm64-msvc" }, { "name": "windows-arm64-msvc-relwithdebinfo", "displayName": "RelWithDebInfo (ARM64 MSVC)", "inherits": "build-base-relwithdebinfo", "configurePreset": "windows-arm64-msvc" }, { "name": "windows-ninja-debug", "displayName": "Debug (Ninja)", "inherits": "build-base-debug", "configurePreset": "windows-ninja" }, { "name": "windows-ninja-release", "displayName": "Release (Ninja)", "inherits": "build-base-release", "configurePreset": "windows-ninja" }, { "name": "windows-ninja-minsizerel", "displayName": "MinSizeRel (Ninja)", "inherits": "build-base-minsizerel", "configurePreset": "windows-ninja" }, { "name": "windows-ninja-relwithdebinfo", "displayName": "RelWithDebInfo (Ninja)", "inherits": "build-base-relwithdebinfo", "configurePreset": "windows-ninja" }, { "name": "linux-cpm-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "linux-cpm" }, { "name": "linux-cpm-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "linux-cpm" }, { "name": "linux-cpm-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "linux-cpm" }, { "name": "linux-cpm-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "linux-cpm" }, { "name": "linux-local-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "linux-local" }, { "name": "linux-local-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "linux-local" }, { "name": "linux-local-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "linux-local" }, { "name": "linux-local-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "linux-local" }, { "name": "linux-appimage-debug", "displayName": "Debug", "inherits": "build-base-debug", "configurePreset": "linux-appimage" }, { "name": "linux-appimage-release", "displayName": "Release", "inherits": "build-base-release", "configurePreset": "linux-appimage" }, { "name": "linux-appimage-minsizerel", "displayName": "MinSizeRel", "inherits": "build-base-minsizerel", "configurePreset": "linux-appimage" }, { "name": "linux-appimage-relwithdebinfo", "displayName": "RelWithDebInfo", "inherits": "build-base-relwithdebinfo", "configurePreset": "linux-appimage" }, { "name": "emscripten", "displayName": "Build", "configurePreset": "emscripten", "jobs": 0 } ], "testPresets": [], "packagePresets": [ { "name": "macos-arm64-cpm-release", "displayName": "Package Apple Silicon Release", "configurePreset": "macos-arm64-cpm", "configurations": ["Release"], "generators": ["DragNDrop"] }, { "name": "macos-arm64-local-release", "displayName": "Package Apple Silicon Release (Local)", "configurePreset": "macos-arm64-local", "configurations": ["Release"], "generators": ["DragNDrop"] }, { "name": "macos-x86_64-cpm-release", "displayName": "Package Intel Release", "configurePreset": "macos-x86_64-cpm", "configurations": ["Release"], "generators": ["DragNDrop"] }, { "name": "macos-x86_64-local-release", "displayName": "Package Intel Release (Local)", "configurePreset": "macos-x86_64-local", "configurations": ["Release"], "generators": ["DragNDrop"] }, { "name": "macos-universal-release", "displayName": "Package Universal Release", "configurePreset": "macos-universal", "configurations": ["Release"], "generators": ["DragNDrop"] } ], "workflowPresets": [ { "name": "dmg-arm64-cpm", "displayName": "Create DMG - Apple Silicon (CPM)", "steps": [ { "type": "configure", "name": "macos-arm64-cpm" }, { "type": "build", "name": "macos-arm64-cpm-release" }, { "type": "package", "name": "macos-arm64-cpm-release" } ] }, { "name": "dmg-arm64-local", "displayName": "Create DMG - Apple Silicon (Local)", "steps": [ { "type": "configure", "name": "macos-arm64-local" }, { "type": "build", "name": "macos-arm64-local-release" }, { "type": "package", "name": "macos-arm64-local-release" } ] }, { "name": "dmg-x86_64-cpm", "displayName": "Create DMG - Intel (CPM)", "steps": [ { "type": "configure", "name": "macos-x86_64-cpm" }, { "type": "build", "name": "macos-x86_64-cpm-release" }, { "type": "package", "name": "macos-x86_64-cpm-release" } ] }, { "name": "dmg-universal", "displayName": "Create DMG - Universal", "steps": [ { "type": "configure", "name": "macos-universal" }, { "type": "build", "name": "macos-universal-release" }, { "type": "package", "name": "macos-universal-release" } ] }, { "name": "appimage", "displayName": "Create AppImage - Linux", "steps": [ { "type": "configure", "name": "linux-appimage" }, { "type": "build", "name": "linux-appimage-release" } ] } ] }