1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
4 SET(LIB_NAME "${PROJECT_NAME}")
5 SET(LIB_PREFIX ${CMAKE_INSTALL_PREFIX})
6 SET(LIB_DIR "${LIB_PATH}")
7 SET(LIB_INCLUDE_DIR "${LIB_PREFIX}/include")
8 SET(LIB_PKGCONFIG_DIR "${LIB_PATH}/pkgconfig")
10 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
11 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
12 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
14 INCLUDE(FindPkgConfig)
15 pkg_check_modules(PKGS REQUIRED
20 INCLUDE_DIRECTORIES(${PKGS_INCLUDE_DIRS})
21 LINK_DIRECTORIES(${PKGS_LIBRARY_DIRS})
23 FOREACH(flag ${PKGS_CFLAGS})
24 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
27 SET(RELRO_FLAGS "-Wl,-z,relro")
28 SET(FORTIFY_FLAGS "-D_FORTIFY_SOURCE=2")
29 SET(STACK_CANARY_FLAGS "-fstack-protector-strong")
30 SET(PIE_FLAGS "-fPIE -fPIC")
31 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -g")
32 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${STACK_CANARY_FLAGS} ${FORTIFY_FLAGS} ${RELRO_FLAGS} ${PIE_FLAGS} -Wall -Werror")
33 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
36 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
42 src/ua-event-handler.c
43 src/ua-request-sender.c
50 ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS})
51 TARGET_LINK_LIBRARIES(${LIB_NAME} ${PKGS_LDFLAGS} -ldl)
53 SET_TARGET_PROPERTIES(${LIB_NAME}
60 INSTALL(TARGETS ${LIB_NAME} DESTINATION ${LIB_DIR} COMPONENT RuntimeLibraries)
61 FOREACH(hfile ${HEADERS})
62 INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/${hfile} DESTINATION include/ua-manager)
65 SET(PC_NAME ${LIB_NAME})
66 SET(PC_REQUIRED ${pc_dependents})
67 SET(PC_LDFLAGS -l${LIB_NAME})
71 ${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.pc
74 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.pc DESTINATION ${LIB_PKGCONFIG_DIR})