upload tizen1.0 source
[framework/telephony/libslp-tapi.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
3
4 PROJECT(SLP-tapi C)
5 SET(VERSION 0.0)
6
7
8 ### Global setting ###
9 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
10 SET(EXEC_PREFIX "\${prefix}")
11 SET(LIBDIR "\${prefix}/lib")
12 SET(INCLUDEDIR "\${prefix}/include")
13
14 MACRO(GET_TARGET_PROPERTY_WITH_DEFAULT _variable _target _property _default_value)
15         GET_TARGET_PROPERTY (${_variable} ${_target} ${_property})
16         IF (${_variable} MATCHES NOTFOUND)
17                 SET (${_variable} ${_default_value})
18         ENDIF (${_variable} MATCHES NOTFOUND)
19 ENDMACRO (GET_TARGET_PROPERTY_WITH_DEFAULT)
20
21 MACRO(CREATE_LIBTOOL_FILE _target _install_DIR)
22         GET_TARGET_PROPERTY(_target_location ${_target} LOCATION)
23         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_static_lib ${_target} STATIC_LIB "")
24         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dependency_libs ${_target} LT_DEPENDENCY_LIBS "")
25         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_current ${_target} LT_VERSION_CURRENT 0)
26         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_age ${_target} LT_VERSION_AGE 0)
27         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_revision ${_target} LT_VERSION_REVISION 0)
28         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_installed ${_target} LT_INSTALLED yes)
29         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_shouldnotlink ${_target} LT_SHOULDNOTLINK yes)
30         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlopen ${_target} LT_DLOPEN "")
31         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlpreopen ${_target} LT_DLPREOPEN "")
32         GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE)
33         GET_FILENAME_COMPONENT(_soname ${_target_location} NAME)
34         SET(_laname2 ${_laname}.la)
35         SET(_laname ${PROJECT_BINARY_DIR}/${_laname}.la)
36         FILE(WRITE ${_laname} "# ${_laname2} - a libtool library file\n")
37         FILE(APPEND ${_laname} "# Generated by CMake ${CMAKE_VERSION} (like GNU libtool)\n")
38         FILE(APPEND ${_laname} "\n# Please DO NOT delete this file!\n# It is necessary for linking the library with libtool.\n\n" )
39         FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n")
40         FILE(APPEND ${_laname} "dlname='${_soname}'\n\n")
41         FILE(APPEND ${_laname} "# Names of this library.\n")
42         FILE(APPEND ${_laname} "library_names='${_soname}.${_target_current}.${_target_age}.${_target_revision} ${_soname}.${_target_current} ${_soname}'\n\n")
43         FILE(APPEND ${_laname} "# The name of the static archive.\n")
44         FILE(APPEND ${_laname} "old_library='${_target_static_lib}'\n\n")
45         FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n")
46         FILE(APPEND ${_laname} "dependency_libs='${_target_dependency_libs}'\n\n")
47         FILE(APPEND ${_laname} "# Names of additional weak libraries provided by this library\n")
48         FILE(APPEND ${_laname} "weak_library_names=\n\n")
49         FILE(APPEND ${_laname} "# Version information for ${_laname2}.\n")
50         FILE(APPEND ${_laname} "current=${_target_current}\n")
51         FILE(APPEND ${_laname} "age=${_target_age}\n")
52         FILE(APPEND ${_laname} "revision=${_target_revision}\n\n")
53         FILE(APPEND ${_laname} "# Is this an already installed library?\n")
54         FILE(APPEND ${_laname} "installed=${_target_installed}\n\n")
55         FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\n")
56         FILE(APPEND ${_laname} "shouldnotlink=${_target_shouldnotlink}\n\n")
57         FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\n")
58         FILE(APPEND ${_laname} "dlopen='${_target_dlopen}'\n")
59         FILE(APPEND ${_laname} "dlpreopen='${_target_dlpreopen}'\n\n")
60         FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n")
61         FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}${_install_DIR}'\n")
62         INSTALL( FILES ${_laname} DESTINATION ${CMAKE_INSTALL_PREFIX}${_install_DIR})
63 ENDMACRO(CREATE_LIBTOOL_FILE)
64
65
66 # Build type : Release
67 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
68         SET(CMAKE_BUILD_TYPE "Release")
69 ENDIF()
70 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
71
72
73 # Set required packages
74 INCLUDE(FindPkgConfig)
75 pkg_check_modules(pkgs REQUIRED vconf glib-2.0 dbus-1 dbus-glib-1 gthread-2.0 dlog security-server)
76
77 FOREACH(flag ${pkgs_CFLAGS})
78         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
79 ENDFOREACH(flag)
80
81
82 # Compiler flags
83 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/common
84                 ${CMAKE_SOURCE_DIR}/include/tapi
85                 ${CMAKE_SOURCE_DIR}/include/porting)
86 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs" )
87 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
88 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
89 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
90 SET(CMAKE_C_FLAGS_RELEASE "-O2")
91
92 SET(CMAKE_SKIP_BUILD_RPATH true)
93
94
95 # Get uname value to set 'TARGET' definition
96 # TODO: Is this needed?
97 FIND_PROGRAM(UNAME NAMES uname)
98 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
99 IF("${ARCH}" STREQUAL "arm")
100         ADD_DEFINITIONS("-DTARGET")
101         ADD_DEFINITIONS("-D_TELEPHONY_ARM_ONEDRAM")
102         ADD_DEFINITIONS("-D_ARM_TOUCH -DFEATURE_GPS_XTRA")
103         MESSAGE("add -DTARGET")
104 ELSE()
105         ADD_DEFINITIONS("-D_SIMUL_TOUCH -DFEATURE_GPS_XTRA")
106 ENDIF()
107
108
109 ADD_DEFINITIONS("-D_CP_INFINEON_")
110 #ADD_DEFINITIONS("-D_CP_QUALCOMM_")
111
112 ADD_DEFINITIONS("-D_MACHINE_AQUILA_")
113 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
114
115 ADD_DEFINITIONS("-DTELEPHONY_TIMER")
116 ADD_DEFINITIONS("-DFEATURE_TELEPHONY_GPS")
117 ADD_DEFINITIONS("-D_TAPI_DEBUG_ON_DEBUG_VIEWER_")
118 ADD_DEFINITIONS("-DLARGE_ICON")
119 ADD_DEFINITIONS(" -DEXPORT_API=\"__attribute__((visibility(\\\"default\\\")))\" ")
120
121
122 # Linker flags
123 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
124
125
126 ### Build ###
127 SET(SRCS
128                 src/tapi_proxy_common.c
129                 src/tapi_proxy_network.c
130                 src/tapi_proxy_sim.c
131                 src/tapi_proxy_ss.c
132                 src/tapi_proxy_call.c
133                 src/tapi_proxy_nettext.c
134                 src/tapi_proxy_sat.c
135                 src/common_tapi_lib.c
136                 src/tapi_proxy_sound.c
137                 src/tapi_proxy_gprs.c
138                 src/porting/tel_marshaler.c
139                 src/common_tapi_lib_internal.c
140                 src/tapi_proxy_cfg.c
141                 src/tapi_proxy_productivity.c
142                 src/tapi_proxy_power.c
143                 src/tapi_proxy_gps.c
144                 src/tapi_proxy_omadm.c
145                 src/tapi_proxy_misc.c
146                 src/tapi_proxy_data.c
147    )
148
149 ADD_CUSTOM_TARGET(tapi-lib-proxy.h
150                 COMMAND dbus-binding-tool --prefix= --mode=glib-client --output=${CMAKE_CURRENT_SOURCE_DIR}/include/tapi/tapi-lib-proxy.h ${CMAKE_CURRENT_SOURCE_DIR}/src/tapi-lib.xml)
151
152 #ADD_LIBRARY(SLP-tapi_STATIC STATIC ${SRCS})
153 #TARGET_LINK_LIBRARIES(SLP-tapi_STATIC ${pkgs_LDFLAGS})
154 #SET_TARGET_PROPERTIES(SLP-tapi_STATIC PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME SLP-tapi)
155 #ADD_DEPENDENCIES(SLP-tapi_STATIC tapi-lib-proxy.h)
156
157 ADD_LIBRARY(SLP-tapi_SHARED SHARED ${SRCS})
158 TARGET_LINK_LIBRARIES(SLP-tapi_SHARED ${pkgs_LDFLAGS})
159 SET_TARGET_PROPERTIES(SLP-tapi_SHARED PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME SLP-tapi)
160 CREATE_LIBTOOL_FILE(SLP-tapi_SHARED /lib)
161
162 ADD_DEPENDENCIES(SLP-tapi_SHARED tapi-lib-proxy.h)
163
164 # pkgconfig file
165 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
166 CONFIGURE_FILE(tapi.pc.in tapi.pc @ONLY)
167
168
169 ### Install ###
170 #INSTALL(TARGETS SLP-tapi_STATIC SLP-tapi_SHARED DESTINATION lib)
171 #INSTALL(TARGETS SLP-tapi_STATIC SLP-tapi_SHARED DESTINATION lib COMPONENT Development)
172 #INSTALL(TARGETS SLP-tapi DESTINATION lib COMPONENT RuntimeLibraries)
173 INSTALL(TARGETS SLP-tapi_SHARED DESTINATION lib COMPONENT Runtime)
174
175 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/common DESTINATION include/telephony)
176 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/tapi DESTINATION include/telephony)
177 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tapi.pc DESTINATION lib/pkgconfig)
178