1 CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
3 #CMake doesnt' support same project name for several TARGETS
7 SET(CMAKE_EXTRA_INCLUDE_FILES unistd.h)
9 INCLUDE_DIRECTORIES(${RESOURCED_INCLUDEDIR}
10 ${RESOURCED_SOURCE_DIR}
11 ${LOGGING_SOURCE_DIR}/include
13 ${PROC-STAT_SOURCE_DIR}/include
14 ${APP-STAT_SOURCE_DIR}/include
15 ${NETWORK_SOURCE_DIR}/include)
18 ${NETWORK_SOURCE_DIR}/include/datausage-vconf-callbacks.h
19 ${NETWORK_SOURCE_DIR}/include/iface-cb.h
20 ${INCLUDE_COMMON_DIR}/config.h
21 ${INCLUDE_COMMON_DIR}/config-parser.h
22 ${INCLUDE_COMMON_DIR}/const.h
23 ${INCLUDE_COMMON_DIR}/daemon-options.h
24 ${INCLUDE_COMMON_DIR}/macro.h
25 ${INCLUDE_COMMON_DIR}/logging-common.h
26 ${INCLUDE_COMMON_DIR}/lowmem-common.h
27 ${INCLUDE_COMMON_DIR}/module-data.h
28 ${INCLUDE_COMMON_DIR}/module.h
29 ${INCLUDE_COMMON_DIR}/swap-common.h
33 ${COMMON_SOURCE_DIR}/cgroup.c
34 ${COMMON_SOURCE_DIR}/notifier.c
35 ${COMMON_SOURCE_DIR}/appid-helper.c
36 ${COMMON_SOURCE_DIR}/config-parser.c
37 ${COMMON_SOURCE_DIR}/edbus-handler.c
38 ${COMMON_SOURCE_DIR}/file-helper.c
39 ${COMMON_SOURCE_DIR}/module-data.c
40 ${COMMON_SOURCE_DIR}/module.c
41 ${NETWORK_SOURCE_DIR}/counter.c
42 ${PROC-STAT_SOURCE_DIR}/proc-handler.c
43 ${PROC-STAT_SOURCE_DIR}/proc-main.c
44 ${PROC-STAT_SOURCE_DIR}/proc-noti.c
45 ${PROC-STAT_SOURCE_DIR}/proc-process.c
46 ${PROC-STAT_SOURCE_DIR}/proc-monitor.c
47 ${RESOURCED_SOURCE_DIR}/init.c
48 ${RESOURCED_SOURCE_DIR}/main.c
51 INSTALL(FILES ${DATA_DIR}/${EXCLUDE_LIST_FILE_NAME} DESTINATION /usr/etc)
53 IF("${NETWORK_MODULE}" STREQUAL "ON")
55 IF("${DATAUSAGE_TYPE}" STREQUAL "NFACCT")
56 SET(CONFIG_DATAUSAGE_NFACCT 1)
57 SET(SOURCES ${SOURCES}
58 ${NETWORK_SOURCE_DIR}/nfacct-rule.c
59 ${NETWORK_SOURCE_DIR}/nf-restriction.c
62 SET(SOURCES ${SOURCES}
63 ${NETWORK_SOURCE_DIR}/generic-netlink.c
64 ${NETWORK_SOURCE_DIR}/ktgrabber-restriction.c
68 SET(SOURCES ${SOURCES}
69 ${NETWORK_SOURCE_DIR}/counter-process.c
70 ${NETWORK_SOURCE_DIR}/daemon-options.c
71 ${NETWORK_SOURCE_DIR}/datausage-quota-processing.c
72 ${NETWORK_SOURCE_DIR}/datausage-vconf-callbacks.c
73 ${NETWORK_SOURCE_DIR}/datausage-vconf-common.c
74 ${NETWORK_SOURCE_DIR}/specific-trace.c
75 ${NETWORK_SOURCE_DIR}/datausage-common.c
76 ${NETWORK_SOURCE_DIR}/iface-cb.c
77 ${NETWORK_SOURCE_DIR}/nl-helper.c
78 ${NETWORK_SOURCE_DIR}/notification.c
79 ${NETWORK_SOURCE_DIR}/restriction-handler.c
80 ${NETWORK_SOURCE_DIR}/restriction-helper.c
81 ${NETWORK_SOURCE_DIR}/restriction-local.c
82 ${NETWORK_SOURCE_DIR}/tethering-restriction.c
85 IF ("${TETHERING_FEATURE}" STREQUAL "ON")
86 SET(TETHERING_FEATURE 1)
89 INSTALL(FILES ${NETWORK_SOURCE_DIR}/network.conf
90 DESTINATION /etc/resourced)
94 IF("${VIP_AGENT}" STREQUAL "ON")
95 SET(SOURCES ${SOURCES}
96 ${VIP_SOURCE_DIR}/vip-process.c
101 IF("${LOGGING_MODULE}" STREQUAL "ON")
102 SET(SOURCES ${SOURCES}
103 ${LOGGING_SOURCE_DIR}/logging.c
105 ADD_DEFINITIONS("-DLOGGING_SUPPORT")
107 IF("${LOGGING_MEMORY}" STREQUAL "ON")
108 SET(SOURCES ${SOURCES}
109 ${MEMORY_SOURCE_DIR}/logging-memory.c
113 IF("${LOGGING_CPU}" STREQUAL "ON")
114 SET(SOURCES ${SOURCES}
115 ${CPU_SOURCE_DIR}/logging-cpu.c
121 IF("${MEMORY_MODULE}" STREQUAL "ON")
122 SET(SOURCES ${SOURCES}
123 ${MEMORY_SOURCE_DIR}/lowmem-dbus.c
125 IF("${MEMORY_CGROUP}" STREQUAL "ON")
126 SET(SOURCES ${SOURCES}
127 ${MEMORY_SOURCE_DIR}/vmpressure-lowmem-handler.c
130 SET(SOURCES ${SOURCES}
131 ${MEMORY_SOURCE_DIR}/lowmem-handler.c
134 ADD_DEFINITIONS("-DMEMORY_SUPPORT")
138 IF("${SWAP_MODULE}" STREQUAL "ON")
139 SET(SOURCES ${SOURCES}
140 ${SWAP_SOURCE_DIR}/swap.c
142 ADD_DEFINITIONS("-DSWAP_SUPPORT")
145 IF("${CPU_MODULE}" STREQUAL "ON")
146 SET(SOURCES ${SOURCES}
147 ${CPU_SOURCE_DIR}/cpu.c
151 IF("${TIMER_SLACK}" STREQUAL "ON")
152 SET(SOURCES ${SOURCES}
153 ${TIMER_SOURCE_DIR}/timer-slack.c
157 SET (REQUIRES_LIST ${REQUIRES_LIST}
171 IF("${LOGGING_MODULE}" STREQUAL "ON")
172 SET (REQUIRES_LIST ${REQUIRES_LIST}
177 INCLUDE(FindPkgConfig)
178 pkg_check_modules(daemon_pkgs REQUIRED ${REQUIRES_LIST})
180 FOREACH(flag ${daemon_pkgs_CFLAGS})
181 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -pthread")
184 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
186 CONFIGURE_FILE(${INCLUDE_COMMON_DIR}/config.h.in
187 ${INCLUDE_COMMON_DIR}/config.h)
189 ADD_EXECUTABLE(hashtest ${UTILS_SOURCE_DIR}/hashtest.c)
190 TARGET_LINK_LIBRARIES(hashtest ${daemon_pkgs_LDFLAGS})
192 ADD_EXECUTABLE(cgroup-test ${UTILS_SOURCE_DIR}/cgroup-test.c
193 ${COMMON_SOURCE_DIR}/cgroup.c
194 ${COMMON_SOURCE_DIR}/file-helper.c
195 ${COMMON_SOURCE_DIR}/appid-helper.c
196 ${NETWORK_SOURCE_DIR}/net-cls-cgroup.c
198 TARGET_LINK_LIBRARIES(cgroup-test ${daemon_pkgs_LDFLAGS} "-L/lib/ -lrt")
200 ADD_EXECUTABLE (${PROJECT_NAME} ${HEADERS} ${SOURCES})
201 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
202 ${daemon_pkgs_LDFLAGS}
205 IF("${NETWORK_MODULE}" STREQUAL "ON")
206 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
216 IF("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
217 ADD_EXECUTABLE(test-udp-server ${UTILS_SOURCE_DIR}/udp-server.c ${UTILS_SOURCE_DIR}/udp-common.c)
218 ADD_EXECUTABLE(test-udp-client ${UTILS_SOURCE_DIR}/udp-client.c ${UTILS_SOURCE_DIR}/udp-common.c)
219 ADD_EXECUTABLE(iface-test ${UTILS_SOURCE_DIR}/iface-test.c)
220 TARGET_LINK_LIBRARIES(iface-test net-iface ${daemon_pkgs_LDFLAGS})
224 INSTALL(FILES ${DATA_DIR}/traffic_db.sql
225 DESTINATION /usr/share)
228 INSTALL(FILES ${INCLUDE_PUBLIC_DIR}/resourced.h DESTINATION include/system)
230 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SKIP_BUILD_RPATH true)
231 INSTALL(FILES ${PROJECT_NAME}
232 DESTINATION ${MAKE_INSTALL_PREFIX}/usr/bin RENAME resourced
233 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE WORLD_EXECUTE)
235 IF("${MEMORY_ENG}" STREQUAL "ON")
236 INSTALL(FILES ${MEMORY_SOURCE_DIR}/memory_eng.conf
237 DESTINATION /etc/resourced RENAME memory.conf)
239 INSTALL(FILES ${MEMORY_SOURCE_DIR}/memory_user.conf
240 DESTINATION /etc/resourced RENAME memory.conf)
243 IF("${SWAP_MODULE}" STREQUAL "ON")
244 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/scripts/resourced-zram.sh DESTINATION bin)
247 IF("${CPU_MODULE}" STREQUAL "ON")
248 INSTALL(FILES ${CPU_SOURCE_DIR}/cpu.conf
249 DESTINATION /etc/resourced RENAME cpu.conf)
251 INSTALL(PROGRAMS ${CMAKE_BINARY_DIR}/scripts/resourced-cpucgroup.sh DESTINATION bin)
254 IF("${TIMER_SLACK}" STREQUAL "ON")
255 INSTALL(FILES ${TIMER_SOURCE_DIR}/timer-slack.conf
256 DESTINATION /etc/resourced RENAME timer-slack.conf)
259 IF("${VIP_AGENT}" STREQUAL "ON")
260 ADD_EXECUTABLE(vip-release-agent ${VIP_SOURCE_DIR}/vip-release-agent.c)
261 TARGET_LINK_LIBRARIES(vip-release-agent dlog)
262 INSTALL(TARGETS vip-release-agent DESTINATION /usr/bin)
263 INSTALL(FILES ${VIP_SOURCE_DIR}/vip-process.conf DESTINATION /etc/resourced RENAME vip-process.conf)