Skip to content

Commit 50efa8d

Browse files
committed
Merge branch 'xcframework-v8.10.0' into 8.11.fb
# Conflicts: # HISTORY.md
2 parents 5c2be54 + 7020077 commit 50efa8d

File tree

2 files changed

+59
-25
lines changed

2 files changed

+59
-25
lines changed

Makefile

+33-25
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ else ifneq ($(filter shared_lib install-shared, $(MAKECMDGOALS)),)
6060
else ifneq ($(filter static_lib install-static, $(MAKECMDGOALS)),)
6161
DEBUG_LEVEL=0
6262
LIB_MODE=static
63+
else ifneq ($(filter xcframework, $(MAKECMDGOALS)),)
64+
DEBUG_LEVEL=0
65+
LIB_MODE=static
6366
else ifneq ($(filter jtest rocksdbjava%, $(MAKECMDGOALS)),)
6467
OBJ_DIR=jl
6568
LIB_MODE=shared
@@ -280,14 +283,6 @@ endif
280283

281284
CXXFLAGS += $(ARCHFLAG)
282285

283-
ifeq (,$(shell $(CXX) -fsyntax-only -march=armv8-a+crc+crypto -xc /dev/null 2>&1))
284-
ifneq ($(PLATFORM),OS_MACOSX)
285-
CXXFLAGS += -march=armv8-a+crc+crypto
286-
CFLAGS += -march=armv8-a+crc+crypto
287-
ARMCRC_SOURCE=1
288-
endif
289-
endif
290-
291286
export JAVAC_ARGS
292287
CLEAN_FILES += make_config.mk rocksdb.pc
293288

@@ -1273,8 +1268,14 @@ package:
12731268
# Unit tests and tools
12741269
# ---------------------------------------------------------------------------
12751270
$(STATIC_LIBRARY): $(LIB_OBJECTS)
1276-
$(AM_V_AR)rm -f $@ $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED4)
1277-
$(AM_V_at)$(AR) $(ARFLAGS) $@ $(LIB_OBJECTS)
1271+
$(AM_V_AR)rm -f iphonesimulator-$@ $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED4)
1272+
$(AM_V_at)$(AR) $(ARFLAGS) iphonesimulator-$@ $(addprefix ./iphonesimulator/, $(LIB_OBJECTS))
1273+
1274+
$(AM_V_AR)rm -f iphonedevice-$@ $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED4)
1275+
$(AM_V_at)$(AR) $(ARFLAGS) iphonedevice-$@ $(addprefix ./iphonedevice/, $(LIB_OBJECTS))
1276+
1277+
$(AM_V_AR)rm -f maccatalyst-$@ $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED4)
1278+
$(AM_V_at)$(AR) $(ARFLAGS) maccatalyst-$@ $(addprefix maccatalyst/, $(LIB_OBJECTS))
12781279

12791280
$(STATIC_TEST_LIBRARY): $(TEST_OBJECTS)
12801281
$(AM_V_AR)rm -f $@ $(SHARED_TEST_LIBRARY)
@@ -2499,25 +2500,32 @@ build_size:
24992500
ifeq ($(PLATFORM), IOS)
25002501
# For iOS, create universal object files to be used on both the simulator and
25012502
# a device.
2502-
XCODEROOT=$(shell xcode-select -print-path)
2503-
PLATFORMSROOT=$(XCODEROOT)/Platforms
2504-
SIMULATORROOT=$(PLATFORMSROOT)/iPhoneSimulator.platform/Developer
2505-
DEVICEROOT=$(PLATFORMSROOT)/iPhoneOS.platform/Developer
2506-
IOSVERSION=$(shell defaults read $(PLATFORMSROOT)/iPhoneOS.platform/version CFBundleShortVersionString)
2503+
SIMULATORSDK =$(shell xcrun --sdk iphonesimulator --show-sdk-path)
2504+
IPHONESDK =$(shell xcrun --sdk iphoneos --show-sdk-path)
2505+
MACOSSDK =$(shell xcrun --sdk macosx --show-sdk-path)
25072506

25082507
.cc.o:
2509-
mkdir -p ios-x86/$(dir $@)
2510-
$(CXX) $(CXXFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 -arch x86_64 -c $< -o ios-x86/$@
2511-
mkdir -p ios-arm/$(dir $@)
2512-
xcrun -sdk iphoneos $(CXX) $(CXXFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 -arch armv7s -arch arm64 -c $< -o ios-arm/$@
2513-
lipo ios-x86/$@ ios-arm/$@ -create -output $@
2508+
mkdir -p iphonesimulator/$(dir $@)
2509+
xcrun -sdk iphonesimulator $(CXX) $(CXXFLAGS) -mios-simulator-version-min=15.0 -isysroot $(SIMULATORSDK) -arch x86_64 -arch arm64 -c $< -o iphonesimulator/$@
2510+
mkdir -p iphonedevice/$(dir $@)
2511+
xcrun -sdk iphoneos $(CXX) $(CXXFLAGS) -miphoneos-version-min=15.0 -isysroot $(IPHONESDK) -arch arm64 -c $< -o iphonedevice/$@
2512+
mkdir -p maccatalyst/$(dir $@)
2513+
xcrun -sdk macosx $(CXX) $(CXXFLAGS) -isysroot $(MACOSSDK) -arch x86_64 -arch arm64 -target x86_64-apple-ios15.0-macabi -c $< -o maccatalyst/$@
25142514

25152515
.c.o:
2516-
mkdir -p ios-x86/$(dir $@)
2517-
$(CC) $(CFLAGS) -isysroot $(SIMULATORROOT)/SDKs/iPhoneSimulator$(IOSVERSION).sdk -arch i686 -arch x86_64 -c $< -o ios-x86/$@
2518-
mkdir -p ios-arm/$(dir $@)
2519-
xcrun -sdk iphoneos $(CC) $(CFLAGS) -isysroot $(DEVICEROOT)/SDKs/iPhoneOS$(IOSVERSION).sdk -arch armv6 -arch armv7 -arch armv7s -arch arm64 -c $< -o ios-arm/$@
2520-
lipo ios-x86/$@ ios-arm/$@ -create -output $@
2516+
mkdir -p iphonesimulator/$(dir $@)
2517+
xcrun -sdk iphonesimulator $(CC) $(CFLAGS) -mios-simulator-version-min=15.0 -isysroot $(SIMULATORSDK) -arch x86_64 -arch arm64 -c $< -o iphonesimulator/$@
2518+
mkdir -p iphonedevice/$(dir $@)
2519+
xcrun -sdk iphoneos $(CC) $(CFLAGS) -miphoneos-version-min=15.0 -isysroot $(IPHONESDK) -arch arm64 -c $< -o iphonedevice/$@
2520+
mkdir -p maccatalyst/$(dir $@)
2521+
xcrun -sdk macosx $(CC) $(CFLAGS) -isysroot $(MACOSSDK) -arch x86_64 -arch arm64 -target x86_64-apple-ios15.0-macabi -c $< -o maccatalyst/$@
2522+
2523+
xcframework:
2524+
xcodebuild -create-xcframework \
2525+
-library iphonedevice-librocksdb.a -headers ./include \
2526+
-library iphonesimulator-librocksdb.a -headers ./include \
2527+
-library maccatalyst-librocksdb.a -headers ./include \
2528+
-output RocksDB.xcframework
25212529

25222530
else
25232531
ifeq ($(HAVE_POWER8),1)

build_tools/make_ios_framework.sh

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#/usr/bin/env bash
2+
3+
set -e
4+
5+
export TARGET_OS=IOS
6+
export USE_RTTI=1
7+
8+
export CXXFLAGS=-DLZ4
9+
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
10+
export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH
11+
12+
CORES=$(sysctl -n hw.ncpu)
13+
14+
if ! brew list lz4 &>/dev/null; then
15+
echo "LZ4 not installed. Installing via Homebrew..."
16+
brew install lz4
17+
fi
18+
19+
rm iphonedevice-librocksdb.a || true
20+
rm iphonesimulator-librocksdb.a || true
21+
rm maccatalyst-librocksdb.a || true
22+
make static_lib -j${CORES}
23+
24+
rm -rf RocksDB.xcframework || true
25+
make xcframework
26+

0 commit comments

Comments
 (0)