tizen 2.3.1 release
[kernel/api/system-resource.git] / src / network / CMakeLists.txt
1 SET(CMAKE_INSTALL_PREFIX /usr)
2 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
3
4 SET(PROJECT ${RESOURCED})
5 PROJECT(${PROJECT})
6
7 IF("${NETWORK_MODULE}" STREQUAL "OFF")
8         INCLUDE_DIRECTORIES(${INCLUDE_PUBLIC_DIR}
9                         ${INCLUDE_COMMON_DIR})
10         SET(SOURCES ${NETWORK_SOURCE_DIR}/join-dummy.c)
11         ADD_LIBRARY(${PROJECT} SHARED ${SOURCES})
12         TARGET_LINK_LIBRARIES(${PROJECT} ${shared_pkgs_LDFLAGS})
13
14         SET_TARGET_PROPERTIES(${PROJECT}
15                         PROPERTIES
16                         VERSION ${FULLVER}
17                         SOVERSION ${MAJORVER}
18                         CLEAN_DIRECT_OUTPUT 1
19         )
20
21         INSTALL(TARGETS ${PROJECT} DESTINATION lib)
22
23         RETURN()
24 ENDIF()
25
26 INCLUDE_DIRECTORIES(${INCLUDE_PUBLIC_DIR}
27                 ${NETWORK_SOURCE_DIR}/include
28                 ${RESOURCED_INCLUDEDIR}
29         )
30
31 SET (REQUIRES_LIST dlog
32                    glib-2.0
33                    sqlite3
34                    vconf
35                    ecore
36                    edbus
37 )
38
39 IF("${TETHERING_FEATURE}" STREQUAL "ON")
40         SET(REQUIRES_LIST ${REQUIRES_LIST}
41                    capi-network-connection)
42 ENDIF()
43
44 INCLUDE(FindPkgConfig)
45 pkg_check_modules(pkgs_${NETWORK} REQUIRED ${REQUIRES_LIST})
46
47 FOREACH(flag ${pkgs_${NETWORK}_CFLAGS})
48     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
49 ENDFOREACH(flag)
50
51 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
52 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
53
54
55 IF("${ARCH}" STREQUAL "arm")
56     ADD_DEFINITIONS("-DTARGET")
57 ENDIF("${ARCH}" STREQUAL "arm")
58
59 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
60 ADD_DEFINITIONS("-DSLP_DEBUG")
61
62 IF("${NETWORK_SERVICE}" STREQUAL "OFF")
63         ADD_DEFINITIONS("-DNETWORK_SERVICE_OFF")
64 ENDIF()
65
66 #### libs ####
67
68 SET(settings_HEADERS
69   ${NETWORK_SOURCE_DIR}/include/settings.h)
70
71 SET(settings_SOURCES
72   ${NETWORK_SOURCE_DIR}/settings.c)
73
74 ADD_LIBRARY(settings STATIC
75   ${settings_SOURCES})
76
77 SET(storage_HEADERS
78   ${NETWORK_SOURCE_DIR}/include/storage.h)
79
80 SET(storage_SOURCES
81   ${NETWORK_SOURCE_DIR}/datausage-quota-processing.c #storage uses it
82   ${NETWORK_SOURCE_DIR}/storage.c)
83
84 SET(protocol-info_HEADERS
85   ${NETWORK_SOURCE_DIR}/include/protocol-info.h)
86
87 SET(protocol-info_SOURCES
88   ${NETWORK_SOURCE_DIR}/protocol-info.c)
89
90 SET(quota_HEADERS
91   ${NETWORK_SOURCE_DIR}/include/datausage-quota-processing.h)
92
93 SET(quota_SOURCES
94   ${COMMON_SOURCE_DIR}/edbus-handler.c
95   ${NETWORK_SOURCE_DIR}/datausage-quota.c
96   )
97
98 SET(app-stat_HEADERS
99   ${INCLUDE_COMMON_DIR}/app-stat.h)
100
101 SET(app-stat_SOURCES
102   ${NETWORK_SOURCE_DIR}/app-stat.c)
103
104 SET(net-iface_HEADERS
105   ${NETWORK_SOURCE_DIR}/include/iface.h)
106
107 SET(net-iface_SOURCES
108   ${NETWORK_SOURCE_DIR}/iface.c
109 )
110
111 SET(roaming_HEADERS
112   ${NETWORK_SOURCE_DIR}/include/roaming.h)
113
114 SET(roaming_SOURCES
115   ${NETWORK_SOURCE_DIR}/dummy_roaming.c)
116
117 ADD_LIBRARY(protocol-info STATIC
118   ${protocol-info_SOURCES} ${protocol-info_HEADERS})
119
120 ADD_LIBRARY(storage STATIC
121   ${storage_SOURCES} ${storage_HEADERS}
122   ${quota_SOURCES} ${quota_HEADERS}
123   )
124 TARGET_LINK_LIBRARIES(storage protocol-info ${pkgs_${NETWORK}_LDFLAGS})
125
126 ADD_LIBRARY(app-stat STATIC
127   ${app-stat_SOURCES} ${app-stat_HEADERS})
128 TARGET_LINK_LIBRARIES(app-stat net-cls)
129
130 ADD_LIBRARY(net-iface STATIC
131   ${net-iface_SOURCES})
132
133 ADD_LIBRARY(roaming STATIC
134   ${roaming_SOURCES})
135 TARGET_LINK_LIBRARIES(roaming ${pkgs_${NETWORK}_LDFLAGS})
136
137 SET(net-cls_HEADERS
138   ${NETWORK_SOURCE_DIR}/include/net-cls-cgroup.h)
139
140 SET(net-cls_SOURCES
141   ${NETWORK_SOURCE_DIR}/net-cls-cgroup.c)
142
143 ADD_LIBRARY(net-cls STATIC
144   ${net-cls_SOURCES})
145
146 #### libs ####
147
148 #### lib-resourced ####
149
150 SET(${PROJECT}_HEADERS
151   ${INCLUDE_PUBLIC_DIR}/data_usage.h
152   ${INCLUDE_PUBLIC_DIR}/resourced.h
153   ${INCLUDE_COMMON_DIR}/const.h
154   ${INCLUDE_COMMON_DIR}/trace.h
155   ${quota_HEADERS}
156   )
157
158 SET(${PROJECT}_SOURCES
159   ${COMMON_SOURCE_DIR}/cgroup.c
160   ${COMMON_SOURCE_DIR}/appid-helper.c
161   ${COMMON_SOURCE_DIR}/file-helper.c
162   ${NETWORK_SOURCE_DIR}/foreach.c
163   ${NETWORK_SOURCE_DIR}/join.c
164   ${NETWORK_SOURCE_DIR}/options.c
165   ${NETWORK_SOURCE_DIR}/reset.c
166   ${NETWORK_SOURCE_DIR}/restriction.c
167   ${NETWORK_SOURCE_DIR}/update.c
168   ${NETWORK_SOURCE_DIR}/main.c
169   ${NETWORK_SOURCE_DIR}/nl-helper.c
170   ${NETWORK_SOURCE_DIR}/restriction-helper.c
171   ${quota_SOURCES}
172   )
173
174 IF("${DATAUSAGE_TYPE}" STREQUAL "NFACCT")
175 ELSE()
176   SET(${PROJECT}_SOURCES ${${PROJECT}_SOURCES}
177     ${NETWORK_SOURCE_DIR}/net-activity.c
178     ${NETWORK_SOURCE_DIR}/generic-netlink.c
179   )
180 ENDIF()
181
182
183 INCLUDE(FindPkgConfig)
184 pkg_check_modules(shared_pkgs REQUIRED dlog
185                                        glib-2.0
186                                        sqlite3
187                                        vconf
188                                        ecore
189                                        edbus)
190
191 FOREACH(flag ${shared_pkgs_CFLAGS})
192         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
193 ENDFOREACH(flag)
194
195 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIC")
196
197 INCLUDE_DIRECTORIES(${RESOURCED_INCLUDEDIR}
198                     ${NETWORK_SOURCE_DIR}/include
199                     ${RESOURCED_SOURCE_DIR})
200
201 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
202
203 ADD_LIBRARY(${PROJECT} SHARED
204   ${${PROJECT}_HEADERS}
205   ${${PROJECT}_SOURCES})
206
207 TARGET_LINK_LIBRARIES(${PROJECT} roaming settings net-cls
208   ${shared_pkgs_LDFLAGS})
209
210 SET_TARGET_PROPERTIES(${PROJECT}
211      PROPERTIES
212      VERSION ${FULLVER}
213      SOVERSION ${MAJORVER}
214      CLEAN_DIRECT_OUTPUT 1
215 )
216
217 ADD_EXECUTABLE(datausagetool ${UTILS_SOURCE_DIR}/datausage-tool.c)
218 TARGET_LINK_LIBRARIES(datausagetool
219                       ${PROJECT}
220                       ${COMMON_SOURCE_DIR}/config-parser.c
221                       net-iface)
222 INSTALL(TARGETS datausagetool
223     DESTINATION /usr/bin)
224
225 INSTALL(TARGETS ${PROJECT} DESTINATION lib)
226 INSTALL(FILES ${INCLUDE_PUBLIC_DIR}/data_usage.h DESTINATION include/system)
227 #### lib-resourced ####
228
229 #### rd-network ####
230 SET(SOURCES
231         ${NETWORK_SOURCE_DIR}/network-dummy.c)
232
233 ADD_LIBRARY(${NETWORK} SHARED ${SOURCES})
234 ADD_DEPENDENCIES(${NETWORK} ${PROJECT})
235 TARGET_LINK_LIBRARIES(${NETWORK} ${${NETWORK}_LDFLAGS} -L${LIBRARY_OUTPUT_PATH} -l${PROJECT})
236
237 SET_TARGET_PROPERTIES(${NETWORK}
238      PROPERTIES
239      VERSION ${FULLVER}
240      SOVERSION ${MAJORVER}
241      CLEAN_DIRECT_OUTPUT 1
242 )
243
244 INSTALL(TARGETS ${NETWORK} DESTINATION lib)
245 INSTALL(FILES ${INCLUDE_PUBLIC_DIR}/rd-network.h DESTINATION include/system)
246
247 #### rd-network ####