From 13bb50b86361e660dede3d9ca3146b8a81bb746e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Fri, 21 Apr 2023 18:32:49 -0400
Subject: [PATCH] CMake: handle missing SYSTEMD_UNIT_INSTALL_DIR

---
 tools/CMakeLists.txt | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 7577b356..29de73d9 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -46,23 +46,30 @@ if (OPENDHT_SYSTEMD)
         message("-- Using Systemd unit installation directory requested: " ${OPENDHT_SYSTEMD_UNIT_FILE_LOCATION})
         set(SYSTEMD_UNIT_INSTALL_DIR ${OPENDHT_SYSTEMD_UNIT_FILE_LOCATION})
     endif()
-    string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_UNIT_INSTALL_DIR "${SYSTEMD_UNIT_INSTALL_DIR}")
-    set (systemdunitdir "${SYSTEMD_UNIT_INSTALL_DIR}")
 
     configure_file (
         systemd/dhtnode.service.in
         systemd/dhtnode.service
         @ONLY
     )
-    install (FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/dhtnode.service DESTINATION ${systemdunitdir})
-    install (FILES systemd/dhtnode.conf DESTINATION ${sysconfdir})
+    if (SYSTEMD_UNIT_INSTALL_DIR)
+        string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_UNIT_INSTALL_DIR "${SYSTEMD_UNIT_INSTALL_DIR}")
+        set (systemdunitdir "${SYSTEMD_UNIT_INSTALL_DIR}")
+        install (FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/dhtnode.service DESTINATION ${systemdunitdir})
+        install (FILES systemd/dhtnode.conf DESTINATION ${sysconfdir})
+    else()
+        message(WARNING "Systemd unit installation directory not found. The systemd unit won't be installed.")
+    endif()
+
     if (OPENDHT_PYTHON)
         configure_file (
             systemd/dhtcluster.service.in
             systemd/dhtcluster.service
             @ONLY
         )
-        install (FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/dhtcluster.service DESTINATION ${systemdunitdir})
-        install (FILES systemd/dhtcluster.conf DESTINATION ${sysconfdir})
+        if (SYSTEMD_UNIT_INSTALL_DIR)
+            install (FILES ${CMAKE_CURRENT_BINARY_DIR}/systemd/dhtcluster.service DESTINATION ${systemdunitdir})
+            install (FILES systemd/dhtcluster.conf DESTINATION ${sysconfdir})
+        endif()
     endif()
 endif ()
-- 
GitLab