From 061ead604369bc9f3420d38549c3c5c85687b242 Mon Sep 17 00:00:00 2001
From: Amna <amna.snene@savoirfairelinux.com>
Date: Thu, 8 Feb 2024 16:27:52 -0500
Subject: [PATCH] build: fix dnc.service build condition

build dnc.service only if DNC_SYSTEMD AND BUILD_TOOLS are both enabled

Change-Id: Ie9c8ae855c801d5bf5856cb09a41342d3f71d077
---
 CMakeLists.txt | 43 +++++++++++++++++++++----------------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 74f6741..ce1b59d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,9 +24,8 @@ option(DHTNET_TESTABLE "Enable API for tests" ON)
 option(BUILD_TOOLS "Build tools" ON)
 option(BUILD_BENCHMARKS "Build benchamrks" ON)
 option(BUILD_DEPENDENCIES "Build dependencies" ON)
-option(DNC_SYSTEMD "Enable dnc systemd integration" ON)
 option (DNC_SYSTEMD_UNIT_FILE_LOCATION "Where to install systemd unit file")
-
+option(DNC_SYSTEMD "Enable dnc systemd integration" ON)
 
 if (NOT MSVC)
     set(DEPENDENCIES_PATH ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/install/${TARGET})
@@ -111,28 +110,28 @@ else()
         -D_UNICODE")
 endif()
 
-if (DNC_SYSTEMD)
+if (DNC_SYSTEMD AND BUILD_TOOLS AND NOT MSVC)
     if (NOT DEFINED DNC_SYSTEMD_UNIT_FILE_LOCATION OR NOT DNC_SYSTEMD_UNIT_FILE_LOCATION)
-            execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} systemd --variable=systemdsystemunitdir
-                            OUTPUT_VARIABLE SYSTEMD_UNIT_INSTALL_DIR)
-            message("-- Using Systemd unit installation directory by pkg-config: " ${SYSTEMD_UNIT_INSTALL_DIR})
-        else()
-            message("-- Using Systemd unit installation directory requested: " ${DNC_SYSTEMD_UNIT_FILE_LOCATION})
-            set(SYSTEMD_UNIT_INSTALL_DIR ${DNC_SYSTEMD_UNIT_FILE_LOCATION})
-        endif()
+        execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} systemd --variable=systemdsystemunitdir
+                        OUTPUT_VARIABLE SYSTEMD_UNIT_INSTALL_DIR)
+        message("-- Using Systemd unit installation directory by pkg-config: " ${SYSTEMD_UNIT_INSTALL_DIR})
+    else()
+        message("-- Using Systemd unit installation directory requested: " ${DNC_SYSTEMD_UNIT_FILE_LOCATION})
+        set(SYSTEMD_UNIT_INSTALL_DIR ${DNC_SYSTEMD_UNIT_FILE_LOCATION})
+    endif()
 
-        configure_file (
-            tools/dnc/systemd/dnc.service.in
-            systemd/dnc.service
-            @ONLY
-        )
-        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/dnc.service DESTINATION ${systemdunitdir})
-            install (FILES tools/dnc/dnc.yaml DESTINATION ${sysconfdir}/dhtnet/)
-        else()
-            message(WARNING "Systemd unit installation directory not found. The systemd unit won't be installed.")
+    configure_file (
+        tools/dnc/systemd/dnc.service.in
+        systemd/dnc.service
+        @ONLY
+    )
+    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/dnc.service DESTINATION ${systemdunitdir})
+        install (FILES tools/dnc/dnc.yaml DESTINATION ${sysconfdir}/dhtnet/)
+    else()
+        message(WARNING "Systemd unit installation directory not found. The systemd unit won't be installed.")
     endif()
 endif()
 # Sources
-- 
GitLab