From 77570ff214182224122b65306bf73853293ef7a1 Mon Sep 17 00:00:00 2001
From: Thomas Juerges <thomas.juerges@skao.int>
Date: Mon, 17 Jun 2024 16:39:18 +0900
Subject: [PATCH] Clang does not support -Wl,--no-undefined

---
 CMakeLists.txt                 | 12 ++++++++++--
 test/testdevice/CMakeLists.txt | 14 ++++++++++++++
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b1253b..7be92e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -103,11 +103,19 @@ target_include_directories(alarm_handler
         "${PROJECT_BINARY_DIR}"
 	${Boost_INCLUDE_DIRS})
 
-set_target_properties(alarm_handler 
-    PROPERTIES 
+if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
+    set_target_properties(alarm_handler
+        PROPERTIES
         OUTPUT_NAME ${AH_NAME}
         LINK_FLAGS "-Wl,--no-undefined"
         CXX_STANDARD 17)
+else()
+    set_target_properties(alarm_handler
+        PROPERTIES
+        OUTPUT_NAME ${AH_NAME}
+        LINK_FLAGS ""
+        CXX_STANDARD 17)
+endif()
 
 if(DO_CLANG_TIDY)
     set_target_properties(alarm_handler 
diff --git a/test/testdevice/CMakeLists.txt b/test/testdevice/CMakeLists.txt
index bfba52a..c27f30f 100644
--- a/test/testdevice/CMakeLists.txt
+++ b/test/testdevice/CMakeLists.txt
@@ -82,6 +82,20 @@ set_target_properties(testdevice
         LINK_FLAGS "-Wl,--no-undefined"
         CXX_STANDARD 17)
 
+if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
+    set_target_properties(alarm_handler
+        PROPERTIES
+        OUTPUT_NAME ${DEV_NAME}
+        LINK_FLAGS "-Wl,--no-undefined"
+        CXX_STANDARD 17)
+else()
+    set_target_properties(alarm_handler
+        PROPERTIES
+        OUTPUT_NAME ${DEV_NAME}
+        LINK_FLAGS ""
+        CXX_STANDARD 17)
+endif()
+
 target_compile_options(testdevice 
     PRIVATE "$<$<CONFIG:DEBUG>:-g>")
 
-- 
GitLab