From 87be96d9db6a9005dd9ff038a3bdb54e820c3891 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 | 12 ++++++++++--
 2 files changed, 20 insertions(+), 4 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..0d68e58 100644
--- a/test/testdevice/CMakeLists.txt
+++ b/test/testdevice/CMakeLists.txt
@@ -76,11 +76,19 @@ target_include_directories(testdevice
         "${PROJECT_BINARY_DIR}"
 	)
 
-set_target_properties(testdevice 
-    PROPERTIES 
+if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"))
+    set_target_properties(testdevice
+        PROPERTIES
         OUTPUT_NAME ${DEV_NAME}
         LINK_FLAGS "-Wl,--no-undefined"
         CXX_STANDARD 17)
+else()
+    set_target_properties(testdevice
+        PROPERTIES
+        OUTPUT_NAME ${DEV_NAME}
+        LINK_FLAGS ""
+        CXX_STANDARD 17)
+endif()
 
 target_compile_options(testdevice 
     PRIVATE "$<$<CONFIG:DEBUG>:-g>")
-- 
GitLab