summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatteo Ceruti <matteo.ceruti@gmail.com>2023-08-31 18:17:33 +0200
committerMatteo Ceruti <matteo.ceruti@gmail.com>2023-08-31 18:54:01 +0200
commitcb26f1af8b6025d0e0a148e2661aa5bd057d6947 (patch)
tree39d2b196ee017feaa7adb382fca64497f9bad715
parentb04381b44e4fbbfcf88e5e74052464657cf7df25 (diff)
Allow arm64 build ion macOS by using toolchain file apple.cmake and exporting an EVN-Variable OTR_OSX_ARCH=arm64
I build with after cloning the repo cd opentrack export OTR_OSX_ARCH=arm64 ; cmake --toolchain ./cmake/apple.cmake -S . -B build cd build make install
-rw-r--r--cmake/apple.cmake13
-rw-r--r--gui/init.cpp2
2 files changed, 12 insertions, 3 deletions
diff --git a/cmake/apple.cmake b/cmake/apple.cmake
index f6b83382..64e4d628 100644
--- a/cmake/apple.cmake
+++ b/cmake/apple.cmake
@@ -1,12 +1,19 @@
set(CMAKE_BUILD_TYPE_INIT RELEASE)
-set(CMAKE_CXX_FLAGS "-arch x86_64 -stdlib=libc++" CACHE STRING "" FORCE)
-set(CMAKE_C_FLAGS "-arch x86_64" CACHE STRING "" FORCE)
+if("$ENV{OTR_OSX_ARCH}" STREQUAL "arm64")
+ set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "" FORCE)
+ set(opentrack-intel FALSE)
+else()
+ set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "" FORCE)
+ set(opentrack-intel TRUE)
+endif()
+
+set(CMAKE_CXX_FLAGS "-stdlib=libc++" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_RELEASE "-ffast-math -O3 -flto -g" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE)
-set(cmake-link-common "-stdlib=libc++ -arch x86_64")
+set(cmake-link-common "-stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "${cmake-link-common} -Wl,-stack_size,0x4000000" CACHE STRING "" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS ${cmake-link-common} CACHE STRING "" FORCE)
set(CMAKE_MODULE_LINKER_FLAGS ${cmake-link-common} CACHE STRING "" FORCE)
diff --git a/gui/init.cpp b/gui/init.cpp
index 5984269c..b666b4a9 100644
--- a/gui/init.cpp
+++ b/gui/init.cpp
@@ -50,8 +50,10 @@ static void set_fp_mask()
#endif
#ifdef __APPLE__
+#if defined __i386__ || defined __x86_64__
fesetenv(FE_DFL_DISABLE_SSE_DENORMS_ENV);
#endif
+#endif
#ifdef _WIN32
# ifdef __clang__