summaryrefslogtreecommitdiffstats
path: root/src/zstd/build/cmake/lib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/zstd/build/cmake/lib/.gitignore2
-rw-r--r--src/zstd/build/cmake/lib/CMakeLists.txt183
-rw-r--r--src/zstd/build/cmake/lib/cmake_uninstall.cmake.in22
-rw-r--r--src/zstd/build/cmake/lib/pkgconfig.cmake1
4 files changed, 208 insertions, 0 deletions
diff --git a/src/zstd/build/cmake/lib/.gitignore b/src/zstd/build/cmake/lib/.gitignore
new file mode 100644
index 00000000..a4444c8d
--- /dev/null
+++ b/src/zstd/build/cmake/lib/.gitignore
@@ -0,0 +1,2 @@
+# cmake build artefact
+libzstd.pc
diff --git a/src/zstd/build/cmake/lib/CMakeLists.txt b/src/zstd/build/cmake/lib/CMakeLists.txt
new file mode 100644
index 00000000..f5d2eff9
--- /dev/null
+++ b/src/zstd/build/cmake/lib/CMakeLists.txt
@@ -0,0 +1,183 @@
+# ################################################################
+# Copyright (c) 2015-present, Yann Collet, Facebook, Inc.
+# All rights reserved.
+#
+# This source code is licensed under both the BSD-style license (found in the
+# LICENSE file in the root directory of this source tree) and the GPLv2 (found
+# in the COPYING file in the root directory of this source tree).
+# ################################################################
+
+PROJECT(libzstd)
+
+SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
+OPTION(ZSTD_BUILD_STATIC "BUILD STATIC LIBRARIES" ON)
+OPTION(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" ON)
+
+IF(NOT ZSTD_BUILD_SHARED AND NOT ZSTD_BUILD_STATIC)
+ MESSAGE(SEND_ERROR "You need to build at least one flavor of libstd")
+ENDIF()
+
+# Define library directory, where sources and header files are located
+SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
+INCLUDE_DIRECTORIES(${LIBRARY_DIR} ${LIBRARY_DIR}/common)
+
+# Parse version
+INCLUDE(GetZstdLibraryVersion)
+GetZstdLibraryVersion(${LIBRARY_DIR}/zstd.h LIBVER_MAJOR LIBVER_MINOR LIBVER_RELEASE)
+MESSAGE("ZSTD VERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}")
+
+SET(Sources
+ ${LIBRARY_DIR}/common/entropy_common.c
+ ${LIBRARY_DIR}/common/fse_decompress.c
+ ${LIBRARY_DIR}/common/threading.c
+ ${LIBRARY_DIR}/common/pool.c
+ ${LIBRARY_DIR}/common/zstd_common.c
+ ${LIBRARY_DIR}/common/error_private.c
+ ${LIBRARY_DIR}/common/xxhash.c
+ ${LIBRARY_DIR}/compress/fse_compress.c
+ ${LIBRARY_DIR}/compress/huf_compress.c
+ ${LIBRARY_DIR}/compress/zstd_compress.c
+ ${LIBRARY_DIR}/compress/zstdmt_compress.c
+ ${LIBRARY_DIR}/compress/zstd_fast.c
+ ${LIBRARY_DIR}/compress/zstd_double_fast.c
+ ${LIBRARY_DIR}/compress/zstd_lazy.c
+ ${LIBRARY_DIR}/compress/zstd_opt.c
+ ${LIBRARY_DIR}/compress/zstd_ldm.c
+ ${LIBRARY_DIR}/decompress/huf_decompress.c
+ ${LIBRARY_DIR}/decompress/zstd_decompress.c
+ ${LIBRARY_DIR}/dictBuilder/cover.c
+ ${LIBRARY_DIR}/dictBuilder/divsufsort.c
+ ${LIBRARY_DIR}/dictBuilder/zdict.c
+ ${LIBRARY_DIR}/deprecated/zbuff_common.c
+ ${LIBRARY_DIR}/deprecated/zbuff_compress.c
+ ${LIBRARY_DIR}/deprecated/zbuff_decompress.c)
+
+SET(Headers
+ ${LIBRARY_DIR}/zstd.h
+ ${LIBRARY_DIR}/common/pool.h
+ ${LIBRARY_DIR}/common/threading.h
+ ${LIBRARY_DIR}/common/bitstream.h
+ ${LIBRARY_DIR}/common/error_private.h
+ ${LIBRARY_DIR}/common/zstd_errors.h
+ ${LIBRARY_DIR}/common/fse.h
+ ${LIBRARY_DIR}/common/huf.h
+ ${LIBRARY_DIR}/common/mem.h
+ ${LIBRARY_DIR}/common/zstd_internal.h
+ ${LIBRARY_DIR}/compress/zstd_compress.h
+ ${LIBRARY_DIR}/compress/zstd_fast.h
+ ${LIBRARY_DIR}/compress/zstd_double_fast.h
+ ${LIBRARY_DIR}/compress/zstd_lazy.h
+ ${LIBRARY_DIR}/compress/zstd_opt.h
+ ${LIBRARY_DIR}/compress/zstd_ldm.h
+ ${LIBRARY_DIR}/compress/zstdmt_compress.h
+ ${LIBRARY_DIR}/dictBuilder/zdict.h
+ ${LIBRARY_DIR}/deprecated/zbuff.h)
+
+IF (ZSTD_LEGACY_SUPPORT)
+ SET(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy)
+ INCLUDE_DIRECTORIES(${LIBRARY_LEGACY_DIR})
+
+ SET(Sources ${Sources}
+ ${LIBRARY_LEGACY_DIR}/zstd_v01.c
+ ${LIBRARY_LEGACY_DIR}/zstd_v02.c
+ ${LIBRARY_LEGACY_DIR}/zstd_v03.c
+ ${LIBRARY_LEGACY_DIR}/zstd_v04.c
+ ${LIBRARY_LEGACY_DIR}/zstd_v05.c
+ ${LIBRARY_LEGACY_DIR}/zstd_v06.c
+ ${LIBRARY_LEGACY_DIR}/zstd_v07.c)
+
+ SET(Headers ${Headers}
+ ${LIBRARY_LEGACY_DIR}/zstd_legacy.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v01.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v02.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v03.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v04.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v05.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v06.h
+ ${LIBRARY_LEGACY_DIR}/zstd_v07.h)
+ENDIF (ZSTD_LEGACY_SUPPORT)
+
+IF (MSVC)
+ SET(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll)
+ SET(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc)
+ENDIF (MSVC)
+
+# Split project to static and shared libraries build
+IF (ZSTD_BUILD_SHARED)
+ ADD_LIBRARY(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources})
+ENDIF (ZSTD_BUILD_SHARED)
+IF (ZSTD_BUILD_STATIC)
+ ADD_LIBRARY(libzstd_static STATIC ${Sources} ${Headers})
+ENDIF (ZSTD_BUILD_STATIC)
+
+# Add specific compile definitions for MSVC project
+IF (MSVC)
+ 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")
+ ENDIF (ZSTD_BUILD_SHARED)
+ IF (ZSTD_BUILD_STATIC)
+ SET_PROPERTY(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS")
+ ENDIF (ZSTD_BUILD_STATIC)
+ENDIF (MSVC)
+
+# With MSVC static library needs to be renamed to avoid conflict with import library
+IF (MSVC)
+ SET(STATIC_LIBRARY_BASE_NAME zstd_static)
+ELSE ()
+ SET(STATIC_LIBRARY_BASE_NAME zstd)
+ENDIF (MSVC)
+
+# Define static and shared library names
+IF (ZSTD_BUILD_SHARED)
+ SET_TARGET_PROPERTIES(
+ libzstd_shared
+ PROPERTIES
+ OUTPUT_NAME zstd
+ SOVERSION ${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE})
+ENDIF (ZSTD_BUILD_SHARED)
+
+IF (ZSTD_BUILD_STATIC)
+ SET_TARGET_PROPERTIES(
+ libzstd_static
+ PROPERTIES
+ OUTPUT_NAME ${STATIC_LIBRARY_BASE_NAME})
+ENDIF (ZSTD_BUILD_STATIC)
+
+IF (UNIX)
+ # pkg-config
+ SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
+ SET(LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
+ SET(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include")
+ SET(VERSION "${LIBVER_MAJOR}.${LIBVER_MINOR}.${LIBVER_RELEASE}")
+ ADD_CUSTOM_TARGET(libzstd.pc ALL
+ ${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc"
+ -DPREFIX="${PREFIX}" -DLIBDIR="${LIBDIR}" -DINCLUDEDIR="${INCLUDEDIR}" -DVERSION="${VERSION}"
+ -P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake"
+ COMMENT "Creating pkg-config file")
+
+ INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/libzstd.pc" DESTINATION "share/pkgconfig")
+ENDIF (UNIX)
+
+# install target
+INSTALL(FILES
+ ${LIBRARY_DIR}/zstd.h
+ ${LIBRARY_DIR}/deprecated/zbuff.h
+ ${LIBRARY_DIR}/dictBuilder/zdict.h
+ ${LIBRARY_DIR}/common/zstd_errors.h
+ DESTINATION "include")
+
+IF (ZSTD_BUILD_SHARED)
+ INSTALL(TARGETS libzstd_shared RUNTIME DESTINATION "bin" LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib")
+ENDIF()
+IF (ZSTD_BUILD_STATIC)
+ INSTALL(TARGETS libzstd_static ARCHIVE DESTINATION "lib")
+ENDIF (ZSTD_BUILD_STATIC)
+
+# uninstall target
+CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+
+ADD_CUSTOM_TARGET(uninstall
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
diff --git a/src/zstd/build/cmake/lib/cmake_uninstall.cmake.in b/src/zstd/build/cmake/lib/cmake_uninstall.cmake.in
new file mode 100644
index 00000000..e3774dc1
--- /dev/null
+++ b/src/zstd/build/cmake/lib/cmake_uninstall.cmake.in
@@ -0,0 +1,22 @@
+
+if(NOT EXISTS "@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")
+
+file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
+string(REGEX REPLACE "\n" ";" files "${files}")
+foreach(file ${files})
+ message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
+ if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+ exec_program(
+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out
+ RETURN_VALUE rm_retval
+ )
+ if(NOT "${rm_retval}" STREQUAL 0)
+ message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
+ endif(NOT "${rm_retval}" STREQUAL 0)
+ else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+ message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
+ endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
+endforeach(file)
diff --git a/src/zstd/build/cmake/lib/pkgconfig.cmake b/src/zstd/build/cmake/lib/pkgconfig.cmake
new file mode 100644
index 00000000..5434ff75
--- /dev/null
+++ b/src/zstd/build/cmake/lib/pkgconfig.cmake
@@ -0,0 +1 @@
+CONFIGURE_FILE("${IN}" "${OUT}" @ONLY)