From 3f65139b2825e654dd0cc36d1cee055b7ac959d9 Mon Sep 17 00:00:00 2001 From: Christian Mueller Date: Mon, 21 May 2012 19:00:35 +0200 Subject: * [GAM-24] Watchdog concept for the AudioManager. This patch introduces the watchdog functionality of the AudioManager. The function is based on the systemd watchdog functionality. The desired time intervals for checking the watchdog can be tweaked by the unit file for systemd. A sample unit file is added to the subdirectory cmake. Via Cmake build option, the watchdog functionality can be switched off. If the development package from systemd is available it will use the lib that comes with it. If not, the default handler will be compiled along with the audiomanager and this one will be used. Signed-off-by: Christian Mueller --- AudioManagerDaemon/CMakeLists.txt | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'AudioManagerDaemon/CMakeLists.txt') diff --git a/AudioManagerDaemon/CMakeLists.txt b/AudioManagerDaemon/CMakeLists.txt index 4620db4..50a6969 100644 --- a/AudioManagerDaemon/CMakeLists.txt +++ b/AudioManagerDaemon/CMakeLists.txt @@ -27,6 +27,15 @@ set(INCLUDE_FOLDER "include") pkg_check_modules(SQLITE REQUIRED sqlite3) +IF (WITH_SYSTEMD_WATCHDOG) + pkg_check_modules(SYSTEMD libsystemd-daemon) + IF (SYSTEMD_FOUND) + message(STATUS "Found libsystemd-daemon") + ELSE (SYSTEMD_FOUND) + message(STATUS "Did not find libsystemd-daemon, using own lib") + ENDIF(SYSTEMD_FOUND) +ENDIF (WITH_SYSTEMD_WATCHDOG) + IF(WITH_DBUS_WRAPPER) FIND_PACKAGE(DBUS REQUIRED) ENDIF(WITH_DBUS_WRAPPER) @@ -46,8 +55,16 @@ SET(AUDIOMAN_SRCS_CXX src/CAmRouter.cpp src/CAmDltWrapper.cpp src/CAmTelnetMenuHelper.cpp + src/CAmWatchdog.cpp ) +IF (NOT SYSTEMD_FOUND) + SET (AUDIOMAN_SRCS_CXX + ${AUDIOMAN_SRCS_CXX} + src/sd-daemon.c + ) +ENDIF (NOT SYSTEMD_FOUND) + IF(WITH_DBUS_WRAPPER) SET (AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} @@ -90,19 +107,27 @@ IF(WITH_DBUS_WRAPPER) ${SQLITE_LIBRARIES} ${CMAKE_DL_LIBS} ${DBUS_LIBRARY} + rt ) ELSE(WITH_DBUS_WRAPPER) TARGET_LINK_LIBRARIES(AudioManager ${SQLITE_LIBRARIES} ${CMAKE_DL_LIBS} + rt ) ENDIF(WITH_DBUS_WRAPPER) IF(WITH_DLT) TARGET_LINK_LIBRARIES(AudioManager - ${DLT_LIBRARIES} + ${DLT_LIBRARIES} ) -ENDIF(WITH_DLT) +ENDIF(WITH_DLT) + +IF (SYSTEMD_FOUND) + TARGET_LINK_LIBRARIES(AudioManager + ${SYSTEMD_LIBRARIES} + ) +ENDIF (SYSTEMD_FOUND) IF(WITH_TESTS) add_subdirectory (test) -- cgit v1.2.1