CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(fw_name "resourced") SET(RESOURCED resourced) SET(LIBS libs) PROJECT(${fw_name}) #Set CFLAGS SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE -DRESOURCED_BUILD -Wall -Werror -fvisibility=hidden") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GNU_SOURCE -DRESOURCED_BUILD -Wall -Werror -fvisibility=hidden") IF(DEFINED ASAN_BUILD) STRING(REGEX REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) STRING(REGEX REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) ENDIF() #Set as-needed SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--as-needed") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") #Set debug-mode if needed IF("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") STRING(REGEX REPLACE "-O2" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) STRING(REGEX REPLACE "-D_FORTIFY_SOURCE=2" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -O0 -g") SET(CMAKE_VERBOSE_MAKEFILE ON) SET(VERBOSE 1) ELSE() #set compile size optimization option in case of none DEBUG SET(ADDITIONAL_OFLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections -fno-exceptions") SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${ADDITIONAL_OFLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_OFLAGS}") ENDIF() SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(VERSION ${FULLVER}) #init variables with sources SET(DATA_DIR ${CMAKE_SOURCE_DIR}/data) SET(CMAKELISTS_DIR ${CMAKE_SOURCE_DIR}/CMakeLists) SET(INCLUDE_COMMON_DIR ${CMAKE_SOURCE_DIR}/src/common) SET(INCLUDE_CGROUP_DIR ${CMAKE_SOURCE_DIR}/src/common/cgroup) SET(INCLUDE_PUBLIC_DIR ${CMAKE_SOURCE_DIR}/include) SET(RESOURCED_INCLUDEDIR ${INCLUDE_COMMON_DIR} ${INCLUDE_CGROUP_DIR} ${INCLUDE_PUBLIC_DIR}) #misc SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src) SET(RESOURCED_SOURCE_DIR ${SOURCE_DIR}/resourced) SET(COMMON_SOURCE_DIR ${SOURCE_DIR}/common) #cgroup SET(CGROUP_SOURCE_DIR ${COMMON_SOURCE_DIR}/cgroup) #resource-optimizer source folders SET(RESOURCE_OPTIMIZER_SOURCE_DIR ${SOURCE_DIR}/resource-optimizer) SET(MEMORY_RESOURCE_OPTIMIZER_SOURCE_DIR ${RESOURCE_OPTIMIZER_SOURCE_DIR}/memory) SET(DEDUP_SOURCE_DIR ${RESOURCE_OPTIMIZER_SOURCE_DIR}/memory/dedup) SET(SWAP_SOURCE_DIR ${RESOURCE_OPTIMIZER_SOURCE_DIR}/memory/swap) #resource-limiter source folders SET(RESOURCE_LIMITER_SOURCE_DIR ${SOURCE_DIR}/resource-limiter) SET(FREEZER_SOURCE_DIR ${RESOURCE_LIMITER_SOURCE_DIR}/freezer) SET(MEMORY_LIMITER_SOURCE_DIR ${RESOURCE_LIMITER_SOURCE_DIR}/memory) SET(CPU_LIMITER_SOURCE_DIR ${RESOURCE_LIMITER_SOURCE_DIR}/cpu) #resource-monitor source folders SET(RESOURCE_MONITOR_SOURCE_DIR ${SOURCE_DIR}/resource-monitor) SET(CPU_MONITOR_SOURCE_DIR ${RESOURCE_MONITOR_SOURCE_DIR}/cpu) SET(MEMORY_MONITOR_SOURCE_DIR ${RESOURCE_MONITOR_SOURCE_DIR}/memory) SET(STORAGE_MONITOR_SOURCE_DIR ${RESOURCE_MONITOR_SOURCE_DIR}/storage) SET(DBUS_MONITOR_SOURCE_DIR ${RESOURCE_MONITOR_SOURCE_DIR}) SET(BATTERY_MONITOR_SOURCE_DIR ${RESOURCE_MONITOR_SOURCE_DIR}/battery) SET(ABNORMAL_MONITOR_SOURCE_DIR ${RESOURCE_MONITOR_SOURCE_DIR}/abnormal) #process SET(PROCESS_SOURCE_DIR ${SOURCE_DIR}/process) SET(VIP_SOURCE_DIR ${PROCESS_SOURCE_DIR}/vip) SET(BLOCK_SOURCE_DIR ${PROCESS_SOURCE_DIR}/block) SET(WATCHDOG_SOURCE_DIR ${PROCESS_SOURCE_DIR}/watchdog) SET(PRIORITY_SOURCE_DIR ${PROCESS_SOURCE_DIR}/priority) INSTALL(FILES ${CMAKE_SOURCE_DIR}/resourced.conf DESTINATION /etc/dbus-1/system.d) ADD_SUBDIRECTORY(src) IF(DEFINED RD_TESTS_PATH) ENABLE_TESTING() ADD_SUBDIRECTORY(tests) ENDIF(DEFINED RD_TESTS_PATH)