1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 SET(fw_name "resourced")
4 SET(RESOURCED resourced)
10 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE -DRESOURCED_BUILD -Wall -Werror -fvisibility=hidden")
11 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GNU_SOURCE -DRESOURCED_BUILD -Wall -Werror -fvisibility=hidden")
13 IF(DEFINED ASAN_BUILD)
14 STRING(REGEX REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
15 STRING(REGEX REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
19 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--as-needed")
20 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
22 #Set debug-mode if needed
23 IF("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
24 STRING(REGEX REPLACE "-O2" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
25 STRING(REGEX REPLACE "-D_FORTIFY_SOURCE=2" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
26 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -O0 -g")
27 SET(CMAKE_VERBOSE_MAKEFILE ON)
30 #set compile size optimization option in case of none DEBUG
31 SET(ADDITIONAL_OFLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections -fno-exceptions")
32 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${ADDITIONAL_OFLAGS}")
33 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_OFLAGS}")
36 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
37 SET(VERSION ${FULLVER})
39 #init variables with sources
40 SET(DATA_DIR ${CMAKE_SOURCE_DIR}/data)
41 SET(CMAKELISTS_DIR ${CMAKE_SOURCE_DIR}/CMakeLists)
42 SET(INCLUDE_COMMON_DIR ${CMAKE_SOURCE_DIR}/src/common)
43 SET(INCLUDE_PROCFS_DIR ${CMAKE_SOURCE_DIR}/src/common/procfs)
44 SET(INCLUDE_MODULE_DIR ${CMAKE_SOURCE_DIR}/src/common/module)
45 SET(INCLUDE_CONF_DIR ${CMAKE_SOURCE_DIR}/src/common/conf)
46 SET(INCLUDE_IPC_DIR ${CMAKE_SOURCE_DIR}/src/common/ipc)
47 SET(INCLUDE_CGROUP_DIR ${CMAKE_SOURCE_DIR}/src/common/cgroup)
48 SET(INCLUDE_PUBLIC_DIR ${CMAKE_SOURCE_DIR}/include)
49 SET(CONF_DIR ${CMAKE_SOURCE_DIR}/conf)
50 SET(RESOURCED_INCLUDEDIR
51 ${INCLUDE_COMMON_DIR} ${INCLUDE_CGROUP_DIR} ${INCLUDE_CONF_DIR} ${INCLUDE_IPC_DIR} ${INCLUDE_MODULE_DIR} ${INCLUDE_PROCFS_DIR} ${INCLUDE_PUBLIC_DIR})
54 SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
55 SET(RESOURCED_SOURCE_DIR ${SOURCE_DIR}/resourced)
56 SET(COMMON_SOURCE_DIR ${SOURCE_DIR}/common)
59 SET(CGROUP_SOURCE_DIR ${COMMON_SOURCE_DIR}/cgroup)
62 SET(CONF_SOURCE_DIR ${COMMON_SOURCE_DIR}/conf)
65 SET(IPC_SOURCE_DIR ${COMMON_SOURCE_DIR}/ipc)
68 SET(MODULE_SOURCE_DIR ${COMMON_SOURCE_DIR}/module)
71 SET(PROCFS_SOURCE_DIR ${COMMON_SOURCE_DIR}/procfs)
73 #resource-optimizer source folders
74 SET(RESOURCE_OPTIMIZER_SOURCE_DIR ${SOURCE_DIR}/resource-optimizer)
75 SET(CPU_RESOURCE_OPTIMIZER_SOURCE_DIR ${RESOURCE_OPTIMIZER_SOURCE_DIR}/cpu)
76 SET(MEMORY_RESOURCE_OPTIMIZER_SOURCE_DIR ${RESOURCE_OPTIMIZER_SOURCE_DIR}/memory)
77 SET(DEDUP_SOURCE_DIR ${MEMORY_RESOURCE_OPTIMIZER_SOURCE_DIR})
78 SET(SWAP_SOURCE_DIR ${RESOURCE_OPTIMIZER_SOURCE_DIR}/memory/swap)
79 SET(COMPACTION_SOURCE_DIR ${MEMORY_RESOURCE_OPTIMIZER_SOURCE_DIR})
81 #resource-limiter source folders
82 SET(RESOURCE_LIMITER_SOURCE_DIR ${SOURCE_DIR}/resource-limiter)
83 SET(FREEZER_SOURCE_DIR ${RESOURCE_LIMITER_SOURCE_DIR}/freezer)
84 SET(MEMORY_LIMITER_SOURCE_DIR ${RESOURCE_LIMITER_SOURCE_DIR}/memory)
85 SET(CPU_LIMITER_SOURCE_DIR ${RESOURCE_LIMITER_SOURCE_DIR})
87 #resource-monitor source folders
88 SET(RESOURCE_MONITOR_SOURCE_DIR ${SOURCE_DIR}/resource-monitor)
91 SET(PROCESS_SOURCE_DIR ${SOURCE_DIR}/process)
92 SET(BLOCK_SOURCE_DIR ${PROCESS_SOURCE_DIR}/block)
93 SET(WATCHDOG_SOURCE_DIR ${PROCESS_SOURCE_DIR}/watchdog)
95 INSTALL(FILES ${CONF_DIR}/org.tizen.resourced.conf DESTINATION /etc/dbus-1/system.d)
98 IF(DEFINED RD_TESTS_PATH)
100 ADD_SUBDIRECTORY(tests)
101 ENDIF(DEFINED RD_TESTS_PATH)