2016-01-07 10:37:00 +00:00
|
|
|
# ################################################################
|
2017-08-31 19:11:57 +00:00
|
|
|
# Copyright (c) 2015-present, Yann Collet, Facebook, Inc.
|
|
|
|
# All rights reserved.
|
2016-01-07 10:37:00 +00:00
|
|
|
#
|
2017-08-31 19:11:57 +00:00
|
|
|
# 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).
|
2016-01-07 10:37:00 +00:00
|
|
|
# ################################################################
|
|
|
|
|
2016-01-10 11:20:52 +00:00
|
|
|
PROJECT(programs)
|
2016-01-07 10:37:00 +00:00
|
|
|
|
2016-01-10 11:20:52 +00:00
|
|
|
SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
|
|
|
|
2016-01-11 16:50:57 +00:00
|
|
|
# Define programs directory, where sources and header files are located
|
2017-03-16 13:03:54 +00:00
|
|
|
SET(LIBRARY_DIR ${ZSTD_SOURCE_DIR}/lib)
|
|
|
|
SET(PROGRAMS_DIR ${ZSTD_SOURCE_DIR}/programs)
|
2017-01-27 18:27:29 +00:00
|
|
|
INCLUDE_DIRECTORIES(${PROGRAMS_DIR} ${LIBRARY_DIR} ${LIBRARY_DIR}/common ${LIBRARY_DIR}/compress ${LIBRARY_DIR}/dictBuilder)
|
2016-01-11 16:50:57 +00:00
|
|
|
|
2016-01-07 10:37:00 +00:00
|
|
|
IF (ZSTD_LEGACY_SUPPORT)
|
2016-01-10 11:20:52 +00:00
|
|
|
SET(PROGRAMS_LEGACY_DIR ${PROGRAMS_DIR}/legacy)
|
2016-05-31 15:19:05 +00:00
|
|
|
INCLUDE_DIRECTORIES(${PROGRAMS_LEGACY_DIR} ${LIBRARY_DIR}/legacy)
|
2016-01-10 11:20:52 +00:00
|
|
|
ENDIF (ZSTD_LEGACY_SUPPORT)
|
2016-01-07 10:37:00 +00:00
|
|
|
|
2016-12-19 08:28:55 +00:00
|
|
|
IF (MSVC)
|
2017-03-16 13:03:54 +00:00
|
|
|
SET(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/zstd)
|
2016-12-19 08:28:55 +00:00
|
|
|
SET(PlatformDependResources ${MSVC_RESOURCE_DIR}/zstd.rc)
|
|
|
|
ENDIF (MSVC)
|
|
|
|
|
|
|
|
ADD_EXECUTABLE(zstd ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/fileio.c ${PROGRAMS_DIR}/bench.c ${PROGRAMS_DIR}/datagen.c ${PROGRAMS_DIR}/dibio.c ${PlatformDependResources})
|
2017-05-24 08:48:10 +00:00
|
|
|
TARGET_LINK_LIBRARIES(zstd libzstd_static)
|
2017-07-11 17:25:14 +00:00
|
|
|
IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
|
|
|
TARGET_LINK_LIBRARIES(zstd rt)
|
|
|
|
ENDIF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
2017-03-17 13:13:47 +00:00
|
|
|
INSTALL(TARGETS zstd RUNTIME DESTINATION "bin")
|
|
|
|
|
2016-01-10 11:20:52 +00:00
|
|
|
IF (UNIX)
|
2017-05-24 08:48:10 +00:00
|
|
|
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")
|
|
|
|
INSTALL(TARGETS zstd RUNTIME DESTINATION "bin")
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat DESTINATION "bin")
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd DESTINATION "bin")
|
|
|
|
|
2017-04-19 17:22:17 +00:00
|
|
|
ADD_CUSTOM_TARGET(zstd.1 ALL
|
|
|
|
${CMAKE_COMMAND} -E copy ${PROGRAMS_DIR}/zstd.1 .
|
|
|
|
COMMENT "Copying manpage zstd.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(unzstd.1 ALL ${CMAKE_COMMAND} -E create_symlink zstd.1 unzstd.1 DEPENDS zstd.1 COMMENT "Creating unzstd.1 symlink")
|
2017-03-20 21:58:02 +00:00
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstd.1 DESTINATION "share/man/man1")
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdcat.1 DESTINATION "share/man/man1")
|
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/unzstd.1 DESTINATION "share/man/man1")
|
2017-03-20 14:47:02 +00:00
|
|
|
|
2016-02-12 02:50:05 +00:00
|
|
|
ADD_EXECUTABLE(zstd-frugal ${PROGRAMS_DIR}/zstdcli.c ${PROGRAMS_DIR}/fileio.c)
|
2017-05-24 08:48:10 +00:00
|
|
|
TARGET_LINK_LIBRARIES(zstd-frugal libzstd_static)
|
2017-04-19 18:16:11 +00:00
|
|
|
SET_PROPERTY(TARGET zstd-frugal APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_NOBENCH;ZSTD_NODICT")
|
2016-01-10 11:20:52 +00:00
|
|
|
ENDIF (UNIX)
|
2017-02-09 14:11:05 +00:00
|
|
|
|
|
|
|
IF (ZSTD_MULTITHREAD_SUPPORT)
|
2017-04-19 18:16:11 +00:00
|
|
|
SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
2017-03-17 13:27:01 +00:00
|
|
|
|
|
|
|
SET(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
|
|
FIND_PACKAGE(Threads REQUIRED)
|
|
|
|
IF (CMAKE_USE_PTHREADS_INIT)
|
2017-04-14 18:33:04 +00:00
|
|
|
TARGET_LINK_LIBRARIES(zstd ${CMAKE_THREAD_LIBS_INIT})
|
2017-03-17 13:27:01 +00:00
|
|
|
ELSE()
|
|
|
|
MESSAGE(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
|
|
|
ENDIF()
|
2017-03-20 14:47:02 +00:00
|
|
|
|
2017-04-19 17:22:17 +00:00
|
|
|
ADD_CUSTOM_TARGET(zstdmt ALL ${CMAKE_COMMAND} -E create_symlink zstd zstdmt DEPENDS zstd COMMENT "Creating zstdmt symlink")
|
2017-04-14 18:33:04 +00:00
|
|
|
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "bin")
|
2017-02-09 14:11:05 +00:00
|
|
|
ENDIF (ZSTD_MULTITHREAD_SUPPORT)
|
2017-04-19 17:20:27 +00:00
|
|
|
|
|
|
|
OPTION(ZSTD_ZLIB_SUPPORT "ZLIB SUPPORT" OFF)
|
|
|
|
OPTION(ZSTD_LZMA_SUPPORT "LZMA SUPPORT" OFF)
|
|
|
|
|
|
|
|
IF (ZSTD_ZLIB_SUPPORT)
|
|
|
|
FIND_PACKAGE(ZLIB REQUIRED)
|
|
|
|
|
|
|
|
IF (ZLIB_FOUND)
|
|
|
|
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})
|
2017-04-19 18:16:11 +00:00
|
|
|
TARGET_LINK_LIBRARIES(zstd ${ZLIB_LIBRARIES})
|
|
|
|
SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS")
|
2017-04-19 17:20:27 +00:00
|
|
|
ELSE ()
|
|
|
|
MESSAGE(SEND_ERROR "zlib library is missing")
|
|
|
|
ENDIF ()
|
|
|
|
ENDIF ()
|
|
|
|
|
|
|
|
IF (ZSTD_LZMA_SUPPORT)
|
|
|
|
FIND_PACKAGE(LibLZMA REQUIRED)
|
|
|
|
|
|
|
|
IF (LIBLZMA_FOUND)
|
|
|
|
INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS})
|
2017-04-19 18:16:11 +00:00
|
|
|
TARGET_LINK_LIBRARIES(zstd ${LIBLZMA_LIBRARIES})
|
|
|
|
SET_PROPERTY(TARGET zstd APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS")
|
2017-04-19 17:20:27 +00:00
|
|
|
ELSE ()
|
|
|
|
MESSAGE(SEND_ERROR "lzma library is missing")
|
|
|
|
ENDIF ()
|
|
|
|
ENDIF ()
|