Merge pull request #1472 from hjmjohnson/modernize-cmake-syntax
Modernize cmake syntax
This commit is contained in:
commit
b31b98ac93
@ -7,107 +7,107 @@
|
|||||||
# 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)
|
||||||
|
|
||||||
PROJECT(zstd)
|
project(zstd)
|
||||||
SET(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
set(ZSTD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
||||||
|
|
||||||
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
message(STATUS "No build type selected, defaulting to Release")
|
message(STATUS "No build type selected, defaulting to Release")
|
||||||
set(CMAKE_BUILD_TYPE "Release")
|
set(CMAKE_BUILD_TYPE "Release")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||||
INCLUDE(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Add extra compilation flags
|
# Add extra compilation flags
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
INCLUDE(AddZstdCompilationFlags)
|
include(AddZstdCompilationFlags)
|
||||||
ADD_ZSTD_COMPILATION_FLAGS()
|
ADD_ZSTD_COMPILATION_FLAGS()
|
||||||
|
|
||||||
# Always hide XXHash symbols
|
# Always hide XXHash symbols
|
||||||
ADD_DEFINITIONS(-DXXH_NAMESPACE=ZSTD_)
|
add_definitions(-DXXH_NAMESPACE=ZSTD_)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Installation variables
|
# Installation variables
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
MESSAGE(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
|
message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
|
||||||
MESSAGE(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}")
|
message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Options
|
# Options
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
# Legacy support
|
# Legacy support
|
||||||
OPTION(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF)
|
option(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF)
|
||||||
|
|
||||||
IF (ZSTD_LEGACY_SUPPORT)
|
if (ZSTD_LEGACY_SUPPORT)
|
||||||
MESSAGE(STATUS "ZSTD_LEGACY_SUPPORT defined!")
|
message(STATUS "ZSTD_LEGACY_SUPPORT defined!")
|
||||||
ADD_DEFINITIONS(-DZSTD_LEGACY_SUPPORT=4)
|
add_definitions(-DZSTD_LEGACY_SUPPORT=4)
|
||||||
ELSE (ZSTD_LEGACY_SUPPORT)
|
else ()
|
||||||
MESSAGE(STATUS "ZSTD_LEGACY_SUPPORT not defined!")
|
message(STATUS "ZSTD_LEGACY_SUPPORT not defined!")
|
||||||
ADD_DEFINITIONS(-DZSTD_LEGACY_SUPPORT=0)
|
add_definitions(-DZSTD_LEGACY_SUPPORT=0)
|
||||||
ENDIF (ZSTD_LEGACY_SUPPORT)
|
endif ()
|
||||||
|
|
||||||
# Multi-threading support
|
# Multi-threading support
|
||||||
OPTION(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON)
|
option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON)
|
||||||
|
|
||||||
IF (ZSTD_MULTITHREAD_SUPPORT)
|
if (ZSTD_MULTITHREAD_SUPPORT)
|
||||||
MESSAGE(STATUS "ZSTD_MULTITHREAD_SUPPORT is enabled")
|
message(STATUS "ZSTD_MULTITHREAD_SUPPORT is enabled")
|
||||||
ELSE (ZSTD_MULTITHREAD_SUPPORT)
|
else ()
|
||||||
MESSAGE(STATUS "ZSTD_MULTITHREAD_SUPPORT is disabled")
|
message(STATUS "ZSTD_MULTITHREAD_SUPPORT is disabled")
|
||||||
ENDIF (ZSTD_MULTITHREAD_SUPPORT)
|
endif ()
|
||||||
|
|
||||||
OPTION(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" ON)
|
option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" ON)
|
||||||
OPTION(ZSTD_BUILD_CONTRIB "BUILD CONTRIB" OFF)
|
option(ZSTD_BUILD_CONTRIB "BUILD CONTRIB" OFF)
|
||||||
OPTION(ZSTD_BUILD_TESTS "BUILD TESTS" OFF)
|
option(ZSTD_BUILD_TESTS "BUILD TESTS" OFF)
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
OPTION(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF)
|
option(ZSTD_USE_STATIC_RUNTIME "LINK TO STATIC RUN-TIME LIBRARIES" OFF)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# External dependencies
|
# External dependencies
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
IF (ZSTD_MULTITHREAD_SUPPORT AND UNIX)
|
if (ZSTD_MULTITHREAD_SUPPORT AND UNIX)
|
||||||
SET(THREADS_PREFER_PTHREAD_FLAG ON)
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
FIND_PACKAGE(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
IF(CMAKE_USE_PTHREADS_INIT)
|
if(CMAKE_USE_PTHREADS_INIT)
|
||||||
SET(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}")
|
set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}")
|
||||||
ELSE()
|
else()
|
||||||
MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
||||||
ENDIF()
|
endif()
|
||||||
ENDIF (ZSTD_MULTITHREAD_SUPPORT AND UNIX)
|
endif ()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Add source directories
|
# Add source directories
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
ADD_SUBDIRECTORY(lib)
|
add_subdirectory(lib)
|
||||||
|
|
||||||
IF (ZSTD_BUILD_PROGRAMS)
|
if (ZSTD_BUILD_PROGRAMS)
|
||||||
IF (NOT ZSTD_BUILD_STATIC)
|
if (NOT ZSTD_BUILD_STATIC)
|
||||||
MESSAGE(SEND_ERROR "You need to build static library to build zstd CLI")
|
message(SEND_ERROR "You need to build static library to build zstd CLI")
|
||||||
ENDIF (NOT ZSTD_BUILD_STATIC)
|
endif ()
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(programs)
|
add_subdirectory(programs)
|
||||||
ENDIF (ZSTD_BUILD_PROGRAMS)
|
endif ()
|
||||||
|
|
||||||
IF (ZSTD_BUILD_TESTS)
|
if (ZSTD_BUILD_TESTS)
|
||||||
IF (NOT ZSTD_BUILD_STATIC)
|
if (NOT ZSTD_BUILD_STATIC)
|
||||||
MESSAGE(SEND_ERROR "You need to build static library to build tests")
|
message(SEND_ERROR "You need to build static library to build tests")
|
||||||
ENDIF (NOT ZSTD_BUILD_STATIC)
|
endif ()
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(tests)
|
add_subdirectory(tests)
|
||||||
ENDIF (ZSTD_BUILD_TESTS)
|
endif ()
|
||||||
|
|
||||||
IF (ZSTD_BUILD_CONTRIB)
|
if (ZSTD_BUILD_CONTRIB)
|
||||||
ADD_SUBDIRECTORY(contrib)
|
add_subdirectory(contrib)
|
||||||
ENDIF (ZSTD_BUILD_CONTRIB)
|
endif ()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Add clean-all target
|
# Add clean-all target
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
ADD_CUSTOM_TARGET(clean-all
|
add_custom_target(clean-all
|
||||||
COMMAND ${CMAKE_BUILD_TOOL} clean
|
COMMAND ${CMAKE_BUILD_TOOL} clean
|
||||||
COMMAND rm -rf ${CMAKE_BINARY_DIR}/
|
COMMAND rm -rf ${CMAKE_BINARY_DIR}/
|
||||||
)
|
)
|
||||||
|
@ -20,7 +20,7 @@ function(EnableCompilerFlag _flag _C _CXX)
|
|||||||
endif ()
|
endif ()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
MACRO(ADD_ZSTD_COMPILATION_FLAGS)
|
macro(ADD_ZSTD_COMPILATION_FLAGS)
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW
|
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW
|
||||||
#Set c++11 by default
|
#Set c++11 by default
|
||||||
EnableCompilerFlag("-std=c++11" false true)
|
EnableCompilerFlag("-std=c++11" false true)
|
||||||
@ -46,22 +46,22 @@ MACRO(ADD_ZSTD_COMPILATION_FLAGS)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Remove duplicates compilation flags
|
# Remove duplicates compilation flags
|
||||||
FOREACH (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
foreach (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||||
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
||||||
separate_arguments(${flag_var})
|
separate_arguments(${flag_var})
|
||||||
list(REMOVE_DUPLICATES ${flag_var})
|
list(REMOVE_DUPLICATES ${flag_var})
|
||||||
string(REPLACE ";" " " ${flag_var} "${${flag_var}}")
|
string(REPLACE ";" " " ${flag_var} "${${flag_var}}")
|
||||||
ENDFOREACH (flag_var)
|
endforeach ()
|
||||||
|
|
||||||
if (MSVC AND ZSTD_USE_STATIC_RUNTIME)
|
if (MSVC AND ZSTD_USE_STATIC_RUNTIME)
|
||||||
FOREACH (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
foreach (flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||||
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
||||||
STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||||
ENDFOREACH (flag_var)
|
endforeach ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
ENDMACRO(ADD_ZSTD_COMPILATION_FLAGS)
|
endmacro()
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
function(GetZstdLibraryVersion _header _major _minor _release)
|
function(GetZstdLibraryVersion _header _major _minor _release)
|
||||||
# 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(${_release} ${CMAKE_MATCH_3} PARENT_SCOPE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
65
build/cmake/README.md
Normal file
65
build/cmake/README.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Cmake contributions
|
||||||
|
|
||||||
|
Contributions to the cmake build configurations are welcome. Please
|
||||||
|
use case sensitivity that matches modern (ie. cmake version 2.6 and above)
|
||||||
|
conventions of using lower-case for commands, and upper-case for
|
||||||
|
varibles.
|
||||||
|
|
||||||
|
# CMake Style Recommendations
|
||||||
|
|
||||||
|
## Indent all code correctly, i.e. the body of
|
||||||
|
|
||||||
|
* if/else/endif
|
||||||
|
* foreach/endforeach
|
||||||
|
* while/endwhile
|
||||||
|
* macro/endmacro
|
||||||
|
* function/endfunction
|
||||||
|
|
||||||
|
Use spaces for indenting, 2, 3 or 4 spaces preferably. Use the same amount of
|
||||||
|
spaces for indenting as is used in the rest of the file. Do not use tabs.
|
||||||
|
|
||||||
|
## Upper/lower casing
|
||||||
|
|
||||||
|
Most important: use consistent upper- or lowercasing within one file !
|
||||||
|
|
||||||
|
In general, the all-lowercase style is preferred.
|
||||||
|
|
||||||
|
So, this is recommended:
|
||||||
|
|
||||||
|
```
|
||||||
|
add_executable(foo foo.c)
|
||||||
|
```
|
||||||
|
|
||||||
|
These forms are discouraged
|
||||||
|
|
||||||
|
```
|
||||||
|
ADD_EXECUTABLE(bar bar.c)
|
||||||
|
Add_Executable(hello hello.c)
|
||||||
|
aDd_ExEcUtAbLe(blub blub.c)
|
||||||
|
```
|
||||||
|
|
||||||
|
## End commands
|
||||||
|
To make the code easier to read, use empty commands for endforeach(), endif(),
|
||||||
|
endfunction(), endmacro() and endwhile(). Also, use empty else() commands.
|
||||||
|
|
||||||
|
For example, do this:
|
||||||
|
|
||||||
|
```
|
||||||
|
if(FOOVAR)
|
||||||
|
some_command(...)
|
||||||
|
else()
|
||||||
|
another_command(...)
|
||||||
|
endif()
|
||||||
|
```
|
||||||
|
|
||||||
|
and not this:
|
||||||
|
|
||||||
|
```
|
||||||
|
if(BARVAR)
|
||||||
|
some_other_command(...)
|
||||||
|
endif(BARVAR)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Other resources for best practices
|
||||||
|
|
||||||
|
`https://cmake.org/cmake/help/latest/manual/cmake-developer.7.html#modules`
|
@ -7,7 +7,7 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(contrib)
|
project(contrib)
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(pzstd)
|
add_subdirectory(pzstd)
|
||||||
ADD_SUBDIRECTORY(gen_html)
|
add_subdirectory(gen_html)
|
||||||
|
@ -7,24 +7,24 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(gen_html)
|
project(gen_html)
|
||||||
INCLUDE(GetZstdLibraryVersion)
|
include(GetZstdLibraryVersion)
|
||||||
|
|
||||||
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||||
|
|
||||||
# Define programs directory, where sources and header files are located
|
# Define programs directory, where sources and header files are located
|
||||||
SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
||||||
SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
||||||
SET(GENHTML_DIR ${ZSTD_SOURCE_DIR}/contrib/gen_html)
|
set(GENHTML_DIR ${ZSTD_SOURCE_DIR}/contrib/gen_html)
|
||||||
SET(GENHTML_BINARY ${PROJECT_BINARY_DIR}/gen_html${CMAKE_EXECUTABLE_SUFFIX})
|
set(GENHTML_BINARY ${PROJECT_BINARY_DIR}/gen_html${CMAKE_EXECUTABLE_SUFFIX})
|
||||||
INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${GENHTML_DIR})
|
include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${GENHTML_DIR})
|
||||||
|
|
||||||
ADD_EXECUTABLE(gen_html ${GENHTML_DIR}/gen_html.cpp)
|
add_executable(gen_html ${GENHTML_DIR}/gen_html.cpp)
|
||||||
|
|
||||||
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h VMAJOR VMINOR VRELEASE)
|
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h VMAJOR VMINOR VRELEASE)
|
||||||
SET(LIBVERSION "${VMAJOR}.${VMINOR}.${VRELEASE}")
|
set(LIBVERSION "${VMAJOR}.${VMINOR}.${VRELEASE}")
|
||||||
ADD_CUSTOM_TARGET(zstd_manual.html ALL
|
add_custom_target(zstd_manual.html ALL
|
||||||
${GENHTML_BINARY} "${LIBVERSION}" "${LIBRARY_DIR}/zstd.h" "${PROJECT_BINARY_DIR}/zstd_manual.html"
|
${GENHTML_BINARY} "${LIBVERSION}" "${LIBRARY_DIR}/zstd.h" "${PROJECT_BINARY_DIR}/zstd_manual.html"
|
||||||
DEPENDS gen_html COMMENT "Update zstd manual")
|
DEPENDS gen_html COMMENT "Update zstd manual")
|
||||||
|
|
||||||
INSTALL(FILES "${PROJECT_BINARY_DIR}/zstd_manual.html" DESTINATION "${CMAKE_INSTALL_DOCDIR}")
|
install(FILES "${PROJECT_BINARY_DIR}/zstd_manual.html" DESTINATION "${CMAKE_INSTALL_DOCDIR}")
|
||||||
|
@ -7,26 +7,26 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(pzstd)
|
project(pzstd)
|
||||||
|
|
||||||
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||||
|
|
||||||
# Define programs directory, where sources and header files are located
|
# Define programs directory, where sources and header files are located
|
||||||
SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
||||||
SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
||||||
SET(PZSTD_DIR ${ZSTD_SOURCE_DIR}/contrib/pzstd)
|
set(PZSTD_DIR ${ZSTD_SOURCE_DIR}/contrib/pzstd)
|
||||||
INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${PZSTD_DIR})
|
include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${PZSTD_DIR})
|
||||||
|
|
||||||
ADD_EXECUTABLE(pzstd ${PROGRAMS_DIR}/util.c ${PZSTD_DIR}/main.cpp ${PZSTD_DIR}/Options.cpp ${PZSTD_DIR}/Pzstd.cpp ${PZSTD_DIR}/SkippableFrame.cpp)
|
add_executable(pzstd ${PROGRAMS_DIR}/util.c ${PZSTD_DIR}/main.cpp ${PZSTD_DIR}/Options.cpp ${PZSTD_DIR}/Pzstd.cpp ${PZSTD_DIR}/SkippableFrame.cpp)
|
||||||
SET_PROPERTY(TARGET pzstd APPEND PROPERTY COMPILE_DEFINITIONS "NDEBUG")
|
set_property(TARGET pzstd APPEND PROPERTY COMPILE_DEFINITIONS "NDEBUG")
|
||||||
SET_PROPERTY(TARGET pzstd APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow")
|
set_property(TARGET pzstd APPEND PROPERTY COMPILE_OPTIONS "-Wno-shadow")
|
||||||
|
|
||||||
SET(THREADS_PREFER_PTHREAD_FLAG ON)
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
FIND_PACKAGE(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
IF (CMAKE_USE_PTHREADS_INIT)
|
if (CMAKE_USE_PTHREADS_INIT)
|
||||||
TARGET_LINK_LIBRARIES(pzstd libzstd_shared ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(pzstd libzstd_shared ${CMAKE_THREAD_LIBS_INIT})
|
||||||
ELSE()
|
else()
|
||||||
MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
||||||
ENDIF()
|
endif()
|
||||||
|
|
||||||
INSTALL(TARGETS pzstd RUNTIME DESTINATION "bin")
|
install(TARGETS pzstd RUNTIME DESTINATION "bin")
|
||||||
|
@ -7,26 +7,26 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(libzstd)
|
project(libzstd)
|
||||||
|
|
||||||
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||||
OPTION(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON)
|
option(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON)
|
||||||
OPTION(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON)
|
option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON)
|
||||||
|
|
||||||
IF(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC)
|
if(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC)
|
||||||
MESSAGE(SEND_ERROR "You need to build at least one flavor of libzstd")
|
message(SEND_ERROR "You need to build at least one flavor of libzstd")
|
||||||
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)
|
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
||||||
INCLUDE_DIRECTORIES(${LIBRARY_DIR} ${LIBRARY_DIR}/common)
|
include_directories(${LIBRARY_DIR} ${LIBRARY_DIR}/common)
|
||||||
|
|
||||||
# Parse version
|
# Parse version
|
||||||
INCLUDE(GetZstdLibraryVersion)
|
include(GetZstdLibraryVersion)
|
||||||
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h LIBVER_MAJOR LIBVER_MINOR LIBVER_RELEASE)
|
GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h LIBVER_MAJOR LIBVER_MINOR LIBVER_RELEASE)
|
||||||
MESSAGE(STATUS "ZSTD VERSION ${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
|
||||||
${LIBRARY_DIR}/common/threading.c
|
${LIBRARY_DIR}/common/threading.c
|
||||||
@ -56,7 +56,7 @@ SET(Sources
|
|||||||
${LIBRARY_DIR}/deprecated/zbuff_compress.c
|
${LIBRARY_DIR}/deprecated/zbuff_compress.c
|
||||||
${LIBRARY_DIR}/deprecated/zbuff_decompress.c)
|
${LIBRARY_DIR}/deprecated/zbuff_decompress.c)
|
||||||
|
|
||||||
SET(Headers
|
set(Headers
|
||||||
${LIBRARY_DIR}/zstd.h
|
${LIBRARY_DIR}/zstd.h
|
||||||
${LIBRARY_DIR}/common/debug.h
|
${LIBRARY_DIR}/common/debug.h
|
||||||
${LIBRARY_DIR}/common/pool.h
|
${LIBRARY_DIR}/common/pool.h
|
||||||
@ -83,11 +83,11 @@ SET(Headers
|
|||||||
${LIBRARY_DIR}/dictBuilder/cover.h
|
${LIBRARY_DIR}/dictBuilder/cover.h
|
||||||
${LIBRARY_DIR}/deprecated/zbuff.h)
|
${LIBRARY_DIR}/deprecated/zbuff.h)
|
||||||
|
|
||||||
IF (ZSTD_LEGACY_SUPPORT)
|
if (ZSTD_LEGACY_SUPPORT)
|
||||||
SET(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy)
|
set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy)
|
||||||
INCLUDE_DIRECTORIES(${LIBRARY_LEGACY_DIR})
|
include_directories(${LIBRARY_LEGACY_DIR})
|
||||||
|
|
||||||
SET(Sources ${Sources}
|
set(Sources ${Sources}
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v01.c
|
${LIBRARY_LEGACY_DIR}/zstd_v01.c
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v02.c
|
${LIBRARY_LEGACY_DIR}/zstd_v02.c
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v03.c
|
${LIBRARY_LEGACY_DIR}/zstd_v03.c
|
||||||
@ -96,7 +96,7 @@ IF (ZSTD_LEGACY_SUPPORT)
|
|||||||
${LIBRARY_LEGACY_DIR}/zstd_v06.c
|
${LIBRARY_LEGACY_DIR}/zstd_v06.c
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v07.c)
|
${LIBRARY_LEGACY_DIR}/zstd_v07.c)
|
||||||
|
|
||||||
SET(Headers ${Headers}
|
set(Headers ${Headers}
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_legacy.h
|
${LIBRARY_LEGACY_DIR}/zstd_legacy.h
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v01.h
|
${LIBRARY_LEGACY_DIR}/zstd_v01.h
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v02.h
|
${LIBRARY_LEGACY_DIR}/zstd_v02.h
|
||||||
@ -105,83 +105,83 @@ IF (ZSTD_LEGACY_SUPPORT)
|
|||||||
${LIBRARY_LEGACY_DIR}/zstd_v05.h
|
${LIBRARY_LEGACY_DIR}/zstd_v05.h
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v06.h
|
${LIBRARY_LEGACY_DIR}/zstd_v06.h
|
||||||
${LIBRARY_LEGACY_DIR}/zstd_v07.h)
|
${LIBRARY_LEGACY_DIR}/zstd_v07.h)
|
||||||
ENDIF (ZSTD_LEGACY_SUPPORT)
|
endif ()
|
||||||
|
|
||||||
IF (MSVC)
|
if (MSVC)
|
||||||
SET(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll)
|
set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll)
|
||||||
SET(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc)
|
set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc)
|
||||||
ENDIF (MSVC)
|
endif ()
|
||||||
|
|
||||||
# Split project to static and shared libraries build
|
# Split project to static and shared libraries build
|
||||||
IF (ZSTD_BUILD_SHARED)
|
if (ZSTD_BUILD_SHARED)
|
||||||
ADD_LIBRARY(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})
|
add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})
|
||||||
IF (ZSTD_MULTITHREAD_SUPPORT)
|
if (ZSTD_MULTITHREAD_SUPPORT)
|
||||||
SET_PROPERTY(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
||||||
IF (UNIX)
|
if (UNIX)
|
||||||
TARGET_LINK_LIBRARIES(libzstd_shared ${THREADS_LIBS})
|
target_link_libraries(libzstd_shared ${THREADS_LIBS})
|
||||||
ENDIF ()
|
endif ()
|
||||||
ENDIF()
|
endif()
|
||||||
ENDIF (ZSTD_BUILD_SHARED)
|
endif ()
|
||||||
IF (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
ADD_LIBRARY(libzstd_static STATIC ${Sources} ${Headers})
|
add_library(libzstd_static STATIC ${Sources} ${Headers})
|
||||||
IF (ZSTD_MULTITHREAD_SUPPORT)
|
if (ZSTD_MULTITHREAD_SUPPORT)
|
||||||
SET_PROPERTY(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
||||||
IF (UNIX)
|
if (UNIX)
|
||||||
TARGET_LINK_LIBRARIES(libzstd_static ${THREADS_LIBS})
|
target_link_libraries(libzstd_static ${THREADS_LIBS})
|
||||||
ENDIF ()
|
endif ()
|
||||||
ENDIF ()
|
endif ()
|
||||||
ENDIF (ZSTD_BUILD_STATIC)
|
endif ()
|
||||||
|
|
||||||
# Add specific compile definitions for MSVC project
|
# Add specific compile definitions for MSVC project
|
||||||
IF (MSVC)
|
if (MSVC)
|
||||||
IF (ZSTD_BUILD_SHARED)
|
if (ZSTD_BUILD_SHARED)
|
||||||
SET_PROPERTY(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS")
|
set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_DLL_EXPORT=1;ZSTD_HEAPMODE=0;_CONSOLE;_CRT_SECURE_NO_WARNINGS")
|
||||||
ENDIF (ZSTD_BUILD_SHARED)
|
endif ()
|
||||||
IF (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
SET_PROPERTY(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS")
|
set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS")
|
||||||
ENDIF (ZSTD_BUILD_STATIC)
|
endif ()
|
||||||
ENDIF (MSVC)
|
endif ()
|
||||||
|
|
||||||
# With MSVC static library needs to be renamed to avoid conflict with import library
|
# With MSVC static library needs to be renamed to avoid conflict with import library
|
||||||
IF (MSVC)
|
if (MSVC)
|
||||||
SET(STATIC_LIBRARY_BASE_NAME zstd_static)
|
set(STATIC_LIBRARY_BASE_NAME zstd_static)
|
||||||
ELSE ()
|
else ()
|
||||||
SET(STATIC_LIBRARY_BASE_NAME zstd)
|
set(STATIC_LIBRARY_BASE_NAME zstd)
|
||||||
ENDIF (MSVC)
|
endif ()
|
||||||
|
|
||||||
# Define static and shared library names
|
# Define static and shared library names
|
||||||
IF (ZSTD_BUILD_SHARED)
|
if (ZSTD_BUILD_SHARED)
|
||||||
SET_TARGET_PROPERTIES(
|
set_target_properties(
|
||||||
libzstd_shared
|
libzstd_shared
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
OUTPUT_NAME zstd
|
OUTPUT_NAME zstd
|
||||||
SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE})
|
SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE})
|
||||||
ENDIF (ZSTD_BUILD_SHARED)
|
endif ()
|
||||||
|
|
||||||
IF (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
SET_TARGET_PROPERTIES(
|
set_target_properties(
|
||||||
libzstd_static
|
libzstd_static
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
|
OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
|
||||||
ENDIF (ZSTD_BUILD_STATIC)
|
endif ()
|
||||||
|
|
||||||
IF (UNIX)
|
if (UNIX)
|
||||||
# pkg-config
|
# pkg-config
|
||||||
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 "${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}")
|
||||||
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}"
|
||||||
-P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake"
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake"
|
||||||
COMMENT "Creating pkg-config file")
|
COMMENT "Creating pkg-config file")
|
||||||
|
|
||||||
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${LIBDIR}/pkgconfig")
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "${LIBDIR}/pkgconfig")
|
||||||
ENDIF (UNIX)
|
endif ()
|
||||||
|
|
||||||
# install target
|
# install target
|
||||||
INSTALL(FILES
|
install(FILES
|
||||||
${LIBRARY_DIR}/zstd.h
|
${LIBRARY_DIR}/zstd.h
|
||||||
${LIBRARY_DIR}/deprecated/zbuff.h
|
${LIBRARY_DIR}/deprecated/zbuff.h
|
||||||
${LIBRARY_DIR}/dictBuilder/zdict.h
|
${LIBRARY_DIR}/dictBuilder/zdict.h
|
||||||
@ -189,20 +189,20 @@ INSTALL(FILES
|
|||||||
${LIBRARY_DIR}/common/zstd_errors.h
|
${LIBRARY_DIR}/common/zstd_errors.h
|
||||||
DESTINATION "include")
|
DESTINATION "include")
|
||||||
|
|
||||||
IF (ZSTD_BUILD_SHARED)
|
if (ZSTD_BUILD_SHARED)
|
||||||
INSTALL(TARGETS libzstd_shared RUNTIME DESTINATION "bin"
|
install(TARGETS libzstd_shared RUNTIME DESTINATION "bin"
|
||||||
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||||
ENDIF()
|
endif()
|
||||||
IF (ZSTD_BUILD_STATIC)
|
if (ZSTD_BUILD_STATIC)
|
||||||
INSTALL(TARGETS libzstd_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
install(TARGETS libzstd_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||||
ENDIF (ZSTD_BUILD_STATIC)
|
endif ()
|
||||||
|
|
||||||
# uninstall target
|
# uninstall target
|
||||||
CONFIGURE_FILE(
|
configure_file(
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
IMMEDIATE @ONLY)
|
IMMEDIATE @ONLY)
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(uninstall
|
add_custom_target(uninstall
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
|
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
|
||||||
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
|
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
|
||||||
endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
|
endif()
|
||||||
|
|
||||||
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
|
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
|
||||||
string(REGEX REPLACE "\n" ";" files "${files}")
|
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||||
@ -15,8 +15,8 @@ foreach(file ${files})
|
|||||||
)
|
)
|
||||||
if(NOT "${rm_retval}" STREQUAL 0)
|
if(NOT "${rm_retval}" STREQUAL 0)
|
||||||
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||||
endif(NOT "${rm_retval}" STREQUAL 0)
|
endif()
|
||||||
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
else()
|
||||||
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||||
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
endif()
|
||||||
endforeach(file)
|
endforeach()
|
||||||
|
@ -1 +1 @@
|
|||||||
CONFIGURE_FILE("${IN}" "${OUT}" @ONLY)
|
configure_file("${IN}" "${OUT}" @ONLY)
|
||||||
|
@ -7,103 +7,103 @@
|
|||||||
# in the COPYING file in the root directory of this source tree).
|
# in the COPYING file in the root directory of this source tree).
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(programs)
|
project(programs)
|
||||||
|
|
||||||
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||||
|
|
||||||
# Define programs directory, where sources and header files are located
|
# Define programs directory, where sources and header files are located
|
||||||
SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
||||||
SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
||||||
INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder)
|
include_directories(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder)
|
||||||
|
|
||||||
IF (ZSTD_LEGACY_SUPPORT)
|
if (ZSTD_LEGACY_SUPPORT)
|
||||||
SET(PROGRAMS_LEGACY_DIR ${PROGRAMS_DIR}/legacy)
|
set(PROGRAMS_LEGACY_DIR ${PROGRAMS_DIR}/legacy)
|
||||||
INCLUDE_DIRECTORIES(${PROGRAMS_LEGACY_DIR} ${LIBRARY_DIR}/legacy)
|
include_directories(${PROGRAMS_LEGACY_DIR} ${LIBRARY_DIR}/legacy)
|
||||||
ENDIF (ZSTD_LEGACY_SUPPORT)
|
endif ()
|
||||||
|
|
||||||
IF (MSVC)
|
if (MSVC)
|
||||||
SET(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/zstd)
|
set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/zstd)
|
||||||
SET(PlatformDependResources ${MSVC_RESOURCE_DIR}/zstd.rc)
|
set(PlatformDependResources ${MSVC_RESOURCE_DIR}/zstd.rc)
|
||||||
ENDIF (MSVC)
|
endif ()
|
||||||
|
|
||||||
ADD_EXECUTABLE(zstd ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PlatformDependResources})
|
add_executable(zstd ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PlatformDependResources})
|
||||||
TARGET_LINK_LIBRARIES(zstd libzstd_static)
|
target_link_libraries(zstd libzstd_static)
|
||||||
IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
if (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
||||||
TARGET_LINK_LIBRARIES(zstd rt)
|
target_link_libraries(zstd rt)
|
||||||
ENDIF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
endif ()
|
||||||
INSTALL(TARGETS zstd RUNTIME DESTINATION "bin")
|
install(TARGETS zstd RUNTIME DESTINATION "bin")
|
||||||
|
|
||||||
IF (UNIX)
|
if (UNIX)
|
||||||
ADD_CUSTOM_TARGET(zstdcat ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdcat DEPENDS zstd COMMENT "Creating zstdcat symlink")
|
add_custom_target(zstdcat ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdcat DEPENDS zstd COMMENT "Creating zstdcat symlink")
|
||||||
ADD_CUSTOM_TARGET(unzstd ALL ${CMAKE_COMMAND} -E create_symlink zstd unzstd DEPENDS zstd COMMENT "Creating unzstd symlink")
|
add_custom_target(unzstd ALL ${CMAKE_COMMAND} -E create_symlink zstd unzstd DEPENDS zstd COMMENT "Creating unzstd symlink")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat DESTINATION "bin")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat DESTINATION "bin")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd DESTINATION "bin")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd DESTINATION "bin")
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(zstd.1 ALL
|
add_custom_target(zstd.1 ALL
|
||||||
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstd.1 .
|
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstd.1 .
|
||||||
COMMENT "Copying manpage zstd.1")
|
COMMENT "Copying manpage zstd.1")
|
||||||
ADD_CUSTOM_TARGET(zstdgrep.1 ALL
|
add_custom_target(zstdgrep.1 ALL
|
||||||
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdgrep.1 .
|
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdgrep.1 .
|
||||||
COMMENT "Copying manpage zstdgrep.1")
|
COMMENT "Copying manpage zstdgrep.1")
|
||||||
ADD_CUSTOM_TARGET(zstdless.1 ALL
|
add_custom_target(zstdless.1 ALL
|
||||||
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdless.1 .
|
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstdless.1 .
|
||||||
COMMENT "Copying manpage zstdless.1")
|
COMMENT "Copying manpage zstdless.1")
|
||||||
ADD_CUSTOM_TARGET(zstdcat.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 zstdcat.1 DEPENDS zstd.1 COMMENT "Creating zstdcat.1 symlink")
|
add_custom_target(zstdcat.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 zstdcat.1 DEPENDS zstd.1 COMMENT "Creating zstdcat.1 symlink")
|
||||||
ADD_CUSTOM_TARGET(unzstd.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 unzstd.1 DEPENDS zstd.1 COMMENT "Creating unzstd.1 symlink")
|
add_custom_target(unzstd.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 unzstd.1 DEPENDS zstd.1 COMMENT "Creating unzstd.1 symlink")
|
||||||
|
|
||||||
# Define MAN_INSTALL_DIR if necessary
|
# Define MAN_INSTALL_DIR if necessary
|
||||||
IF (MAN_INSTALL_DIR)
|
if (MAN_INSTALL_DIR)
|
||||||
ELSE (MAN_INSTALL_DIR)
|
else ()
|
||||||
SET(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
set(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/man/man1)
|
||||||
ENDIF (MAN_INSTALL_DIR)
|
endif ()
|
||||||
|
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstd.1 DESTINATION "${MAN_INSTALL_DIR}")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstd.1 DESTINATION "${MAN_INSTALL_DIR}")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat.1 DESTINATION "${MAN_INSTALL_DIR}")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat.1 DESTINATION "${MAN_INSTALL_DIR}")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd.1 DESTINATION "${MAN_INSTALL_DIR}")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd.1 DESTINATION "${MAN_INSTALL_DIR}")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdgrep.1 DESTINATION "${MAN_INSTALL_DIR}")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdgrep.1 DESTINATION "${MAN_INSTALL_DIR}")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdless.1 DESTINATION "${MAN_INSTALL_DIR}")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdless.1 DESTINATION "${MAN_INSTALL_DIR}")
|
||||||
|
|
||||||
ADD_EXECUTABLE(zstd-frugal ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c)
|
add_executable(zstd-frugal ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/fileio.c)
|
||||||
TARGET_LINK_LIBRARIES(zstd-frugal libzstd_static)
|
target_link_libraries(zstd-frugal libzstd_static)
|
||||||
SET_PROPERTY(TARGET zstd-frugal APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_NOBENCH;ZSTD_NODICT")
|
set_property(TARGET zstd-frugal APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_NOBENCH;ZSTD_NODICT")
|
||||||
ENDIF (UNIX)
|
endif ()
|
||||||
|
|
||||||
# Add multi-threading support definitions
|
# Add multi-threading support definitions
|
||||||
|
|
||||||
IF (ZSTD_MULTITHREAD_SUPPORT)
|
if (ZSTD_MULTITHREAD_SUPPORT)
|
||||||
SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
||||||
|
|
||||||
IF (UNIX)
|
if (UNIX)
|
||||||
TARGET_LINK_LIBRARIES(zstd ${THREADS_LIBS})
|
target_link_libraries(zstd ${THREADS_LIBS})
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(zstdmt ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdmt DEPENDS zstd COMMENT "Creating zstdmt symlink")
|
add_custom_target(zstdmt ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdmt DEPENDS zstd COMMENT "Creating zstdmt symlink")
|
||||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "bin")
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "bin")
|
||||||
ENDIF (UNIX)
|
endif ()
|
||||||
ENDIF (ZSTD_MULTITHREAD_SUPPORT)
|
endif ()
|
||||||
|
|
||||||
OPTION(ZSTD_ZLIB_SUPPORT "ZLIB SUPPORT" OFF)
|
option(ZSTD_ZLIB_SUPPORT "ZLIB SUPPORT" OFF)
|
||||||
OPTION(ZSTD_LZMA_SUPPORT "LZMA SUPPORT" OFF)
|
option(ZSTD_LZMA_SUPPORT "LZMA SUPPORT" OFF)
|
||||||
|
|
||||||
IF (ZSTD_ZLIB_SUPPORT)
|
if (ZSTD_ZLIB_SUPPORT)
|
||||||
FIND_PACKAGE(ZLIB REQUIRED)
|
find_package(ZLIB REQUIRED)
|
||||||
|
|
||||||
IF (ZLIB_FOUND)
|
if (ZLIB_FOUND)
|
||||||
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})
|
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||||
TARGET_LINK_LIBRARIES(zstd ${ZLIB_LIBRARIES})
|
target_link_libraries(zstd ${ZLIB_LIBRARIES})
|
||||||
SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS")
|
set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS")
|
||||||
ELSE ()
|
else ()
|
||||||
MESSAGE(SEND_ERROR "zlib library is missing")
|
message(SEND_ERROR "zlib library is missing")
|
||||||
ENDIF ()
|
endif ()
|
||||||
ENDIF ()
|
endif ()
|
||||||
|
|
||||||
IF (ZSTD_LZMA_SUPPORT)
|
if (ZSTD_LZMA_SUPPORT)
|
||||||
FIND_PACKAGE(LibLZMA REQUIRED)
|
find_package(LibLZMA REQUIRED)
|
||||||
|
|
||||||
IF (LIBLZMA_FOUND)
|
if (LIBLZMA_FOUND)
|
||||||
INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS})
|
include_directories(${LIBLZMA_INCLUDE_DIRS})
|
||||||
TARGET_LINK_LIBRARIES(zstd ${LIBLZMA_LIBRARIES})
|
target_link_libraries(zstd ${LIBLZMA_LIBRARIES})
|
||||||
SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS")
|
set_property(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS")
|
||||||
ELSE ()
|
else ()
|
||||||
MESSAGE(SEND_ERROR "lzma library is missing")
|
message(SEND_ERROR "lzma library is missing")
|
||||||
ENDIF ()
|
endif ()
|
||||||
ENDIF ()
|
endif ()
|
||||||
|
@ -30,26 +30,26 @@
|
|||||||
# - zstd homepage : http://www.zstd.net/
|
# - zstd homepage : http://www.zstd.net/
|
||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(tests)
|
project(tests)
|
||||||
|
|
||||||
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||||
|
|
||||||
# Define programs directory, where sources and header files are located
|
# Define programs directory, where sources and header files are located
|
||||||
SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
set(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
||||||
SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
set(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
||||||
SET(TESTS_DIR ${ZSTD_SOURCE_DIR}/tests)
|
set(TESTS_DIR ${ZSTD_SOURCE_DIR}/tests)
|
||||||
INCLUDE_DIRECTORIES(${TESTS_DIR} ${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder)
|
include_directories(${TESTS_DIR} ${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder)
|
||||||
|
|
||||||
ADD_EXECUTABLE(datagen ${PROGRAMS_DIR}/datagen.c ${TESTS_DIR}/datagencli.c)
|
add_executable(datagen ${PROGRAMS_DIR}/datagen.c ${TESTS_DIR}/datagencli.c)
|
||||||
TARGET_LINK_LIBRARIES(datagen libzstd_static)
|
target_link_libraries(datagen libzstd_static)
|
||||||
|
|
||||||
ADD_EXECUTABLE(fullbench ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${TESTS_DIR}/fullbench.c)
|
add_executable(fullbench ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${TESTS_DIR}/fullbench.c)
|
||||||
TARGET_LINK_LIBRARIES(fullbench libzstd_static)
|
target_link_libraries(fullbench libzstd_static)
|
||||||
|
|
||||||
ADD_EXECUTABLE(fuzzer ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/fuzzer.c)
|
add_executable(fuzzer ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/fuzzer.c)
|
||||||
TARGET_LINK_LIBRARIES(fuzzer libzstd_static)
|
target_link_libraries(fuzzer libzstd_static)
|
||||||
|
|
||||||
IF (UNIX)
|
if (UNIX)
|
||||||
ADD_EXECUTABLE(paramgrill ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/paramgrill.c)
|
add_executable(paramgrill ${PROGRAMS_DIR}/benchfn.c ${PROGRAMS_DIR}/benchzstd.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/util.c ${TESTS_DIR}/paramgrill.c)
|
||||||
TARGET_LINK_LIBRARIES(paramgrill libzstd_static m) #m is math library
|
target_link_libraries(paramgrill libzstd_static m) #m is math library
|
||||||
ENDIF (UNIX)
|
endif ()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user