summaryrefslogtreecommitdiffstats
path: root/cmake_unofficial/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'cmake_unofficial/CMakeLists.txt')
-rw-r--r--cmake_unofficial/CMakeLists.txt58
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})