mirror of
https://github.com/facebook/zstd.git
synced 2025-07-28 00:01:53 +03:00
- Split monolithic 235-line CMakeLists.txt into focused modules - Main file reduced to 78 lines with clear section organization - Created 5 specialized modules: * ZstdVersion.cmake - CMake policies and version management * ZstdOptions.cmake - Build options and platform configuration * ZstdDependencies.cmake - External dependency management * ZstdBuild.cmake - Build targets and validation * ZstdPackage.cmake - Package configuration generation Benefits: - Improved readability and maintainability - Better separation of concerns - Easier debugging and modification - Preserved 100% backward compatibility - All existing build options and targets unchanged The refactored build system passes all tests and maintains identical functionality while being much easier to understand and maintain.
32 lines
1.3 KiB
CMake
32 lines
1.3 KiB
CMake
# ################################################################
|
|
# ZSTD Version Configuration
|
|
# ################################################################
|
|
|
|
# Setup CMake policy version
|
|
set(ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION "3")
|
|
set(ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION "13")
|
|
|
|
# Determine appropriate policy version
|
|
if("${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}" EQUAL "${CMAKE_MAJOR_VERSION}" AND
|
|
"${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}" GREATER "${CMAKE_MINOR_VERSION}")
|
|
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
|
else()
|
|
set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}.${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}.0")
|
|
endif()
|
|
|
|
cmake_policy(VERSION ${ZSTD_CMAKE_POLICY_VERSION})
|
|
|
|
# Parse version from header file
|
|
include(GetZstdLibraryVersion)
|
|
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH)
|
|
|
|
# Set version variables
|
|
set(ZSTD_SHORT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}")
|
|
set(ZSTD_FULL_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|
|
|
|
# Project metadata
|
|
set(zstd_HOMEPAGE_URL "https://facebook.github.io/zstd")
|
|
set(zstd_DESCRIPTION "Zstandard is a real-time compression algorithm, providing high compression ratios.")
|
|
|
|
message(STATUS "ZSTD VERSION: ${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|