mirror of
https://github.com/facebook/zstd.git
synced 2025-12-11 00:06:10 -05:00
Merge pull request #1475 from hjmjohnson/cmake-version-setting
Cmake version setting
This commit is contained in:
commit
282000d88b
@ -7,10 +7,48 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8.9)
|
cmake_minimum_required(VERSION 2.8.9 FATAL_ERROR)
|
||||||
|
|
||||||
|
# As of 2018-12-26 ZSTD has been validated to build with cmake version 3.13.2 new policies.
|
||||||
|
# Set and use the newest cmake policies that are validated to work
|
||||||
|
set(ZSTD_MAX_VALIDATED_CMAKE_VERSION "3.13.2")
|
||||||
|
if("${CMAKE_MAJOR_VERSION}" LESS 3) # Cmake version 2 does not understand the VERSION_LESS_EQUAL operator
|
||||||
|
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
||||||
|
else()
|
||||||
|
if("${CMAKE_VERSION}" VERSION_LESS_EQUAL "${ZSTD_MAX_VALIDATED_CMAKE_VERSION}")
|
||||||
|
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
||||||
|
else()
|
||||||
|
set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_VERSION}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
cmake_policy(VERSION ${ZSTD_CMAKE_POLICY_VERSION})
|
||||||
|
|
||||||
project(zstd)
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||||
set(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
set(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
||||||
|
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
||||||
|
# Parse version
|
||||||
|
include(GetZstdLibraryVersion)
|
||||||
|
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH)
|
||||||
|
|
||||||
|
if( CMAKE_MAJOR_VERSION LESS 3 )
|
||||||
|
## Provide cmake 3+ behavior for older versions of cmake
|
||||||
|
project(zstd)
|
||||||
|
set(PROJECT_VERSION_MAJOR ${zstd_VERSION_MAJOR})
|
||||||
|
set(PROJECT_VERSION_MINOR ${zstd_VERSION_MINOR})
|
||||||
|
set(PROJECT_VERSION_PATCH ${zstd_VERSION_PATCH})
|
||||||
|
set(PROJECT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|
||||||
|
enable_language(C) # Main library is in C
|
||||||
|
enable_language(CXX) # Testing contributed code also utilizes CXX
|
||||||
|
else()
|
||||||
|
project(zstd
|
||||||
|
VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}"
|
||||||
|
LANGUAGES C # Main library is in C
|
||||||
|
CXX # Testing contributed code also utilizes CXX
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
message(STATUS "ZSTD VERSION: ${zstd_VERSION}")
|
||||||
|
set(zstd_HOMEPAGE_URL "http://www.zstd.net")
|
||||||
|
set(zstd_DESCRIPTION "Zstandard is a real-time compression algorithm, providing high compression ratios.")
|
||||||
|
|
||||||
# Set a default build type if none was specified
|
# Set a default build type if none was specified
|
||||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
@ -20,7 +58,6 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|||||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
function(GetZstdLibraryVersion _header _major _minor _release)
|
function(GetZstdLibraryVersion _header _major _minor _patch)
|
||||||
# Read file content
|
# Read file content
|
||||||
file(READ ${_header} CONTENT)
|
file(READ ${_header} CONTENT)
|
||||||
|
|
||||||
string(REGEX MATCH ".*define ZSTD_VERSION_MAJOR *([0-9]+).*define ZSTD_VERSION_MINOR *([0-9]+).*define ZSTD_VERSION_RELEASE *([0-9]+)" VERSION_REGEX "${CONTENT}")
|
string(REGEX MATCH ".*define ZSTD_VERSION_MAJOR *([0-9]+).*define ZSTD_VERSION_MINOR *([0-9]+).*define ZSTD_VERSION_RELEASE *([0-9]+)" VERSION_REGEX "${CONTENT}")
|
||||||
set(${_major} ${CMAKE_MATCH_1} PARENT_SCOPE)
|
set(${_major} ${CMAKE_MATCH_1} PARENT_SCOPE)
|
||||||
set(${_minor} ${CMAKE_MATCH_2} PARENT_SCOPE)
|
set(${_minor} ${CMAKE_MATCH_2} PARENT_SCOPE)
|
||||||
set(${_release} ${CMAKE_MATCH_3} PARENT_SCOPE)
|
set(${_patch} ${CMAKE_MATCH_3} PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|||||||
@ -18,14 +18,8 @@ if(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Define library directory, where sources and header files are located
|
# Define library directory, where sources and header files are located
|
||||||
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
|
||||||
include_directories(${LIBRARY_DIR} ${LIBRARY_DIR}/common)
|
include_directories(${LIBRARY_DIR} ${LIBRARY_DIR}/common)
|
||||||
|
|
||||||
# Parse version
|
|
||||||
include(GetZstdLibraryVersion)
|
|
||||||
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h LIBVER_MAJOR LIBVER_MINOR LIBVER_RELEASE)
|
|
||||||
message(STATUS "ZSTD VERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}")
|
|
||||||
|
|
||||||
set(Sources
|
set(Sources
|
||||||
${LIBRARY_DIR}/common/entropy_common.c
|
${LIBRARY_DIR}/common/entropy_common.c
|
||||||
${LIBRARY_DIR}/common/fse_decompress.c
|
${LIBRARY_DIR}/common/fse_decompress.c
|
||||||
@ -155,7 +149,7 @@ if (ZSTD_BUILD_SHARED)
|
|||||||
libzstd_shared
|
libzstd_shared
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
OUTPUT_NAME zstd
|
OUTPUT_NAME zstd
|
||||||
SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE})
|
SOVERSION ${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
@ -170,7 +164,7 @@ if (UNIX)
|
|||||||
set(PREFIX "${CMAKE_INSTALL_PREFIX}")
|
set(PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||||
set(LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
|
set(LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
|
||||||
set(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include")
|
set(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include")
|
||||||
set(VERSION "${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}")
|
set(VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|
||||||
add_custom_target(libzstd.pc ALL
|
add_custom_target(libzstd.pc ALL
|
||||||
${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc"
|
${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc"
|
||||||
-DPREFIX="${PREFIX}" -DLIBDIR="${LIBDIR}" -DINCLUDEDIR="${INCLUDEDIR}" -DVERSION="${VERSION}"
|
-DPREFIX="${PREFIX}" -DLIBDIR="${LIBDIR}" -DINCLUDEDIR="${INCLUDEDIR}" -DVERSION="${VERSION}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user