blob: 597edf133d03af341b1b6b41cad6be2ca4a6fa6d [file] [log] [blame]
Sam Gilbert72e8f422022-04-13 15:08:53 +00001#!/bin/bash
2set -e
3
4echo "Starting $0 at $(date)"
5
6androidxArguments="$*"
7
Sam Gilbert72e8f422022-04-13 15:08:53 +00008SCRIPTS_DIR="$(cd $(dirname $0)/.. && pwd)"
9cd "$SCRIPTS_DIR/../../.."
Jeff Gastonf1ba8a42022-06-16 15:24:57 -040010CHECKOUT_ROOT="$(pwd)"
Sam Gilbert72e8f422022-04-13 15:08:53 +000011echo "Script running from $(pwd)"
12
13# resolve dirs
14export OUT_DIR=$(pwd)/out
15
16if [ -z "$DIST_DIR" ]; then
17 DIST_DIR="$OUT_DIR/dist"
18fi
19mkdir -p "$DIST_DIR"
20
21export DIST_DIR="$DIST_DIR"
22
23# resolve GRADLE_USER_HOME
Aurimas Liutikas55263612022-05-10 09:40:31 -070024export GRADLE_USER_HOME="$OUT_DIR/gradle"
Sam Gilbert72e8f422022-04-13 15:08:53 +000025mkdir -p "$GRADLE_USER_HOME"
26
Jeff Gastonf1ba8a42022-06-16 15:24:57 -040027METALAVA_DIR=$CHECKOUT_ROOT/tools/metalava
Sam Gilbert72e8f422022-04-13 15:08:53 +000028gw="$METALAVA_DIR/gradlew -Dorg.gradle.jvmargs=-Xmx24g"
29
30# Use androidx prebuilt since we don't have metalava prebuilts
Jeff Gastonf1ba8a42022-06-16 15:24:57 -040031export ANDROID_HOME="$CHECKOUT_ROOT/prebuilts/fullsdk-linux/"
Sam Gilbert72e8f422022-04-13 15:08:53 +000032
33function buildMetalava() {
34 METALAVA_BUILD_LOG="$OUT_DIR/metalava.log"
Aurimas Liutikascb9baa72023-09-12 22:29:32 +000035 if $gw -p $METALAVA_DIR publish --stacktrace --no-daemon > "$METALAVA_BUILD_LOG" 2>&1; then
Sam Gilbert72e8f422022-04-13 15:08:53 +000036 echo built metalava successfully
37 else
38 cat "$METALAVA_BUILD_LOG" >&2
39 echo failed to build metalava
40 return 1
41 fi
42
43}
44
45buildMetalava
46
Aurimas Liutikas07e9b862023-09-29 18:44:21 +000047# allow androidx build to reach the network for any new metalava dependencies
48export ALLOW_PUBLIC_REPOS=true
49
Sam Gilbert72e8f422022-04-13 15:08:53 +000050# Mac grep doesn't support -P, so use perl version of `grep -oP "(?<=metalavaVersion=).*"`
Paul Duffin23749142023-09-14 13:34:16 +010051METALAVA_VERSION_FILE="$METALAVA_DIR/version.properties"
52export METALAVA_VERSION=`perl -nle'print $& while m{(?<=metalavaVersion=).*}g' $METALAVA_VERSION_FILE`
53if [ -z "$METALAVA_VERSION" ]; then
54 echo Failed to retrieve version from $METALAVA_VERSION_FILE >&2
55 exit 1
56fi
Tiem Song06cf03e2022-11-15 10:45:55 -080057export METALAVA_REPO="$DIST_DIR/repo/m2repository"
Sam Gilbert72e8f422022-04-13 15:08:53 +000058
59function buildAndroidx() {
Jeff Gaston4ffd5532022-06-15 15:13:25 -040060 ./frameworks/support/busytown/impl/build.sh $androidxArguments \
Sam Gilbert72e8f422022-04-13 15:08:53 +000061 --dependency-verification=off # building against tip of tree of metalava that potentially pulls in new dependencies
62
63}
64
65buildAndroidx
66echo "Completing $0 at $(date)"