Initial refactoring merge
[platform/core/telephony/tel-plugin-packetservice.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(ps-plugin C)
3
4 #INCLUDE(FindPkgConfig)
5
6 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
7 SET(EXEC_PREFIX "\${prefix}")
8 SET(LIBDIR "\${prefix}/lib")
9 SET(INCLUDEDIR "\${prefix}/include")
10 SET(DATAROOTDIR "\${prefix}/share")
11 if(NOT DEFINED SYSCONFDIR)
12         SET(SYSCONFDIR "/etc")
13 endif()
14
15 # Set required packages
16 INCLUDE(FindPkgConfig)
17 pkg_check_modules(pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 tcore libtzplatform-config iniparser)
18
19 FOREACH(flag ${pkgs_CFLAGS})
20         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
21 ENDFOREACH(flag)
22
23 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/include/ ${CMAKE_SOURCE_DIR}/cmake_tmp )
24
25 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
26 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra -fvisibility=hidden -fPIC")
27 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wcast-align")
28
29 ### Purge unused code ###
30 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections")
31
32 ADD_DEFINITIONS("-DFEATURE_TLOG_DEBUG")
33 ADD_DEFINITIONS("-DTCORE_LOG_TAG=\"PS\"")
34 ADD_DEFINITIONS("-DPLUGIN_VERSION=${VERSION}")
35 ADD_DEFINITIONS("-DEXPORT_API=__attribute__((visibility(\"default\")))")
36
37 MESSAGE(${CMAKE_C_FLAGS})
38 MESSAGE(${pkgs_LDFLAGS})
39
40 SET(SRCS
41         src/main.c
42         src/master.c
43         src/modem.c
44         src/service.c
45         src/context.c
46         src/tcore-interface.c
47 )
48
49 SET(INTROSPECTION_PATH ${CMAKE_SOURCE_DIR}/introspection)
50
51 ADD_CUSTOM_COMMAND(
52         OUTPUT ${CMAKE_BINARY_DIR}/generated-code.c
53         COMMAND gdbus-codegen --interface-prefix com.tcore.ps.
54         --generate-c-code generated-code
55         --c-namespace PacketService
56         --c-generate-object-manager
57         --generate-docbook generated-docs
58         ${INTROSPECTION_PATH}/master.xml
59         ${INTROSPECTION_PATH}/modem.xml
60         ${INTROSPECTION_PATH}/service.xml
61         ${INTROSPECTION_PATH}/context.xml
62         COMMENT "Generating GDBus .c/.h"
63 )
64
65 # library build
66 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} ${CMAKE_BINARY_DIR}/generated-code.c)
67 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
68 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "" OUTPUT_NAME ${PROJECT_NAME})
69
70 # install
71 INSTALL(FILES ${CMAKE_SOURCE_DIR}/src/ps-plugin.conf DESTINATION ${SYSCONFDIR}/dbus-1/system.d)
72 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/dnet_db.sql DESTINATION ${DATAROOTDIR}/ps-plugin)
73 INSTALL(FILES ${CMAKE_SOURCE_DIR}/resources/dnet_db_data.sql DESTINATION ${DATAROOTDIR}/ps-plugin)
74 INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${LIB_INSTALL_DIR}/telephony/plugins)
75 INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME tel-plugin-packetservice)