benchmark silo added
[c11concurrency-benchmarks.git] / silo / third-party / lz4 / cmake / CMakeLists.txt
diff --git a/silo/third-party/lz4/cmake/CMakeLists.txt b/silo/third-party/lz4/cmake/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1afe650
--- /dev/null
@@ -0,0 +1,106 @@
+PROJECT(LZ4)\r
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ASN.1 Compiler")\r
+set(CPACK_PACKAGE_VERSION_MAJOR 0)\r
+set(CPACK_PACKAGE_VERSION_MINOR 0)\r
+set(CPACK_PACKAGE_VERSION_PATCH r52)\r
+#set(CPACK_RESOURCE_FILE_LICENSE  ${CMAKE_CURRENT_BINARY_DIR}/COPYING_LGPL)\r
+set(VERSION_STRING     " \"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}\" ")\r
+include(CPack)\r
+\r
+\r
+cmake_minimum_required (VERSION 2.6)\r
+INCLUDE (CheckTypeSize)\r
+check_type_size("void *" SIZEOF_VOID_P)\r
+IF( ${SIZEOF_VOID_P} STREQUAL  "8" )\r
+    set (CMAKE_SYSTEM_PROCESSOR "64bit")\r
+    MESSAGE( STATUS "64 bit architecture detected size of void * is " ${SIZEOF_VOID_P})\r
+ENDIF()\r
+\r
+set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")\r
+\r
+if (BUILD_SHARED_LIBS)\r
+    message(STATUS "Enable shared library building")\r
+else(BUILD_SHARED_LIBS)\r
+    message(STATUS "Disable shared library building")\r
+endif(BUILD_SHARED_LIBS)\r
+\r
+if(UNIX AND BUILD_SHARED_LIBS)\r
+    if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")\r
+        add_definitions(-fPIC)\r
+    endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")\r
+endif()\r
+\r
+set(SRC_DIR ../)\r
+set(LZ4_SRCS_LIB ${SRC_DIR}lz4.c ${SRC_DIR}lz4hc.c ${SRC_DIR}lz4.h )\r
+set(LZ4_SRCS ${SRC_DIR}xxhash.c ${SRC_DIR}bench.c ${SRC_DIR}lz4c.c)\r
+\r
+if(NOT BUILD_SHARED_LIBS)\r
+    set(LZ4_SRCS ${LZ4_SRCS} ${LZ4_SRCS_LIB})\r
+endif()\r
+\r
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL "64bit")\r
+    message(STATUS "Build 64bit executable binary")\r
+    add_executable(lz4c64 ${LZ4_SRCS})\r
+    install(TARGETS lz4c64 RUNTIME DESTINATION "./")\r
+    if(NOT BUILD_SHARED_LIBS)\r
+        message(STATUS "Build 32bit executable binary")\r
+        add_executable(lz4c32 ${LZ4_SRCS})\r
+        install(TARGETS lz4c32 RUNTIME DESTINATION "./")\r
+\r
+        SET_TARGET_PROPERTIES(lz4c32 PROPERTIES\r
+            COMPILE_FLAGS PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")\r
+    endif()\r
+else()\r
+    message(STATUS "Build 32bit executable binary")\r
+    add_executable(lz4c32 ${LZ4_SRCS})\r
+    install(TARGETS lz4c32 RUNTIME DESTINATION "./")\r
+endif()\r
+\r
+if(BUILD_SHARED_LIBS)\r
+    set(LZ4_SOVERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")\r
+    if (CMAKE_SYSTEM_PROCESSOR STREQUAL "64bit")\r
+        target_link_libraries(lz4c64 liblz4)\r
+    else()\r
+        target_link_libraries(lz4c32 liblz4)\r
+    endif()\r
+       \r
+    # for static library\r
+    add_library(liblz4_static STATIC ${LZ4_SRCS_LIB})\r
+    set_target_properties(liblz4_static PROPERTIES OUTPUT_NAME lz4)\r
+\r
+    install(TARGETS liblz4_static\r
+        LIBRARY DESTINATION lib\r
+        ARCHIVE DESTINATION lib\r
+    )\r
+\r
+    # for shared library o\r
+    add_library(liblz4 ${LZ4_SRCS_LIB})\r
+    set_target_properties(liblz4 PROPERTIES\r
+            OUTPUT_NAME lz4\r
+            SOVERSION ${LZ4_SOVERSION})\r
+\r
+    install(TARGETS liblz4\r
+        LIBRARY DESTINATION lib\r
+        ARCHIVE DESTINATION lib\r
+    )\r
+    \r
+    install(FILES\r
+        ${SRC_DIR}/lz4.h\r
+        ${SRC_DIR}/lz4hc.h\r
+        DESTINATION include)\r
+            \r
+endif(BUILD_SHARED_LIBS)\r
+\r
+\r
+#warnings\r
+\r
+ADD_DEFINITIONS("-Wall")\r
+ADD_DEFINITIONS("-W")\r
+ADD_DEFINITIONS("-Wundef")\r
+ADD_DEFINITIONS("-Wcast-align")\r
+ADD_DEFINITIONS("-Wno-implicit-function-declaration")\r
+ADD_DEFINITIONS("-Os -march=native -std=c99")\r
+INCLUDE_DIRECTORIES (${SRC_DIR})\r
+\r
+\r
+\r