Initial refactoring merge
[platform/core/telephony/libtapi.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(tapi-3.0 C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX ${CMAKE_INSTALL_BINDIR})
6 SET(LIBDIR ${CMAKE_INSTALL_LIBDIR})
7 SET(INCLUDEDIR ${INCLUDE_INSTALL_DIR})
8 SET(TAPI_VERSION ${TAPI_VERSION})
9
10 # Set required packages
11 INCLUDE(FindPkgConfig)
12 pkg_check_modules(pkgs REQUIRED glib-2.0 gio-unix-2.0 dlog security-server)
13
14 FOREACH(flag ${pkgs_CFLAGS})
15         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
16 ENDFOREACH(flag)
17
18 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wextra -Wall -Wno-unused-parameter -Wno-missing-field-initializers")
19
20 #Garbage collection - Unused code
21 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections")
22
23 INCLUDE_DIRECTORIES(
24         ${CMAKE_BINARY_DIR}
25         ${CMAKE_SOURCE_DIR}/include
26         ${CMAKE_SOURCE_DIR}/include/common
27         ${CMAKE_SOURCE_DIR}/include/private
28 )
29
30 ADD_DEFINITIONS("-DFEATURE_DLOG_DEBUG")
31 ADD_DEFINITIONS("-DTAPI_LOG_TAG=\"LIBTAPI\"")
32 ADD_DEFINITIONS("-DEXPORT_API=__attribute__((visibility(\"default\")))")
33
34 MESSAGE(${CMAKE_C_FLAGS})
35 MESSAGE(${CMAKE_EXE_LINKER_FLAGS})
36
37 ### Build ###
38 SET(SRCS
39         src/tapi_common.c
40         src/tapi_event.c
41         src/tapi_modem.c
42         src/tapi_call.c
43         src/tapi_network.c
44         src/tapi_sim.c
45         src/tapi_phonebook.c
46         src/tapi_sap.c
47         src/tapi_ss.c
48         src/tapi_sms.c
49         src/tapi_sat.c
50         src/tapi_gps.c
51 )
52
53 SET(INTROSPECTION_PATH ${CMAKE_SOURCE_DIR}/introspection)
54
55 ADD_CUSTOM_COMMAND(
56         OUTPUT ${CMAKE_BINARY_DIR}/generated-code.c
57         COMMAND gdbus-codegen --interface-prefix org.tizen.telephony.
58         --generate-c-code generated-code
59         --c-namespace Telephony
60         --c-generate-object-manager
61         --generate-docbook generated-docs
62         ${INTROSPECTION_PATH}/network.xml
63         ${INTROSPECTION_PATH}/sim.xml
64         ${INTROSPECTION_PATH}/phonebook.xml
65         ${INTROSPECTION_PATH}/sap.xml
66         ${INTROSPECTION_PATH}/sat.xml
67         ${INTROSPECTION_PATH}/sms.xml
68         ${INTROSPECTION_PATH}/call.xml
69         ${INTROSPECTION_PATH}/ss.xml
70         ${INTROSPECTION_PATH}/modem.xml
71         ${INTROSPECTION_PATH}/gps.xml
72         COMMENT "Generating GDBus .c/.h"
73 )
74
75 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} ${CMAKE_BINARY_DIR}/generated-code.c)
76 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
77 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME ${PROJECT_NAME})
78
79 # pkgconfig file
80 CONFIGURE_FILE(tapi-3.0.pc.in tapi-3.0.pc @ONLY)
81
82 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include/tapi-3.0)
83 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tapi-3.0.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
84 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT Runtime)
85
86 ADD_SUBDIRECTORY(test_src)