]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Add lzma and zlib support to cmake build system
authorMilan Ševčík <majlen@civ.zcu.cz>
Wed, 19 Apr 2017 17:20:27 +0000 (19:20 +0200)
committerMilan Ševčík <majlen@civ.zcu.cz>
Wed, 19 Apr 2017 19:34:17 +0000 (21:34 +0200)
cmake 2.8.9 needed for FindLibLZMA

build/cmake/CMakeLists.txt
build/cmake/programs/CMakeLists.txt

index 9ce52ed211c9ccddbfb042d966cc3d45b412fbd1..bf68908186c3439c432dc356cc9f5b8d19bed427 100644 (file)
@@ -8,7 +8,7 @@
 # ################################################################
 
 PROJECT(zstd)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
 SET(ZSTD_SOURCE_DIR "${CMAKE_SOURCE_DIR}/../..")
 
 #-----------------------------------------------------------------------------
index 588fea41e0c757d257bd27527940fb3f3ae34603..b6f79aba3ce4fdf0a353150d494e8a830e00063d 100644 (file)
@@ -64,3 +64,30 @@ IF (ZSTD_MULTITHREAD_SUPPORT)
     ADD_CUSTOM_COMMAND(TARGET zstd POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink zstd zstdmt COMMENT "Creating zstdmt symlink")
     INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zstdmt DESTINATION "bin")
 ENDIF (ZSTD_MULTITHREAD_SUPPORT)
+
+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})
+       TARGET_LINK_LIBRARIES(zstd ${ZLIB_LIBRARIES})
+        SET_TARGET_PROPERTIES(zstd PROPERTIES COMPILE_DEFINITIONS "ZSTD_GZCOMPRESS;ZSTD_GZDECOMPRESS")
+    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})
+       TARGET_LINK_LIBRARIES(zstd ${LIBLZMA_LIBRARIES})
+       SET_TARGET_PROPERTIES(zstd PROPERTIES COMPILE_DEFINITIONS "ZSTD_LZMACOMPRESS;ZSTD_LZMADECOMPRESS")
+    ELSE ()
+        MESSAGE(SEND_ERROR "lzma library is missing")
+    ENDIF ()
+ENDIF ()