benchmark silo added
[c11concurrency-benchmarks.git] / silo / third-party / lz4 / cmake / CMakeLists.txt
1 PROJECT(LZ4)\r
2 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ASN.1 Compiler")\r
3 set(CPACK_PACKAGE_VERSION_MAJOR 0)\r
4 set(CPACK_PACKAGE_VERSION_MINOR 0)\r
5 set(CPACK_PACKAGE_VERSION_PATCH r52)\r
6 #set(CPACK_RESOURCE_FILE_LICENSE  ${CMAKE_CURRENT_BINARY_DIR}/COPYING_LGPL)\r
7 set(VERSION_STRING      " \"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}\" ")\r
8 include(CPack)\r
9 \r
10 \r
11 cmake_minimum_required (VERSION 2.6)\r
12 INCLUDE (CheckTypeSize)\r
13 check_type_size("void *" SIZEOF_VOID_P)\r
14 IF( ${SIZEOF_VOID_P} STREQUAL  "8" )\r
15     set (CMAKE_SYSTEM_PROCESSOR "64bit")\r
16     MESSAGE( STATUS "64 bit architecture detected size of void * is " ${SIZEOF_VOID_P})\r
17 ENDIF()\r
18 \r
19 set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")\r
20 \r
21 if (BUILD_SHARED_LIBS)\r
22     message(STATUS "Enable shared library building")\r
23 else(BUILD_SHARED_LIBS)\r
24     message(STATUS "Disable shared library building")\r
25 endif(BUILD_SHARED_LIBS)\r
26 \r
27 if(UNIX AND BUILD_SHARED_LIBS)\r
28     if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")\r
29         add_definitions(-fPIC)\r
30     endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")\r
31 endif()\r
32 \r
33 set(SRC_DIR ../)\r
34 set(LZ4_SRCS_LIB ${SRC_DIR}lz4.c ${SRC_DIR}lz4hc.c ${SRC_DIR}lz4.h )\r
35 set(LZ4_SRCS ${SRC_DIR}xxhash.c ${SRC_DIR}bench.c ${SRC_DIR}lz4c.c)\r
36 \r
37 if(NOT BUILD_SHARED_LIBS)\r
38     set(LZ4_SRCS ${LZ4_SRCS} ${LZ4_SRCS_LIB})\r
39 endif()\r
40 \r
41 if (CMAKE_SYSTEM_PROCESSOR STREQUAL "64bit")\r
42     message(STATUS "Build 64bit executable binary")\r
43     add_executable(lz4c64 ${LZ4_SRCS})\r
44     install(TARGETS lz4c64 RUNTIME DESTINATION "./")\r
45     if(NOT BUILD_SHARED_LIBS)\r
46         message(STATUS "Build 32bit executable binary")\r
47         add_executable(lz4c32 ${LZ4_SRCS})\r
48         install(TARGETS lz4c32 RUNTIME DESTINATION "./")\r
49 \r
50         SET_TARGET_PROPERTIES(lz4c32 PROPERTIES\r
51             COMPILE_FLAGS PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")\r
52     endif()\r
53 else()\r
54     message(STATUS "Build 32bit executable binary")\r
55     add_executable(lz4c32 ${LZ4_SRCS})\r
56     install(TARGETS lz4c32 RUNTIME DESTINATION "./")\r
57 endif()\r
58 \r
59 if(BUILD_SHARED_LIBS)\r
60     set(LZ4_SOVERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")\r
61     if (CMAKE_SYSTEM_PROCESSOR STREQUAL "64bit")\r
62         target_link_libraries(lz4c64 liblz4)\r
63     else()\r
64         target_link_libraries(lz4c32 liblz4)\r
65     endif()\r
66         \r
67     # for static library\r
68     add_library(liblz4_static STATIC ${LZ4_SRCS_LIB})\r
69     set_target_properties(liblz4_static PROPERTIES OUTPUT_NAME lz4)\r
70 \r
71     install(TARGETS liblz4_static\r
72         LIBRARY DESTINATION lib\r
73         ARCHIVE DESTINATION lib\r
74     )\r
75 \r
76     # for shared library o\r
77     add_library(liblz4 ${LZ4_SRCS_LIB})\r
78     set_target_properties(liblz4 PROPERTIES\r
79             OUTPUT_NAME lz4\r
80             SOVERSION ${LZ4_SOVERSION})\r
81 \r
82     install(TARGETS liblz4\r
83         LIBRARY DESTINATION lib\r
84         ARCHIVE DESTINATION lib\r
85     )\r
86     \r
87     install(FILES\r
88         ${SRC_DIR}/lz4.h\r
89         ${SRC_DIR}/lz4hc.h\r
90         DESTINATION include)\r
91             \r
92 endif(BUILD_SHARED_LIBS)\r
93 \r
94 \r
95 #warnings\r
96 \r
97 ADD_DEFINITIONS("-Wall")\r
98 ADD_DEFINITIONS("-W")\r
99 ADD_DEFINITIONS("-Wundef")\r
100 ADD_DEFINITIONS("-Wcast-align")\r
101 ADD_DEFINITIONS("-Wno-implicit-function-declaration")\r
102 ADD_DEFINITIONS("-Os -march=native -std=c99")\r
103 INCLUDE_DIRECTORIES (${SRC_DIR})\r
104 \r
105 \r
106 \r