diff options
Diffstat (limited to 'cmake_unofficial/CMakeLists.txt')
-rw-r--r-- | cmake_unofficial/CMakeLists.txt | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/cmake_unofficial/CMakeLists.txt b/cmake_unofficial/CMakeLists.txt index 3f113b1..c7f1dab 100644 --- a/cmake_unofficial/CMakeLists.txt +++ b/cmake_unofficial/CMakeLists.txt @@ -9,31 +9,27 @@ include(CPack) cmake_minimum_required (VERSION 2.6) INCLUDE (CheckTypeSize) check_type_size("void *" SIZEOF_VOID_P) -IF( "${SIZEOF_VOID_P}" STREQUAL "8" ) +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") +IF(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR + CMAKE_C_COMPILER_ID STREQUAL "Clang") SET(GNU_COMPATIBLE_COMPILER 1) ENDIF() -if(GNU_COMPATIBLE_COMPILER) -if(UNIX AND BUILD_LIBS) - add_definitions(-fPIC) -endif() -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 BUILD_LIBS) +if(BUILD_TOOLS AND NOT (LINK_TOOLS_WITH_LIB AND BUILD_LIBS)) set(LZ4_SRCS ${LZ4_SRCS} ${LZ4_SRCS_LIB}) endif() @@ -45,16 +41,16 @@ endif() if(BUILD_LIBS) - SET(LIBS_TARGETS "") - IF(NOT 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) - ELSE(NOT WIN32) - add_library(liblz4 STATIC ${LZ4_SRCS_LIB}) - SET(LIBS_TARGETS liblz4) - ENDIF(NOT WIN32) + 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 @@ -83,7 +79,7 @@ if(BUILD_LIBS) DESTINATION "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig" ) - if(BUILD_TOOLS) + if(BUILD_TOOLS AND LINK_TOOLS_WITH_LIB) target_link_libraries(lz4 liblz4) endif() endif() @@ -92,21 +88,23 @@ endif() #warnings if(MSVC) -ADD_DEFINITIONS("-W4") + ADD_DEFINITIONS("-W4") endif() if(GNU_COMPATIBLE_COMPILER) -ADD_DEFINITIONS("-Wall") + 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") + 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 AND - (NOT CMAKE_SYSTEM_NAME MATCHES "SunOS")) -ADD_DEFINITIONS("-std=c99") +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}) |