3 SET(LIBUCL_VERSION_MAJOR 0)
4 SET(LIBUCL_VERSION_MINOR 2)
5 SET(LIBUCL_VERSION_PATCH 9)
7 SET(LIBUCL_VERSION "${LIBUCL_VERSION_MAJOR}.${LIBUCL_VERSION_MINOR}.${LIBUCL_VERSION_PATCH}")
9 INCLUDE(CheckCCompilerFlag)
11 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR)
13 OPTION(ENABLE_URL_INCLUDE "Enable urls in ucl includes (requires libcurl or libfetch) [default: OFF]" OFF)
14 OPTION(ENABLE_URL_SIGN "Enable signatures check in ucl includes (requires openssl) [default: OFF]" OFF)
15 OPTION(BUILD_SHARED_LIBS "Build Shared Libraries [default: OFF]" OFF)
17 IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
18 LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt)
19 ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
21 IF(ENABLE_URL_INCLUDE MATCHES "ON")
22 FIND_LIBRARY(LIBFETCH_LIBRARY NAMES fetch PATHS PATH_SUFFIXES lib64 lib
32 DOC "Path where the libfetch library can be found")
34 FIND_FILE(HAVE_FETCH_H NAMES fetch.h PATHS /usr/include
37 DOC "Path to libfetch header")
38 ELSE(LIBFETCH_LIBRARY)
40 ProcessPackage(CURL libcurl)
42 MESSAGE(WARNING "Neither libcurl nor libfetch were found, no support of URL includes in configuration")
44 ENDIF(LIBFETCH_LIBRARY)
45 ENDIF(ENABLE_URL_INCLUDE MATCHES "ON")
47 SET(CMAKE_C_WARN_FLAGS "")
48 CHECK_C_COMPILER_FLAG(-Wall SUPPORT_WALL)
49 CHECK_C_COMPILER_FLAG(-W SUPPORT_W)
50 CHECK_C_COMPILER_FLAG(-Wno-unused-parameter SUPPORT_WPARAM)
51 CHECK_C_COMPILER_FLAG(-Wno-pointer-sign SUPPORT_WPOINTER_SIGN)
52 CHECK_C_COMPILER_FLAG(-Wstrict-prototypes SUPPORT_WSTRICT_PROTOTYPES)
53 IF(NOT "${CMAKE_C_COMPILER_ID}" MATCHES SunPro)
54 CHECK_C_COMPILER_FLAG("-std=c99" SUPPORT_STD_FLAG)
55 ENDIF(NOT "${CMAKE_C_COMPILER_ID}" MATCHES SunPro)
57 SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -W")
60 SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wall")
63 SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wno-unused-parameter")
65 IF(SUPPORT_WPOINTER_SIGN)
66 SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wno-pointer-sign")
67 ENDIF(SUPPORT_WPOINTER_SIGN)
68 IF(SUPPORT_WSTRICT_PROTOTYPES)
69 SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -Wstrict-prototypes")
70 ENDIF(SUPPORT_WSTRICT_PROTOTYPES)
72 SET(CMAKE_C_WARN_FLAGS "${CMAKE_C_WARN_FLAGS} -std=c99")
73 ENDIF(SUPPORT_STD_FLAG)
75 IF(ENABLE_URL_SIGN MATCHES "ON")
78 INCLUDE_DIRECTORIES("${OPENSSL_INCLUDE_DIR}")
80 ENDIF(ENABLE_URL_SIGN MATCHES "ON")
82 INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../src")
83 INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../include")
84 INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../uthash")
86 SET(UCLSRC ../src/ucl_util.c
95 IF (BUILD_SHARED_LIBS)
97 ENDIF (BUILD_SHARED_LIBS)
98 ADD_LIBRARY(ucl ${LIB_TYPE} ${UCLSRC})
99 SET_TARGET_PROPERTIES(ucl PROPERTIES VERSION ${LIBUCL_VERSION} SOVERSION ${LIBUCL_VERSION_MAJOR})
102 TARGET_LINK_LIBRARIES(ucl fetch)
105 TARGET_LINK_LIBRARIES(ucl ${CURL_LIBRARIES})
108 IF(ENABLE_URL_SIGN MATCHES "ON")
110 TARGET_LINK_LIBRARIES(ucl ${OPENSSL_LIBRARIES})
112 ENDIF(ENABLE_URL_SIGN MATCHES "ON")