Jeff Hutchinson 4 anos atrás
pai
commit
61fef8080b

+ 1 - 1
Engine/lib/convexDecomp/NvThreadConfig.cpp

@@ -136,7 +136,7 @@ void tc_spinloop()
    #elif defined( _WIN64 )
    #elif defined( _WIN64 )
       YieldProcessor( );
       YieldProcessor( );
    #elif (defined( __arm64__ ) && defined( __APPLE__ )) || defined( __arch64__ )
    #elif (defined( __arm64__ ) && defined( __APPLE__ )) || defined( __arch64__ )
-      asm( "yield" );
+      pthread_yield_np();
    #else
    #else
       __asm { pause };
       __asm { pause };
    #endif
    #endif

+ 5 - 0
Tools/CMake/libraries/lpng.cmake

@@ -24,6 +24,11 @@ project(lpng)
 
 
 # addDef(PNG_NO_ASSEMBLER_CODE)
 # addDef(PNG_NO_ASSEMBLER_CODE)
 
 
+# Issues with Neon at the moment (Arm support)
+# https://sourceforge.net/p/libpng/bugs/281/
+set(PNG_ARM_NEON off CACHE STRING "")
+add_definitions(-DPNG_ARM_NEON_OPT=0)
+
 addInclude(${libDir}/zlib)
 addInclude(${libDir}/zlib)
 
 
 finishLibrary("${libDir}/${PROJECT_NAME}")
 finishLibrary("${libDir}/${PROJECT_NAME}")

+ 25 - 5
Tools/CMake/torque3d.cmake

@@ -692,8 +692,8 @@ if(WIN32)
 endif()
 endif()
 
 
 if (APPLE)
 if (APPLE)
-	addFramework("Cocoa")
-	addFramework("OpenGL")
+  addFramework("Cocoa")
+  addFramework("OpenGL")
   #These are needed by sdl2 static lib
   #These are needed by sdl2 static lib
   addFramework("CoreAudio")
   addFramework("CoreAudio")
   addFramework("AudioUnit")
   addFramework("AudioUnit")
@@ -704,9 +704,29 @@ if (APPLE)
   addFramework("Carbon")
   addFramework("Carbon")
   addFramework("AudioToolbox")
   addFramework("AudioToolbox")
   addLib("iconv")
   addLib("iconv")
-  #set a few arch defaults
-  set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "OSX Architecture" FORCE)
-  set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "OSX Deployment target" FORCE)
+endif()
+
+#detect Architecture
+if (APPLE AND NOT IOS)
+  option(TORQUE_MACOS_UNIVERSAL_BINARY OFF)
+
+  # Detect architecture if not using universal
+  if (TORQUE_MACOS_UNIVERSAL_BINARY)
+    set(ARCHITECTURE_STRING_APPLE "x86_64;arm64")
+    set(DEPLOYMENT_TARGET_APPLE "10.13")
+  else()
+    check_c_compiler_flag("-arch arm64" armSupportedApple)
+    if(armSupportedApple)
+      set(ARCHITECTURE_STRING_APPLE "arm64")
+      set(DEPLOYMENT_TARGET_APPLE "11.0")
+    else()
+      set(ARCHITECTURE_STRING_APPLE "x86_64")
+      set(DEPLOYMENT_TARGET_APPLE "10.9")
+    endif() 
+  endif()
+
+  set(CMAKE_OSX_ARCHITECTURES ${ARCHITECTURE_STRING_APPLE} CACHE STRING "OSX Architecture" FORCE)
+  set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET_APPLE} CACHE STRING "OSX Deployment target" FORCE)
 endif()
 endif()
 
 
 if(UNIX AND NOT APPLE)
 if(UNIX AND NOT APPLE)