Skip to content

Commit d7c7191

Browse files
committed
Fix macosx build on arm64
1 parent bb15730 commit d7c7191

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

proj/cmake/platform_macosx.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ if( NOT ( "Xcode" STREQUAL "${CMAKE_GENERATOR}" ) )
152152
message(STATUS "Found libtool - ${CMAKE_LIBTOOL}")
153153
get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES)
154154
foreach(lang ${languages})
155-
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_LIBTOOL} -static -arch_only x86_64 -o <TARGET> <LINK_FLAGS> <OBJECTS> ")
155+
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ")
156156
endforeach()
157157
endif()
158158
endif()

src/cinder/System.cpp

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,11 @@ int System::getOsMajorVersion()
455455
instance()->mOSMajorVersion = [[sysVerComponents firstObject] intValue];
456456
#elif defined( CINDER_MAC )
457457
if( [[NSProcessInfo processInfo] respondsToSelector:@selector(operatingSystemVersion)] ) {
458-
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
458+
#if defined(__LP64__) && __LP64__
459+
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
460+
#else
461+
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
462+
#endif
459463
instance()->mOSMajorVersion = (int32_t)version.majorVersion;
460464
} else {
461465
#pragma clang diagnostic push
@@ -487,7 +491,11 @@ int System::getOsMinorVersion()
487491
instance()->mOSMinorVersion = [[sysVerComponents objectAtIndex:1] intValue];
488492
#elif defined( CINDER_MAC )
489493
if( [[NSProcessInfo processInfo] respondsToSelector:@selector(operatingSystemVersion)] ) {
490-
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
494+
#if defined(__LP64__) && __LP64__
495+
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
496+
#else
497+
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
498+
#endif
491499
instance()->mOSMinorVersion = (int32_t)version.minorVersion;
492500
} else {
493501
#pragma clang diagnostic push
@@ -522,7 +530,11 @@ int System::getOsBugFixVersion()
522530
instance()->mOSBugFixVersion = 0;
523531
#elif defined( CINDER_MAC )
524532
if( [[NSProcessInfo processInfo] respondsToSelector:@selector(operatingSystemVersion)] ) {
525-
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
533+
#if defined(__LP64__) && __LP64__
534+
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
535+
#else
536+
ShadowOSVersion version = ((ShadowOSVersion(*)(id, SEL))objc_msgSend_stret)([NSProcessInfo processInfo], @selector(operatingSystemVersion));
537+
#endif
526538
instance()->mOSBugFixVersion = (int32_t)version.patchVersion;
527539
} else {
528540
#pragma clang diagnostic push

0 commit comments

Comments
 (0)