changeset 64:4b8fd4b10742

fix build for Apple M1
author Alain Mazy <am@osimis.io>
date Tue, 29 Mar 2022 11:23:11 +0200
parents 956af3d5c7a5
children 5580f4aaee4b
files Resources/BuildInstructions.txt Resources/CMake/GdcmConfiguration.cmake
diffstat 2 files changed, 30 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Resources/BuildInstructions.txt	Wed Mar 23 21:44:16 2022 +0100
+++ b/Resources/BuildInstructions.txt	Tue Mar 29 11:23:11 2022 +0200
@@ -27,3 +27,25 @@
 # cd Build
 # cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=`pwd`/../Orthanc/Resources/MinGWToolchain.cmake
 # make
+
+
+Building on Universal binary for Apple (Intel + Apple Silicon)
+==============================================================
+
+The current CMake does not allow building a single universal binary at once -> you must build for each architecture
+separately and merge the binaries:
+
+# mkdir build-arm64
+# cd build-arm64
+# cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_OSX_ARCHITECTURES="arm64" -DALLOW_DOWNLOADS=ON -DCMAKE_BUILD_TYPE:STRING=Release -DSTATIC_BUILD=ON -DCMAKE_C_FLAGS="-Wno-implicit-function-declaration"
+# make
+
+# mkdir build-amd64
+# cd build-amd64
+# cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_OSX_ARCHITECTURES="amd64" -DALLOW_DOWNLOADS=ON -DCMAKE_BUILD_TYPE:STRING=Release -DSTATIC_BUILD=ON -DCMAKE_C_FLAGS="-Wno-implicit-function-declaration"
+# make
+
+# lipo -create -output build/libOrthancGdcm.dylib build-amd64/libOrthancGdcm.dylib build-arm64/libOrthancGdcm.dylib 
+
+
+
--- a/Resources/CMake/GdcmConfiguration.cmake	Wed Mar 23 21:44:16 2022 +0100
+++ b/Resources/CMake/GdcmConfiguration.cmake	Tue Mar 29 11:23:11 2022 +0200
@@ -57,6 +57,8 @@
     -DCMAKE_CXX_FLAGS_MINSIZEREL=${CMAKE_CXX_FLAGS_MINSIZEREL} 
     -DCMAKE_C_FLAGS_RELWITHDEBINFO=${CMAKE_C_FLAGS_RELWITHDEBINFO} 
     -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
+    -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
+    -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
     )
 
   if (CMAKE_TOOLCHAIN_FILE)
@@ -89,6 +91,12 @@
       gdcmjpeg12 gdcmjpeg16 gdcmopenjp2 gdcmzlib gdcmCommon gdcmexpat gdcmuuid)
   endif()
 
+  # if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+  #   set(EXTRA_CMAKE_FLAGS -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES})
+  # else()
+  #   set(EXTRA_CMAKE_FLAGS "")
+  # endif()
+
   include(ExternalProject)
   externalproject_add(GDCM
     URL "${GDCM_URL}"