summaryrefslogtreecommitdiffstats
path: root/contrib/cmake_unofficial
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cmake_unofficial')
-rw-r--r--contrib/cmake_unofficial/.gitignore7
-rw-r--r--contrib/cmake_unofficial/CMakeLists.txt110
2 files changed, 117 insertions, 0 deletions
diff --git a/contrib/cmake_unofficial/.gitignore b/contrib/cmake_unofficial/.gitignore
new file mode 100644
index 0000000..0f81929
--- /dev/null
+++ b/contrib/cmake_unofficial/.gitignore
@@ -0,0 +1,7 @@
+# cmake artefact
+
+CMakeCache.txt
+CMakeFiles
+*.cmake
+Makefile
+liblz4.pc
diff --git a/contrib/cmake_unofficial/CMakeLists.txt b/contrib/cmake_unofficial/CMakeLists.txt
new file mode 100644
index 0000000..6edec98
--- /dev/null
+++ b/contrib/cmake_unofficial/CMakeLists.txt
@@ -0,0 +1,110 @@
+PROJECT(LZ4 C)
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LZ4 compression library")
+set(CPACK_PACKAGE_VERSION_MAJOR 1)
+set(CPACK_PACKAGE_VERSION_MINOR 7)
+set(CPACK_PACKAGE_VERSION_PATCH 2)
+set(VERSION_STRING " \"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}\" ")
+include(CPack)
+
+cmake_minimum_required (VERSION 2.6)
+INCLUDE (CheckTypeSize)
+check_type_size("void *" SIZEOF_VOID_P)
+IF(SIZEOF_VOID_P STREQUAL "8")
+ set (CMAKE_SYSTEM_PROCESSOR "64bit")
+ MESSAGE( STATUS "64 bit architecture detected size of void * is " ${SIZEOF_VOID_P})
+ENDIF()
+
+option(BUILD_TOOLS "Build the command line tools" ON)
+option(BUILD_LIBS "Build the libraries in addition to the tools" ON)
+option(LINK_TOOLS_WITH_LIB "Link the command line tools with the (shared) library" OFF)
+
+IF(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR
+ CMAKE_C_COMPILER_ID STREQUAL "Clang")
+ SET(GNU_COMPATIBLE_COMPILER 1)
+ENDIF()
+
+
+set(LZ4_DIR ../../lib/)
+set(PRG_DIR ../../programs/)
+set(LZ4_SRCS_LIB ${LZ4_DIR}lz4.c ${LZ4_DIR}lz4hc.c ${LZ4_DIR}lz4.h ${LZ4_DIR}lz4hc.h ${LZ4_DIR}lz4frame.c ${LZ4_DIR}lz4frame.h ${LZ4_DIR}xxhash.c)
+set(LZ4_SRCS ${LZ4_DIR}lz4frame.c ${LZ4_DIR}xxhash.c ${PRG_DIR}bench.c ${PRG_DIR}lz4cli.c ${PRG_DIR}lz4io.c)
+
+if(BUILD_TOOLS AND NOT (LINK_TOOLS_WITH_LIB AND BUILD_LIBS))
+ set(LZ4_SRCS ${LZ4_SRCS} ${LZ4_SRCS_LIB})
+endif()
+
+if(BUILD_TOOLS)
+ add_executable(lz4 ${LZ4_SRCS})
+ install(TARGETS lz4 RUNTIME DESTINATION "bin/")
+endif()
+
+if(BUILD_LIBS)
+
+
+ SET(LIBS_TARGETS "")
+ IF(WIN32)
+ add_library(liblz4 STATIC ${LZ4_SRCS_LIB})
+ SET(LIBS_TARGETS liblz4)
+ ELSE(WIN32)
+ add_library(liblz4 SHARED ${LZ4_SRCS_LIB})
+ add_library(liblz4_static STATIC ${LZ4_SRCS_LIB})
+ SET_TARGET_PROPERTIES(liblz4_static PROPERTIES OUTPUT_NAME lz4)
+ SET(LIBS_TARGETS liblz4 liblz4_static)
+ ENDIF(WIN32)
+
+ set_target_properties(liblz4 PROPERTIES
+ OUTPUT_NAME lz4
+ SOVERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}"
+ )
+
+ install(TARGETS ${LIBS_TARGETS}
+ RUNTIME DESTINATION lib #on Windows: cmake considers dlls as runtime component
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ )
+
+ install(FILES
+ ${LZ4_DIR}/lz4.h
+ ${LZ4_DIR}/lz4hc.h
+ ${LZ4_DIR}/lz4frame.h
+ DESTINATION include
+ )
+
+ set(PREFIX ${CMAKE_INSTALL_PREFIX})
+ set(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
+ set(INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include)
+ string(SUBSTRING ${CPACK_PACKAGE_VERSION_PATCH} 1 -1 VERSION)
+ configure_file(${LZ4_DIR}/liblz4.pc.in liblz4.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblz4.pc
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig"
+ )
+
+ if(BUILD_TOOLS AND LINK_TOOLS_WITH_LIB)
+ target_link_libraries(lz4 liblz4)
+ endif()
+endif()
+
+
+#warnings
+
+if(MSVC)
+ ADD_DEFINITIONS("-W4")
+endif()
+if(GNU_COMPATIBLE_COMPILER)
+ ADD_DEFINITIONS("-Wall")
+endif()
+if(CMAKE_COMPILER_IS_GNUCXX)
+ ADD_DEFINITIONS("-Wextra")
+ ADD_DEFINITIONS("-Wundef")
+ ADD_DEFINITIONS("-Wshadow")
+ ADD_DEFINITIONS("-Wcast-align")
+ ADD_DEFINITIONS("-Wstrict-prototypes")
+endif(CMAKE_COMPILER_IS_GNUCXX)
+if(GNU_COMPATIBLE_COMPILER)
+ # we need gnu99 instead of c99 on Linux and Solaris
+ # to get C99 and POSIX definitions
+ # an alternative with cmake >= 3.1/3.2 is the C_STANDARD property
+ ADD_DEFINITIONS("-std=gnu99")
+endif()
+ADD_DEFINITIONS("-DLZ4_VERSION=\"${CPACK_PACKAGE_VERSION_PATCH}\"")
+INCLUDE_DIRECTORIES (${LZ4_DIR})