CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(pass) ######################################################## # PASS CMakeLists.txt ######################################################## SET(EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}/bin") SET(INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}") SET(VERSION 0.1.0) SET(SRCS src/pass/pass.c src/pass/pass-cpuhp.c src/pass/pass-cpuhp-radiation.c src/pass/pass-cpuhp-step.c src/pass/pass-parser.c src/pass/pass-hal.c src/pass/pass-rescon.c src/pass/pass-resmon.c src/pass/pass-resmon-source.c src/pass/pass-pmqos.c src/pass/pass-thermal.c src/pmqos/pmqos.c src/pmqos/pmqos-parser.c src/thermal/thermal.c src/thermal/thermal-parser.c src/util/common.c src/util/device-notifier.c src/util/devices.c src/util/resource.c src/util/gdbus-util.c src/util/timer.c src/util/thread.c src/util/queue.c src/util/kernel.c src/main.c #Generated by a custom command 'gdbus-codegen' below src/pass/pass-dbus-stub.c #Generated by a custom command 'gdbus-codegen' below src/pmqos/pmqos-dbus-stub.c #Generated by a custom command 'gdbus-codegen' below src/thermal/thermal-dbus-stub.c src/resource/resource-cpu.c src/resource/resource-bus.c src/resource/resource-gpu.c src/resource/resource-memory.c src/resource/resource-display.c src/resource/resource-system.c src/resource/resource-battery.c src/resource/resource-process.c src/resource/resource-process-group.c src/resource/resource-disk.c src/resource/resource-network.c src/monitor/monitor.c src/monitor/monitor-thread.c src/monitor/monitor-command.c src/monitor/request-handler.c #Generated by a custom command 'gdbus-codegen' below src/monitor/monitor-dbus-stub.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lib) SET(PKG_MODULES dlog glib-2.0 dbus-1 gio-2.0 gio-unix-2.0 libudev libsystemd libnl-3.0 libnl-genl-3.0 json-c hal-api-power ) INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED ${PKG_MODULES}) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -fPIE") SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer -finstrument-functions") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lrt") SET(CMAKE_EXE_LINKER_FLAGS "-pie") SET(LIBDIR ${CMAKE_LIBDIR_PREFIX}) ADD_DEFINITIONS("-DLOG_TAG=\"PASS\"") ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"") ADD_DEFINITIONS("-DLIBPATH=\"${LIBDIR}\"") ADD_CUSTOM_COMMAND( OUTPUT src/pass/pass-dbus-stub.c COMMAND gdbus-codegen --interface-prefix org.tizen. --generate-c-code pass-dbus-stub --output-directory src/pass/ scripts/pass-dbus.xml COMMENT "Generating GDBus stub for core interface") ADD_CUSTOM_COMMAND( OUTPUT src/pmqos/pmqos-dbus-stub.c COMMAND gdbus-codegen --interface-prefix org.tizen. --generate-c-code pmqos-dbus-stub --output-directory src/pmqos/ scripts/pmqos-dbus.xml COMMENT "Generating GDBus stub for pmqos interface") ADD_CUSTOM_COMMAND( OUTPUT src/thermal/thermal-dbus-stub.c COMMAND gdbus-codegen --interface-prefix org.tizen. --generate-c-code thermal-dbus-stub --output-directory src/thermal/ scripts/thermal-dbus.xml COMMENT "Generating GDBus stub for thermal interface") ADD_CUSTOM_COMMAND( OUTPUT src/monitor/monitor-dbus-stub.c COMMAND gdbus-codegen --interface-prefix org.tizen. --generate-c-code monitor-dbus-stub --output-directory src/monitor/ scripts/monitor-dbus.xml COMMENT "Generating GDBus stub for monitor interface") ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl -lm) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/${PROJECT_NAME}.conf DESTINATION /etc/dbus-1/system.d) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/pass-pmqos.json DESTINATION /etc/pass) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/pass-thermal.json DESTINATION /etc/pass) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/systemd/${PROJECT_NAME}.service.in ${CMAKE_SOURCE_DIR}/systemd/${PROJECT_NAME}.service @ONLY) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/systemd/${PROJECT_NAME}-resource-monitor.socket.in ${CMAKE_SOURCE_DIR}/systemd/${PROJECT_NAME}-resource-monitor.socket @ONLY) INSTALL(FILES ${CMAKE_SOURCE_DIR}/systemd/org.tizen.system.pass.service DESTINATION /usr/share/dbus-1/system-services) INSTALL(FILES ${CMAKE_SOURCE_DIR}/systemd/org.tizen.system.thermal.service DESTINATION /usr/share/dbus-1/system-services) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/systemd/ DESTINATION lib/systemd/system FILES_MATCHING PATTERN "${PROJECT_NAME}.service" ) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/systemd/ DESTINATION lib/systemd/system FILES_MATCHING PATTERN "${PROJECT_NAME}-resource-monitor.socket" ) ADD_SUBDIRECTORY(tests/integration-test) ADD_SUBDIRECTORY(tests/haltest) ADD_SUBDIRECTORY(tests/unittest) ADD_SUBDIRECTORY(lib) ADD_SUBDIRECTORY(tools/resource-monitor)