Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 32 additions & 8 deletions Makefile.ios
Original file line number Diff line number Diff line change
@@ -1,33 +1,57 @@
IOS_OUTPUT?=ios
IOS_BINDING_OUTPUT?=$(BINDING_OUTPUT)/$(IOS_OUTPUT)
IOS_BINDING_NAME?=$(BINDING_NAME).a
IOS_FRAMEWORK_NAME?=OpenPGPBridge

binding_ios: binding_ios_arm64 binding_ios_x86_64_sim
lipo $(IOS_BINDING_OUTPUT)/x86_64_sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/$(IOS_BINDING_NAME)
cp $(IOS_BINDING_OUTPUT)/arm64/*.h $(IOS_BINDING_OUTPUT)
rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/x86_64_sim

binding_ios_xcframework: binding_ios_all_iphone binding_ios_all_sim binding_ios_all_catalyst
mkdir -p $(IOS_BINDING_OUTPUT)/headers
cp $(IOS_BINDING_OUTPUT)/arm64/*.h $(IOS_BINDING_OUTPUT)/headers
rm -rf $(IOS_BINDING_OUTPUT)/Openpgp.xcframework
rm -rf $(IOS_BINDING_OUTPUT)/$(IOS_FRAMEWORK_NAME).xcframework

rm -rf $(IOS_BINDING_OUTPUT)/arm64_framework
mkdir -p $(IOS_BINDING_OUTPUT)/arm64_framework/$(IOS_FRAMEWORK_NAME).framework/Headers
cp -r ios/framework-template/ $(IOS_BINDING_OUTPUT)/arm64_framework/$(IOS_FRAMEWORK_NAME).framework
cp $(IOS_BINDING_OUTPUT)/arm64/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_framework/$(IOS_FRAMEWORK_NAME).framework/$(IOS_FRAMEWORK_NAME)
cp $(IOS_BINDING_OUTPUT)/arm64/*.h $(IOS_BINDING_OUTPUT)/arm64_framework/$(IOS_FRAMEWORK_NAME).framework/Headers

rm -rf $(IOS_BINDING_OUTPUT)/sim_framework
mkdir -p $(IOS_BINDING_OUTPUT)/sim_framework/$(IOS_FRAMEWORK_NAME).framework/Headers
cp -r ios/framework-template/ $(IOS_BINDING_OUTPUT)/sim_framework/$(IOS_FRAMEWORK_NAME).framework
cp $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/sim_framework/$(IOS_FRAMEWORK_NAME).framework/$(IOS_FRAMEWORK_NAME)
cp $(IOS_BINDING_OUTPUT)/sim/*.h $(IOS_BINDING_OUTPUT)/sim_framework/$(IOS_FRAMEWORK_NAME).framework/Headers

rm -rf $(IOS_BINDING_OUTPUT)/catalyst_framework
mkdir -p $(IOS_BINDING_OUTPUT)/catalyst_framework/$(IOS_FRAMEWORK_NAME).framework/Headers
cp -r ios/framework-template/ $(IOS_BINDING_OUTPUT)/catalyst_framework/$(IOS_FRAMEWORK_NAME).framework
cp $(IOS_BINDING_OUTPUT)/catalyst/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/catalyst_framework/$(IOS_FRAMEWORK_NAME).framework/$(IOS_FRAMEWORK_NAME)
cp $(IOS_BINDING_OUTPUT)/catalyst/*.h $(IOS_BINDING_OUTPUT)/catalyst_framework/$(IOS_FRAMEWORK_NAME).framework/Headers

NAME=$(IOS_FRAMEWORK_NAME) HEADER_NAME=$(BINDING_NAME) ./ios/prepare-xcframework.sh $(IOS_BINDING_OUTPUT)

xcodebuild -create-xcframework \
-library $(IOS_BINDING_OUTPUT)/arm64/$(IOS_BINDING_NAME) -headers $(IOS_BINDING_OUTPUT)/headers \
-library $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME) -headers $(IOS_BINDING_OUTPUT)/headers \
-library $(IOS_BINDING_OUTPUT)/catalyst/$(IOS_BINDING_NAME) -headers $(IOS_BINDING_OUTPUT)/headers \
-output $(IOS_BINDING_OUTPUT)/Openpgp.xcframework
rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/sim $(IOS_BINDING_OUTPUT)/catalyst $(IOS_BINDING_OUTPUT)/headers
-framework $(IOS_BINDING_OUTPUT)/arm64_framework/$(IOS_FRAMEWORK_NAME).framework \
-framework $(IOS_BINDING_OUTPUT)/sim_framework/$(IOS_FRAMEWORK_NAME).framework \
-framework $(IOS_BINDING_OUTPUT)/catalyst_framework/$(IOS_FRAMEWORK_NAME).framework \
-output $(IOS_BINDING_OUTPUT)/$(IOS_FRAMEWORK_NAME).xcframework

rm -rf $(IOS_BINDING_OUTPUT)/arm64 $(IOS_BINDING_OUTPUT)/sim $(IOS_BINDING_OUTPUT)/catalyst
rm -rf $(IOS_BINDING_OUTPUT)/arm64_framework $(IOS_BINDING_OUTPUT)/sim_framework $(IOS_BINDING_OUTPUT)/catalyst_framework $(IOS_BINDING_OUTPUT)/framework_headers

binding_ios_all_iphone: binding_ios_arm64

binding_ios_all_sim: binding_ios_x86_64_sim binding_ios_arm64_sim
mkdir -p $(IOS_BINDING_OUTPUT)/sim
lipo $(IOS_BINDING_OUTPUT)/x86_64_sim/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_sim/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/sim/$(IOS_BINDING_NAME)
cp $(IOS_BINDING_OUTPUT)/arm64_sim/*.h $(IOS_BINDING_OUTPUT)/sim
rm -rf $(IOS_BINDING_OUTPUT)/x86_64_sim $(IOS_BINDING_OUTPUT)/arm64_sim

binding_ios_all_catalyst: binding_ios_x86_64_catalyst binding_ios_arm64_catalyst
mkdir -p $(IOS_BINDING_OUTPUT)/catalyst
lipo $(IOS_BINDING_OUTPUT)/x86_64_catalyst/$(IOS_BINDING_NAME) $(IOS_BINDING_OUTPUT)/arm64_catalyst/$(IOS_BINDING_NAME) -create -output $(IOS_BINDING_OUTPUT)/catalyst/$(IOS_BINDING_NAME)
cp $(IOS_BINDING_OUTPUT)/arm64_catalyst/*.h $(IOS_BINDING_OUTPUT)/catalyst
rm -rf $(IOS_BINDING_OUTPUT)/x86_64_catalyst $(IOS_BINDING_OUTPUT)/arm64_catalyst

binding_ios_x86_64_catalyst:
Expand Down
18 changes: 18 additions & 0 deletions ios/framework-template/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>_NAME_</string>
<key>CFBundleIdentifier</key>
<string>_NAME_</string>
<key>MinimumOSVersion</key>
<string>100.0</string>
<key>CFBundleShortVersionString</key>
<string>_VERSION_</string>
<key>CFBundleVersion</key>
<string>_BUILD_NUMBER_</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
</dict>
</plist>
4 changes: 4 additions & 0 deletions ios/framework-template/Modules/module.modulemap
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
framework module "_NAME_" {
header "_HEADER_NAME_.h"
export *
}
40 changes: 40 additions & 0 deletions ios/prepare-xcframework.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash

# Determine version and require NAME as an env variable
VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "0.0.$(git rev-parse --short HEAD)")
SED_INPLACE_FLAG=("-i")

# Adjust sed for macOS
if [[ "$OSTYPE" == "darwin"* ]]; then
SED_INPLACE_FLAG=("-i" "")
fi



VERSION=${VERSION#v}
VERSION=$(echo "$VERSION" | sed 's/-.*//')

BUILD_NUMBER=${BUILD_NUMBER:-"${VERSION}.$(date +%s)"}


echo "Using version: $VERSION"
echo "Using build number: $BUILD_NUMBER"

echo "Using name: ${NAME:-<not set>}"
echo "Using header name: ${HEADER_NAME:-<not set>}"

find $1 -type f -name "*.plist" -exec sed "${SED_INPLACE_FLAG[@]}" "s/_VERSION_/${VERSION}/g" {} +
find $1 -type f -name "*.plist" -exec sed "${SED_INPLACE_FLAG[@]}" "s/_BUILD_NUMBER_/${BUILD_NUMBER}/g" {} +

if [[ -n "$HEADER_NAME" ]]; then
find $1 \( -name "*.modulemap" \) \
-exec sed "${SED_INPLACE_FLAG[@]}" "s/_HEADER_NAME_/${HEADER_NAME}/g" {} +
echo "Replaced _HEADER_NAME_ with $HEADER_NAME"
fi

if [[ -n "$NAME" ]]; then
find $1 \( -name "*.plist" -o -name "*.modulemap" \) \
-exec sed "${SED_INPLACE_FLAG[@]}" "s/_NAME_/${NAME}/g" {} +
echo "Replaced _NAME_ with $NAME"
fi

4 changes: 3 additions & 1 deletion wasm/main.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
//go:build js && wasm
// +build js,wasm

package main

import (
"errors"
openPGPBridge "github.com/jerson/openpgp-mobile/bridge"
"syscall/js"

openPGPBridge "github.com/jerson/openpgp-mobile/bridge"
)

func Promise(i []js.Value, fn func() (result interface{}, err error)) interface{} {
Expand Down