Skip to content

Commit 821ff4e

Browse files
Merge pull request #1685 from hohteri:m1-support
PiperOrigin-RevId: 375103378
2 parents 89f0fb1 + 920aea4 commit 821ff4e

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

make/common.mk

+6-1
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,17 @@ ARCH_BIN_DIR = $(DIST_DIR)
3535
ARCH_LIB_DIR = $(DIST_LIB_DIR)
3636
ARCH_LIB_MACOSX_DIR = $(DIST_LIB_MACOSX_DIR)
3737
ARCH_LIB_MAC_CATALYST_DIR = $(DIST_LIB_MAC_CATALYST_DIR)
38+
ARCH_LIB_SIMULATOR_DIR = $(ARCH_LIB_SIMULATOR_DIR)
3839
ARCH_INCLUDE_DIR = $(DIST_INCLUDE_DIR)
3940
endif
4041

4142
# iPhone-specific library dirs, used for xcframework.
4243
ARCH_BUILD_IPHONE_DIR = $(ARCH_BUILD_DIR)/iphone
44+
45+
# iPhone simulator library dirs.
4346
ARCH_BUILD_SIMULATOR_DIR = $(ARCH_BUILD_DIR)/simulator
47+
ARCH_LIB_SIMULATOR_DIR = $(ARCH_LIB_DIR)/simulator
48+
DIST_LIB_SIMULATOR_DIR = $(DIST_LIB_DIR)/simulator
4449

4550
# Macosx library dirs.
4651
ARCH_BUILD_MACOSX_DIR = $(ARCH_BUILD_DIR)/macosx
@@ -85,7 +90,7 @@ else
8590
# 32bit iPhone archs are no longer built by default. To build a release
8691
# with them, define J2OBJC_ARCHS with "iphone" and "simulator" included.
8792
J2OBJC_ARCHS = macosx iphone64 iphone64e watchv7k watch64 watchsimulator \
88-
simulator64 maccatalyst
93+
simulator simulator64 maccatalyst
8994
ifeq ($(TVOS_AVAILABLE), YES)
9095
J2OBJC_ARCHS += appletvos appletvsimulator
9196
endif

make/fat_lib_macros.mk

+9-5
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ FAT_LIB_WATCHSIMULATOR_SDK_DIR := $(shell bash $(J2OBJC_ROOT)/scripts/sysroot_pa
2424
FAT_LIB_TV_SDK_DIR := $(shell bash $(J2OBJC_ROOT)/scripts/sysroot_path.sh --appletvos)
2525
FAT_LIB_TVSIMULATOR_SDK_DIR := $(shell bash $(J2OBJC_ROOT)/scripts/sysroot_path.sh --appletvsimulator)
2626

27-
FAT_LIB_MACOSX_FLAGS = $(FAT_LIB_OSX_FLAGS) -DJ2OBJC_BUILD_ARCH=x86_64 -mmacosx-version-min=10.7 \
27+
FAT_LIB_MACOSX_FLAGS = $(FAT_LIB_OSX_FLAGS) -arch x86_64 -DJ2OBJC_BUILD_ARCH=x86_64 -mmacosx-version-min=10.7 \
2828
-isysroot $(FAT_LIB_MACOSX_SDK_DIR)
2929
FAT_LIB_MACOSX64_FLAGS = $(FAT_LIB_OSX_FLAGS) -arch arm64 -DJ2OBJC_BUILD_ARCH=arm64 \
3030
--target=arm64-apple-macos11 \
@@ -42,10 +42,10 @@ FAT_LIB_WATCH64_FLAGS = -arch arm64_32 -DJ2OBJC_BUILD_ARCH=arm64_32 -mwatchos-ve
4242
-isysroot $(FAT_LIB_WATCH_SDK_DIR)
4343
FAT_LIB_WATCHSIMULATOR_FLAGS = -arch i386 -DJ2OBJC_BUILD_ARCH=i386 -mwatchos-version-min=2.0 \
4444
-isysroot $(FAT_LIB_WATCHSIMULATOR_SDK_DIR)
45-
FAT_LIB_SIMULATOR_FLAGS = -arch i386 -DJ2OBJC_BUILD_ARCH=i386 -miphoneos-version-min=5.0 \
46-
-isysroot $(FAT_LIB_SIMULATOR_SDK_DIR)
47-
FAT_LIB_SIMULATOR64_FLAGS = -arch x86_64 -DJ2OBJC_BUILD_ARCH=x86_64 -miphoneos-version-min=5.0 \
45+
FAT_LIB_SIMULATOR_FLAGS = -arch x86_64 -DJ2OBJC_BUILD_ARCH=x86_64 -miphoneos-version-min=5.0 \
4846
-isysroot $(FAT_LIB_SIMULATOR_SDK_DIR)
47+
FAT_LIB_SIMULATOR64_FLAGS = -arch arm64 -DJ2OBJC_BUILD_ARCH=arm64 -miphoneos-version-min=12.0 \
48+
-isysroot $(FAT_LIB_SIMULATOR_SDK_DIR) --target=arm64-apple-ios-simulator
4949

5050
FAT_LIB_TV_FLAGS = -arch arm64 -DJ2OBJC_BUILD_ARCH=arm64 -mappletvos-version-min=9.0 \
5151
-isysroot $(FAT_LIB_TV_SDK_DIR)
@@ -267,7 +267,8 @@ emit_arch_specific_compile_rules = $(foreach arch,$(XCODE_ARCHS),\
267267
else
268268
# Targets specific to a command-line build
269269

270-
FAT_LIB_IOS_ARCHS = $(filter-out macos% maccatalyst% appletv% watch%,$(J2OBJC_ARCHS))
270+
FAT_LIB_IOS_ARCHS = $(filter-out simulator64 macos% maccatalyst% appletv% watch%,$(J2OBJC_ARCHS))
271+
FAT_LIB_SIMULATOR_ARCHS = $(filter simulator%,$(J2OBJC_ARCHS))
271272
FAT_LIB_MAC_ARCHS = $(filter macos%,$(J2OBJC_ARCHS))
272273
FAT_LIB_WATCH_ARCHS = $(filter watch%,$(J2OBJC_ARCHS))
273274
FAT_LIB_TV_ARCHS = $(filter appletv%,$(J2OBJC_ARCHS))
@@ -278,6 +279,9 @@ emit_library_rules = $(foreach arch,$(J2OBJC_ARCHS),\
278279
$(if $(FAT_LIB_IOS_ARCHS),\
279280
$(eval $(call fat_lib_rule,$(1),$(FAT_LIB_IOS_ARCHS:%=$(BUILD_DIR)/objs-%/lib$(1).a))) \
280281
$(ARCH_BUILD_DIR)/lib$(1).a,) \
282+
$(if $(FAT_LIB_SIMULATOR_ARCHS),\
283+
$(eval $(call simulator_lib_rule,$(1),$(FAT_LIB_SIMULATOR_ARCHS:%=$(BUILD_DIR)/objs-%/lib$(1).a))) \
284+
$(ARCH_BUILD_SIMULATOR_DIR)/lib$(1).a,) \
281285
$(if $(FAT_LIB_WATCH_ARCHS),\
282286
$(eval $(call watch_lib_rule,$(1),$(FAT_LIB_WATCH_ARCHS:%=$(BUILD_DIR)/objs-%/lib$(1).a))) \
283287
$(ARCH_BUILD_WATCH_DIR)/lib$(1).a,) \

make/framework.mk

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ DISALLOWED_WARNINGS = \
9191
VERIFY_FLAGS := -I$(FRAMEWORK_DIR)/Headers -I$(DIST_INCLUDE_DIR) \
9292
-Werror -Weverything $(DISALLOWED_WARNINGS)
9393

94-
# As of Xcode 12, xcframeworks need single slice libraries, except for Mac platforms
94+
# As of Xcode 12, xcframeworks need single slice libraries, except for iOS, simulator and Mac platforms
9595
# which require fat libraries.
96-
FMWK_ARCH_LIBS = $(filter-out macos% maccatalyst%,$(J2OBJC_ARCHS))
97-
FMWK_FAT_LIBS = $(filter macos% maccatalyst%,$(J2OBJC_ARCHS))
96+
FMWK_ARCH_LIBS = $(filter-out simulator% macos% maccatalyst%,$(J2OBJC_ARCHS))
97+
FMWK_FAT_LIBS = $(filter simulator% macos% maccatalyst%,$(J2OBJC_ARCHS))
9898
framework_libraries = \
9999
$(foreach arch,$(FMWK_ARCH_LIBS),$(wildcard $(BUILD_DIR)/objs-$(arch)*/lib$(1).a)) \
100100
$(foreach arch,$(FMWK_FAT_LIBS),$(wildcard $(BUILD_DIR)/$(arch)/lib$(1).a))

0 commit comments

Comments
 (0)