From 72a5cac2ac4ac1f0ed064711f80846dd695f7ba6 Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Tue, 31 Oct 2023 14:03:05 +0100
Subject: [PATCH] Fix flesnet compilation problem on Apple silicon

Internally Flesnet uses some header files which are only availyble for Intel
platforms. To avoid compilation errors the compilation of tsclient is switched
off. The needed libraries can be build on arm without problems.
---
 external/InstallFlesnet.cmake | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/external/InstallFlesnet.cmake b/external/InstallFlesnet.cmake
index 65d774d077..18ae595100 100644
--- a/external/InstallFlesnet.cmake
+++ b/external/InstallFlesnet.cmake
@@ -38,6 +38,19 @@ else()
   set(FLESNET_BUILD_COMMAND "${CMAKE_COMMAND} --build . --target")
 endif()
 
+if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES arm)
+  set(FLESNET_MODULES logging monitoring fles_ipc)
+  set(FLESNET_BYPRODUCTS
+      ${FLESNET_DESTDIR}/src/flesnet-build/lib/fles_ipc/${CMAKE_STATIC_LIBRARY_PREFIX}fles_ipc${CMAKE_STATIC_LIBRARY_SUFFIX}
+     )
+else()
+  set(FLESNET_MODULES logging monitoring fles_ipc tsclient)
+  set(FLESNET_BYPRODUCTS
+      ${FLESNET_DESTDIR}/src/flesnet-build/lib/fles_ipc/${CMAKE_STATIC_LIBRARY_PREFIX}fles_ipc${CMAKE_STATIC_LIBRARY_SUFFIX}
+      ${FLESNET_BIN_PREFIX}/tsclient
+     )
+endif()
+
 ExternalProject_Add(
   flesnet
   SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flesnet
@@ -50,13 +63,13 @@ ExternalProject_Add(
              ${CMAKE_CURRENT_SOURCE_DIR}/flesnet
   BUILD_IN_SOURCE 0
   LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1
-  BUILD_COMMAND ${FLESNET_BUILD_COMMAND} logging monitoring fles_ipc tsclient
-  BUILD_BYPRODUCTS
-    ${FLESNET_DESTDIR}/src/flesnet-build/lib/fles_ipc/${CMAKE_STATIC_LIBRARY_PREFIX}fles_ipc${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${FLESNET_BIN_PREFIX}/tsclient
+  BUILD_COMMAND ${FLESNET_BUILD_COMMAND} ${FLESNET_MODULES}
+  BUILD_BYPRODUCTS ${FLESNET_BYPRODUCTS}
   INSTALL_COMMAND ""
 )
-install(PROGRAMS ${FLESNET_BIN_PREFIX}/tsclient TYPE BIN)
+if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES arm)
+  install(PROGRAMS ${FLESNET_BIN_PREFIX}/tsclient TYPE BIN)
+endif()
 
 add_library(external::zmq STATIC IMPORTED GLOBAL)
 add_dependencies(external::zmq flesnet)
-- 
GitLab