Fix coverity issues
[platform/core/telephony/libtcore.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(libtcore C CXX)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR ${LIB_INSTALL_DIR})
7 SET(INCLUDEDIR "\${prefix}/include")
8
9 # Set required packages
10 INCLUDE(FindPkgConfig)
11 pkg_check_modules(pkgs REQUIRED glib-2.0 gobject-2.0 libtzplatform-config)
12
13 FOREACH(flag ${pkgs_CFLAGS})
14         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
15 ENDFOREACH(flag)
16
17 INCLUDE_DIRECTORIES(
18                 ${CMAKE_SOURCE_DIR}/include
19                 ${CMAKE_SOURCE_DIR}/include/internal
20                 ${CMAKE_SOURCE_DIR}/include/type
21 )
22
23 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR}/include ${EXTRA_CFLAGS} -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align -O2 -Wall  -Wno-array-bounds -Wno-empty-body -Wno-ignored-qualifiers -Wshadow -Wwrite-strings -Wswitch-default -Wno-unused-but-set-variable")
24
25 IF (BUILD_GCOV)
26 # -fvisibility option should be "default" to call internal functions for gtest
27 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=default -fPIC -Wno-unused-function -fprofile-arcs -ftest-coverage")
28 ADD_DEFINITIONS("-DTCORE_HAL_TEST")
29 ENDIF (BUILD_GCOV)
30
31 ADD_DEFINITIONS("-DFEATURE_TLOG_DEBUG")
32 ADD_DEFINITIONS("-DTCORE_LOG_TAG=\"TCORE\"")
33 #ADD_DEFINITIONS("-DTCORE_HAL_DEBUG")
34 ADD_DEFINITIONS("-DTCORE_VERSION=\"${VERSION}\"")
35 ADD_DEFINITIONS("-DMODEMS_PATH=\"${LIBDIR}/telephony/plugins/modems/\"")
36
37 MESSAGE(${CMAKE_C_FLAGS})
38 #MESSAGE(${CMAKE_EXE_LINKER_FLAGS})
39 MESSAGE("FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
40
41 IF (ARCH_EMUL)
42         ADD_DEFINITIONS("-DEMULATOR")
43 ENDIF (ARCH_EMUL)
44
45 SET(SRCS
46         src/server.c
47         src/manager.c
48         src/plugin.c
49         src/hal.c
50         src/at.c
51         src/communicator.c
52         src/storage.c
53         src/queue.c
54         src/subscription.c
55         src/user_request.c
56         src/util.c
57         src/core_object/core_object.c
58         src/core_object/co_modem.c
59         src/core_object/co_sim.c
60         src/core_object/co_network.c
61         src/core_object/co_call.c
62         src/core_object/co_sms.c
63         src/core_object/co_ss.c
64         src/core_object/co_phonebook.c
65         src/core_object/co_ps.c
66         src/core_object/co_context.c
67         src/core_object/co_sat.c
68         src/core_object/co_sap.c
69         src/core_object/co_gps.c
70         src/core_object/co_custom.c
71         src/mux.c
72 )
73
74
75
76 # library build
77 ADD_LIBRARY(tcore SHARED ${SRCS})
78
79 IF (BUILD_GCOV)
80         TARGET_LINK_LIBRARIES(tcore ${pkgs_LDFLAGS} -ldl -lgcov)
81 ELSE (BUILD_GCOV)
82         TARGET_LINK_LIBRARIES(tcore ${pkgs_LDFLAGS})
83 ENDIF (BUILD_GCOV)
84
85 SET_TARGET_PROPERTIES(tcore PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME tcore)
86
87 # pkgconfig file
88 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
89 CONFIGURE_FILE(tcore.pc.in tcore.pc @ONLY)
90
91
92 # install
93 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include/tcore)
94 INSTALL(TARGETS tcore
95                 LIBRARY DESTINATION ${LIBDIR})
96
97 # adding for HAL test support
98 IF (BUILD_GCOV)
99         INSTALL(TARGETS tcore DESTINATION ${LIBDIR} COMPONENT RuntimeLibraries)
100 ENDIF (BUILD_GCOV)
101
102 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tcore.pc DESTINATION ${LIBDIR}/pkgconfig)
103
104 #gtest pkg build
105 IF (BUILD_GCOV)
106         ADD_SUBDIRECTORY(gtest)
107 ENDIF (BUILD_GCOV)
108
109 #ADD_SUBDIRECTORY(unit-test)