1 cmake_minimum_required (VERSION 2.8)
\r
4 ############################## CPACK
\r
5 set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../)
\r
6 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LZ4 Packer")
\r
7 set(CPACK_PACKAGE_VERSION_MAJOR 0)
\r
8 set(CPACK_PACKAGE_VERSION_MINOR 0)
\r
9 set(CPACK_PACKAGE_VERSION_PATCH r89)
\r
10 #set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_BINARY_DIR}/COPYING_LGPL)
\r
11 ##############################
\r
12 FIND_PACKAGE(Subversion)
\r
13 IF(SUBVERSION_FOUND)
\r
14 Subversion_WC_INFO(${SRC_DIR} revision)
\r
15 set(revision_MY_WC_STATUS "LZ4 has revision ${revision_WC_REVISION} at ${revision_WC_LAST_CHANGED_DATE}")
\r
16 message(STATUS ${revision_MY_WC_STATUS})
\r
17 if(NOT ${revision_WC_REVISION})
\r
18 else(NOT ${revision_WC_REVISION})
\r
19 set(CPACK_PACKAGE_VERSION_PATCH "r${revision_WC_REVISION}")
\r
20 endif(NOT ${revision_WC_REVISION})
\r
21 ELSE(SUBVERSION_FOUND)
\r
22 message(WARNING "NO Subversion FOUND!!!")
\r
23 ENDIF(SUBVERSION_FOUND)
\r
24 set(VERSION_STRING " \"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}\" ")
\r
25 ##############################
\r
26 INCLUDE (CheckTypeSize)
\r
27 check_type_size("void *" SIZEOF_VOID_P)
\r
28 IF( ${SIZEOF_VOID_P} STREQUAL "8" )
\r
29 set (CMAKE_SYSTEM_PROCESSOR "64bit")
\r
30 MESSAGE( STATUS "64 bit architecture detected size of void * is " ${SIZEOF_VOID_P})
\r
32 ############################### warnings
\r
34 ADD_DEFINITIONS("-Wall")
\r
35 ADD_DEFINITIONS("-W")
\r
36 ADD_DEFINITIONS("-Wundef")
\r
37 ADD_DEFINITIONS("-Wcast-align")
\r
38 ADD_DEFINITIONS("-Wno-implicit-function-declaration")
\r
39 ADD_DEFINITIONS("-O3 -march=native -std=c99")
\r
40 INCLUDE_DIRECTORIES (${SRC_DIR})
\r
44 set(LZ4_SRCS_LIB ${SRC_DIR}lz4.c ${SRC_DIR}lz4hc.c ${SRC_DIR}lz4.h ${SRC_DIR}lz4_format_description.txt)
\r
45 set(LZ4_SRCS ${LZ4_SRCS_LIB} ${SRC_DIR}xxhash.c ${SRC_DIR}bench.c ${SRC_DIR}lz4c.c )
\r
46 set(FUZZER_SRCS ${SRC_DIR}lz4.c ${SRC_DIR}lz4hc.c ${SRC_DIR}lz4.h ${SRC_DIR}fuzzer.c)
\r
48 # EXECUTABLES FOR 32 Bit and 64 versions
\r
49 if(CMAKE_SYSTEM_PROCESSOR STREQUAL "64bit")
\r
50 add_executable(lz4c32 ${LZ4_SRCS})
\r
51 install(TARGETS lz4c32 RUNTIME DESTINATION "./")
\r
52 SET_TARGET_PROPERTIES(lz4c32 PROPERTIES
\r
53 COMPILE_FLAGS PROPERTIES COMPILE_FLAGS "-m32 -Os" LINK_FLAGS "-m32")
\r
56 add_executable(lz4c ${LZ4_SRCS})
\r
57 install(TARGETS lz4c RUNTIME DESTINATION "./")
\r
59 add_executable(fuzzer ${FUZZER_SRCS})
\r
60 install(TARGETS fuzzer RUNTIME DESTINATION "./")
\r
62 #target_link_libraries(lz4 ${LZ4_SRCS_LIB})
\r
63 ####################### CPACK PACKAGING ###################
\r
64 install(FILES ${SRC_DIR}lz4_format_description.txt DESTINATION "./")
\r
66 set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
\r
67 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_LIST_DIR}/release_COPYING.txt")
\r
68 set(CPACK_PACKAGE_VENDOR "Yann Collet")
\r
69 set(CPACK_WWW_SITE "http://fastcompression.blogspot.com/p/lz4.html")
\r
70 set(CPACK_NSIS_URL_INFO_ABOUT "${CPACK_WWW_SITE}")
\r
71 set(CPACK_NSIS_HELP_LINK "${CPACK_WWW_SITE}")
\r
73 set(CPACK_NSIS_DISPLAY_NAME ${CPACK_PACKAGE_NAME})
\r
74 set(CPACK_NSIS_COMPRESSOR "/SOLID lzma \r\n SetCompressorDictSize 32")
\r
76 set(CPACK_NSIS_MENU_LINKS
\r
77 "${CPACK_WWW_SITE}" "${CPACK_PACKAGE_NAME} homepage"
\r
78 "/lz4_format_description.txt " "lz4 format description"
\r
79 "/" "LZ4 directory "
\r