-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathbuild-secp256k1.sh
executable file
·64 lines (57 loc) · 1.79 KB
/
build-secp256k1.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
set -u
set -e
echo Build Started
date
# Pick up the current directory:
CURRENT_DIR=$(pwd)
export BUILD_DIR=$CURRENT_DIR/native-libs/deps/build
OUT_DIR=$BUILD_DIR/prefix
# Do the build:
(
cd native-libs/deps
make \
libsecp256k1.build-android-arm \
libsecp256k1.build-android-arm64 \
libsecp256k1.build-android-x86_64 \
libsecp256k1.build-android-x86 \
libsecp256k1.build-iphoneos-arm64 \
libsecp256k1.build-iphoneos-armv7 \
libsecp256k1.build-iphoneos-armv7s \
libsecp256k1.build-iphonesimulator-arm64 \
libsecp256k1.build-iphonesimulator-i386 \
libsecp256k1.build-iphonesimulator-x86_64 \
)
# Copy the library to Android:
JNI_DIR=android/jni
mkdir -p $JNI_DIR/libs/armeabi-v7a
mkdir -p $JNI_DIR/libs/arm64-v8a
mkdir -p $JNI_DIR/libs/x86
mkdir -p $JNI_DIR/libs/x86_64
mkdir -p $JNI_DIR/include
cp $OUT_DIR/android/arm/lib/libsecp256k1.so $JNI_DIR/libs/armeabi-v7a/
cp $OUT_DIR/android/arm64/lib/libsecp256k1.so $JNI_DIR/libs/arm64-v8a/
cp $OUT_DIR/android/x86_64/lib/libsecp256k1.so $JNI_DIR/libs/x86_64/
cp $OUT_DIR/android/x86/lib/libsecp256k1.so $JNI_DIR/libs/x86/
cp $OUT_DIR/android/arm/include/secp256k1.h $JNI_DIR/include/
# Use lipo to squash together iOS libraries:
mkdir -p $BUILD_DIR/lipo-iphoneos
mkdir -p $BUILD_DIR/lipo-iphonesimulator
lipo \
-create \
$OUT_DIR/iPhoneOS/*/lib/libsecp256k1.a \
-output \
$BUILD_DIR/lipo-iphoneos/libsecp256k1.a
lipo \
-create \
$OUT_DIR/iPhoneSimulator/*/lib/libsecp256k1.a \
-output \
$BUILD_DIR/lipo-iphonesimulator/libsecp256k1.a
# Build an XCFramework out of those:
rm -fr ios/secp256k1.xcframework
xcodebuild -create-xcframework \
-library $BUILD_DIR/lipo-iphoneos/libsecp256k1.a \
-library $BUILD_DIR/lipo-iphonesimulator/libsecp256k1.a \
-output ios/secp256k1.xcframework
echo Build Finished
date