make libsystemd optional

This commit is contained in:
= 2025-04-28 12:55:03 +02:00 committed by Quentin Dawans
parent f91c93bc2f
commit aad8bde477
3 changed files with 20 additions and 4 deletions

View File

@ -0,0 +1,4 @@
#ifndef __SYSTEMD_H__
#define __SYSTEMD_H__
#cmakedefine ACORE_WITH_SYSTEMD
#endif // __SYSTEMD_H__

View File

@ -36,9 +36,20 @@ target_link_libraries(shared
PUBLIC
database)
if (UNIX)
set(ACORE_WITH_SYSTEMD OFF)
find_library(WITH_SYSTEMD systemd)
if(WITH_SYSTEMD)
message("*** Building with SYSTEMD support")
set(ACORE_WITH_SYSTEMD ON)
target_link_libraries(shared PUBLIC systemd)
endif (UNIX)
else(LINUX)
message("*** Skipping SYSTEMD support")
endif (WITH_SYSTEMD)
configure_file(
"${CMAKE_SOURCE_DIR}/src/cmake/systemd.h.in.cmake"
"${BUILDDIR}/systemd.h"
)
set_target_properties(shared
PROPERTIES

View File

@ -20,11 +20,12 @@
#include "IpAddress.h"
#include "Log.h"
#include "systemd.h"
#include <atomic>
#include <boost/asio/ip/tcp.hpp>
#include <functional>
#if AC_PLATFORM == AC_PLATFORM_UNIX
#ifdef ACORE_WITH_SYSTEMD
#include <systemd/sd-daemon.h>
#endif
@ -42,7 +43,7 @@ public:
_socket(ioContext), _closed(false), _socketFactory([this](){ return DefaultSocketFactory(); }),
_supportSocketActivation(supportSocketActivation)
{
#if AC_PLATFORM == AC_PLATFORM_UNIX
#ifdef ACORE_WITH_SYSTEMD
if (_supportSocketActivation && sd_listen_fds(0) > 0)
{
LOG_DEBUG("network", "Using socket from systemd socket activation");