# ################################################################ # ZSTD Build Options Configuration # ################################################################ # Legacy support configuration option(ZSTD_LEGACY_SUPPORT "Enable legacy format support" ON) if(ZSTD_LEGACY_SUPPORT) message(STATUS "ZSTD_LEGACY_SUPPORT enabled") set(ZSTD_LEGACY_LEVEL 5 CACHE STRING "Legacy support level") add_definitions(-DZSTD_LEGACY_SUPPORT=${ZSTD_LEGACY_LEVEL}) else() message(STATUS "ZSTD_LEGACY_SUPPORT disabled") add_definitions(-DZSTD_LEGACY_SUPPORT=0) endif() # Platform-specific options if(APPLE) option(ZSTD_FRAMEWORK "Build as Apple Framework" OFF) endif() # Android-specific configuration if(ANDROID) set(ZSTD_MULTITHREAD_SUPPORT_DEFAULT OFF) # Handle old Android API levels if((NOT ANDROID_PLATFORM_LEVEL) OR (ANDROID_PLATFORM_LEVEL VERSION_LESS 24)) message(STATUS "Configuring for old Android API - disabling fseeko/ftello") add_compile_definitions(LIBC_NO_FSEEKO) endif() else() set(ZSTD_MULTITHREAD_SUPPORT_DEFAULT ON) endif() # Multi-threading support option(ZSTD_MULTITHREAD_SUPPORT "Enable multi-threading support" ${ZSTD_MULTITHREAD_SUPPORT_DEFAULT}) if(ZSTD_MULTITHREAD_SUPPORT) message(STATUS "Multi-threading support enabled") else() message(STATUS "Multi-threading support disabled") endif() # Build component options option(ZSTD_BUILD_PROGRAMS "Build command-line programs" ON) option(ZSTD_BUILD_CONTRIB "Build contrib utilities" OFF) option(ZSTD_PROGRAMS_LINK_SHARED "Link programs against shared library" OFF) # Test configuration if(BUILD_TESTING) set(ZSTD_BUILD_TESTS_default ON) else() set(ZSTD_BUILD_TESTS_default OFF) endif() option(ZSTD_BUILD_TESTS "Build test suite" ${ZSTD_BUILD_TESTS_default}) # MSVC-specific options if(MSVC) option(ZSTD_USE_STATIC_RUNTIME "Link to static runtime libraries" OFF) endif() # C++ support (needed for tests) set(ZSTD_ENABLE_CXX ${ZSTD_BUILD_TESTS}) if(ZSTD_ENABLE_CXX) enable_language(CXX) endif() # Set global definitions add_definitions(-DXXH_NAMESPACE=ZSTD_)