blob: 3c5b92d1c72bbd736e8a21f23537bd9d63c04864 [file] [log] [blame]
#! /bin/bash
#
# Copyright (C) 2024 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Builds and locally publishes an uber jar for local architectures.
#
# Normally an uber jar contains JNI binaries for all supported
# platforms, but that requires those binaries to be built somewhere.
# This script infers the binary types that can be built locally and
# adds only those to the jar. This allows end to end testing of the
# build process as well as testing of the uberjar against multiple
# Java versions (see testLocalUber.sh)
CONSCRYPT_HOME="${CONSCRYPT_HOME:-$HOME/src/conscrypt}"
BUILD="$CONSCRYPT_HOME/build.gradle"
M2_REPO="${M2_REPO:-$HOME/.m2/repository}"
PUBLISH_DIR="${M2_REPO}/org/conscrypt"
die() {
echo "*** " $@
exit 1
}
case $(uname -s) in
Darwin)
CLASSIFIERS="osx-x86_64,osx-aarch_64"
;;
Linux)
CLASSIFIERS="linux-x86_64"
;;
*)
die "TODO: Finish this switch statement"
;;
esac
test -f "$BUILD" || die "Conscrypt build file not found. Check CONSCRYPT_HOME."
VERSION=$(sed -nE 's/^ *version *= *"(.*)"/\1/p' $BUILD)
test "$VERSION" || die "Unable to figure out Conscrypt version."
echo "Conscrypt version ${VERSION}."
UBERJAR="$PUBLISH_DIR/conscrypt-openjdk-uber/$VERSION/conscrypt-openjdk-uber-${VERSION}.jar"
cd "$CONSCRYPT_HOME"
./gradlew :conscrypt-openjdk:publishToMavenLocal \
--console=plain
./gradlew :conscrypt-openjdk-uber:publishToMavenLocal \
-Dorg.conscrypt.openjdk.uberJarClassifiers="$CLASSIFIERS" \
-Dorg.conscrypt.openjdk.buildUberJar=true \
--console=plain
test -f "$UBERJAR" || die "Uber jar not published."
ls -l "$UBERJAR"