Add the compiler flag required for performing GTest
[platform/core/connectivity/ua-manager.git] / ua-api / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(ua-api C)
3
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")
9
10 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
11 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
12 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
13
14 INCLUDE(FindPkgConfig)
15 pkg_check_modules(PKGS REQUIRED
16         dlog
17         glib-2.0
18         gio-2.0
19 )
20 INCLUDE_DIRECTORIES(${PKGS_INCLUDE_DIRS})
21 LINK_DIRECTORIES(${PKGS_LIBRARY_DIRS})
22
23 FOREACH(flag ${PKGS_CFLAGS})
24         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
25 ENDFOREACH(flag)
26
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")
34
35 IF(BUILD_GCOV)
36     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
37 ENDIF(BUILD_GCOV)
38
39 SET(SRCS
40         src/ua-api.c
41         src/ua-common.c
42         src/ua-event-handler.c
43         src/ua-request-sender.c
44         )
45
46 SET(HEADERS
47         ua-api.h
48         )
49
50 ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS})
51 TARGET_LINK_LIBRARIES(${LIB_NAME} ${PKGS_LDFLAGS} -ldl)
52
53 SET_TARGET_PROPERTIES(${LIB_NAME}
54         PROPERTIES
55         VERSION ${FULLVER}
56         SOVERSION ${MAJORVER}
57         CLEAN_DIRECT_OUTPUT 1
58         )
59
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)
63 ENDFOREACH(hfile)
64
65 SET(PC_NAME ${LIB_NAME})
66 SET(PC_REQUIRED ${pc_dependents})
67 SET(PC_LDFLAGS -l${LIB_NAME})
68
69 CONFIGURE_FILE(
70         ${LIB_NAME}.pc.in
71         ${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.pc
72         @ONLY
73         )
74 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.pc DESTINATION ${LIB_PKGCONFIG_DIR})