Skip to content

Commit

Permalink
Add support for building a library for catalyst
Browse files Browse the repository at this point in the history
  • Loading branch information
tgoyne committed Sep 11, 2019
1 parent 1ed754b commit 52f2345
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 3 deletions.
4 changes: 3 additions & 1 deletion Configuration/Base.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ GCC_WARN_UNUSED_VARIABLE = YES;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = -Owholemodule;
WARNING_CFLAGS = -Wmismatched-tags -Wunused-private-field -Wpartial-availability;
OTHER_CFLAGS = -fvisibility-inlines-hidden;
OTHER_CFLAGS = -fvisibility-inlines-hidden $(REALM_CATALYST_FLAGS);
OTHER_LDFLAGS = $(REALM_CATALYST_FLAGS);
OTHER_SWIFT_FLAGS = $(REALM_CATALYST_FLAGS);

OTHER_CPLUSPLUSFLAGS = $(inherited) -isystem core/include;
HEADER_SEARCH_PATHS = $(inherited) Realm/ObjectStore/src;
Expand Down
5 changes: 3 additions & 2 deletions Configuration/Realm/Realm.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ LD_RUNPATH_SEARCH_PATHS[sdk=iphone*] = $(inherited) @executable_path/Frameworks
LD_RUNPATH_SEARCH_PATHS[sdk=watch*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks;
LD_RUNPATH_SEARCH_PATHS[sdk=appletv*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks;

OTHER_LDFLAGS[sdk=macosx*] = -lrealm$(REALM_LIBRARY_SUFFIX);
OTHER_LIBTOOLFLAGS[sdk=macosx*] = -lrealm$(REALM_LIBRARY_SUFFIX);
REALM_PLATFORM_SUFFIX = $(PLATFORM_NAME);
OTHER_LDFLAGS[sdk=macosx*] = -lrealm-$(REALM_PLATFORM_SUFFIX)$(REALM_LIBRARY_SUFFIX) $(REALM_CATALYST_FLAGS);
OTHER_LIBTOOLFLAGS[sdk=macosx*] = -lrealm-$(REALM_PLATFORM_SUFFIX)$(REALM_LIBRARY_SUFFIX) $(REALM_CATALYST_FLAGS);
OTHER_LDFLAGS[sdk=iphone*] = -lrealm-ios$(REALM_LIBRARY_SUFFIX);
OTHER_LIBTOOLFLAGS[sdk=iphone*] = -lrealm-ios$(REALM_LIBRARY_SUFFIX);
OTHER_LDFLAGS[sdk=watch*] = -lrealm-watchos$(REALM_LIBRARY_SUFFIX);
Expand Down
30 changes: 30 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -563,9 +563,39 @@ case "$COMMAND" in
exit 0
;;

"catalyst")
if (( $(xcode_version_major) < 11 )); then
echo 'Building for Catalyst requires Xcode 11'
exit 1
fi

xc "-scheme Realm -configuration $CONFIGURATION REALM_CATALYST_FLAGS='-target x86_64-apple-ios13.0-macabi' REALM_PLATFORM_SUFFIX='maccatalyst'"
clean_retrieve "build/DerivedData/Realm/Build/Products/$CONFIGURATION/Realm.framework" "build/catalyst" "Realm.framework"
;;

"catalyst-swift")
if (( $(xcode_version_major) < 11 )); then
echo 'Building for Catalyst requires Xcode 11'
exit 1
fi

sh build.sh catalyst
# FIXME: change this to just "-destination variant='Mac Catalyst'" once the CI machines are running 10.15
xc "-scheme 'RealmSwift' -configuration $CONFIGURATION build \
REALM_CATALYST_FLAGS='-target x86_64-apple-ios13.0-macabi' \
REALM_PLATFORM_SUFFIX='maccatalyst' \
SWIFT_DEPLOYMENT_TARGET='13.0-macabi' \
SWIFT_PLATFORM_TARGET_PREFIX='ios'"
destination="build/catalyst/swift-$REALM_XCODE_VERSION"
clean_retrieve "build/DerivedData/Realm/Build/Products/$CONFIGURATION/RealmSwift.framework" "$destination" "RealmSwift.framework"
rm -rf "$destination/Realm.framework"
cp -R build/catalyst/Realm.framework "$destination"
;;

"xcframework")
if (( $(xcode_version_major) < 11 )); then
echo 'Building a xcframework requires Xcode 11'
exit 1
fi

export REALM_EXTRA_BUILD_ARGUMENTS="$REALM_EXTRA_BUILD_ARGUMENTS BUILD_LIBRARY_FOR_DISTRIBUTION=YES REALM_OBJC_MACH_O_TYPE=staticlib"
Expand Down

0 comments on commit 52f2345

Please sign in to comment.