mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
Added build script for mobile lib.
This commit is contained in:
committed by
Cuong Manh Le
parent
a163be3584
commit
bb481d9bcc
64
scripts/build_lib.sh
Executable file
64
scripts/build_lib.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script is used to locally build Android .aar library and iOS .xcframework from ctrld source using go mobile tool.
|
||||
|
||||
# Requirements:
|
||||
# - Android NDK (version 23+)
|
||||
# - Android SDK (version 33+)
|
||||
# - Xcode 15 + Build tools
|
||||
# - Go 1.21
|
||||
# - Git
|
||||
# usage: $ ./build_lib.sh v1.3.4
|
||||
|
||||
TAG="$1"
|
||||
# Hacky way to replace version info.
|
||||
update_versionInfo() {
|
||||
local file="$1/ctrld/cmd/cli/cli.go"
|
||||
local tag="$2"
|
||||
local commit="$3"
|
||||
awk -v tag="$tag" -v commit="$commit" '
|
||||
BEGIN { version_updated = 0; commit_updated = 0 }
|
||||
/^\tversion/ {
|
||||
sub(/= ".+"/, "= \"" tag "\"");
|
||||
version_updated = 1;
|
||||
}
|
||||
/^\tcommit/ {
|
||||
sub(/= ".+"/, "= \"" commit "\"");
|
||||
commit_updated = 1;
|
||||
}
|
||||
{ print }
|
||||
END {
|
||||
if (version_updated == 0) {
|
||||
print "\tversion = \"" tag "\"";
|
||||
}
|
||||
if (commit_updated == 0) {
|
||||
print "\tcommit = \"" commit "\"";
|
||||
}
|
||||
}
|
||||
' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
|
||||
}
|
||||
export ANDROID_NDK_HOME=~/Library/Android/sdk/ndk/23.0.7599858
|
||||
mkdir bin
|
||||
cd bin || exit
|
||||
root=$(pwd)
|
||||
# Get source from github and switch to tag
|
||||
git clone --depth 1 --branch "$TAG" https://github.com/Control-D-Inc/ctrld.git
|
||||
# Prepare gomobile tool
|
||||
sourcePath=./ctrld/cmd/ctrld_library
|
||||
cd $sourcePath || exit
|
||||
go mod tidy
|
||||
go install golang.org/x/mobile/cmd/gomobile@latest
|
||||
go get golang.org/x/mobile/bind
|
||||
gomobile init
|
||||
# Prepare build info
|
||||
buildDir=$root/../build
|
||||
mkdir -p "$buildDir"
|
||||
COMMIT=$(git rev-parse HEAD)
|
||||
update_versionInfo "$root" "$TAG" "$COMMIT"
|
||||
ldflags="-s -w"
|
||||
# Build
|
||||
gomobile bind -target ios/arm64 -ldflags="$ldflags" -o "$buildDir"/ctrld-"$TAG".xcframework || exit
|
||||
gomobile bind -ldflags="$ldflags" -o "$buildDir"/ctrld-"$TAG".aar || exit
|
||||
# Clean up
|
||||
rm -r "$root"
|
||||
echo "Successfully built Ctrld library $TAG($COMMIT)."
|
||||
Reference in New Issue
Block a user