43 lines
No EOL
1.3 KiB
CMake
43 lines
No EOL
1.3 KiB
CMake
if(NOT XCODE)
|
|
return()
|
|
endif()
|
|
|
|
## Enumerate all the targets in the project
|
|
get_directory_property(IOS_SUBDIRS SUBDIRECTORIES)
|
|
get_directory_property(IOS_TARGETS BUILDSYSTEM_TARGETS)
|
|
while(IOS_SUBDIRS)
|
|
list(POP_FRONT IOS_SUBDIRS SUBDIR)
|
|
|
|
get_directory_property(SUBDIR_TARGETS DIRECTORY ${SUBDIR} BUILDSYSTEM_TARGETS)
|
|
list(APPEND IOS_TARGETS ${SUBDIR_TARGETS})
|
|
|
|
get_directory_property(SUBDIR_NESTED DIRECTORY ${SUBDIR} SUBDIRECTORIES)
|
|
list(APPEND IOS_SUBDIRS ${SUBDIR_NESTED})
|
|
endwhile()
|
|
|
|
## The set of target types that we want to modify.
|
|
set(IOS_TARGET_COMPILED_TYPES
|
|
STATIC_LIBRARY
|
|
MODULE_LIBRARY
|
|
SHARED_LIBRARY
|
|
OBJECT_LIBRARY
|
|
EXECUTABLE
|
|
)
|
|
|
|
## Inspect all the targets, and add extra properties if necessary.
|
|
while(IOS_TARGETS)
|
|
list(POP_FRONT IOS_TARGETS TARGET_NAME)
|
|
|
|
get_target_property(TARGET_TYPE ${TARGET_NAME} TYPE)
|
|
list(FIND IOS_TARGET_COMPILED_TYPES ${TARGET_TYPE} IOS_TARGET_TYPE_INDEX)
|
|
if(IOS_TARGET_TYPE_INDEX LESS 0)
|
|
continue()
|
|
endif()
|
|
|
|
## I just want to say it's amazing this doesn't explode with syntax errors.
|
|
message("Patching architectures for ${TARGET_NAME}")
|
|
set_target_properties(${TARGET_NAME} PROPERTIES
|
|
XCODE_ATTRIBUTE_ARCHS[sdk=iphoneos*] "arm64"
|
|
XCODE_ATTRIBUTE_ARCHS[sdk=iphonesimulator*] "x86_64"
|
|
)
|
|
endwhile() |