blob: 2e72b91e1d5b8825f1683e1468a0ed5c0ad2c21a [file] [log] [blame]
#! /bin/bash
set -e
printusage() {
echo "Usage: ./download-libs.sh <robolectric-version> " >&2
echo " -f <old-directory-to-copy-from>" >&2
exit 1
}
oldVersion=""
roboVersion="$1"
shift
while getopts "f:h" opt; do
case "$opt" in
f)
oldVersion="$OPTARG"
;;
h)
printusage
;;
esac
done
if [[ -z $roboVersion ]] || [[ -z $oldVersion ]]; then
printusage
fi
mkdir -p ../"$roboVersion"/PREBUILT
# Copy the scripts into the versioned directory for record
cp download-libs.sh ../"$roboVersion"/PREBUILT/download-libs.sh
cp download-libs.gradle ../"$roboVersion"/PREBUILT/download-libs.gradle
cd ../"$roboVersion"
gradle -b PREBUILT/download-libs.gradle \
-ProbolectricVersion="$roboVersion" \
-PshadowsVersion="$roboVersion"
COPY_FROM_OLD_VERSION=(
"java-timeout"
"list_failed.sh"
"report-internal.mk"
"robotest-internal.mk"
"robotest.sh"
"run_robotests.mk"
"wrapper.sh"
"wrapper_test.sh"
)
for file in "${COPY_FROM_OLD_VERSION[@]}"; do
cp -n ../"$oldVersion"/$file ./$file
done
cat <<EOF > Android.mk
LOCAL_PATH:= \$(call my-dir)
############################
# Adding the Robolectric .JAR prebuilts from this directory into a single target.
# This is the one you probably want.
include \$(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES := \\
platform-robolectric-${roboVersion}-annotations \\
platform-robolectric-${roboVersion}-asm \\
platform-robolectric-${roboVersion}-junit \\
platform-robolectric-${roboVersion}-resources \\
platform-robolectric-${roboVersion}-sandbox \\
platform-robolectric-${roboVersion}-shadow-api \\
platform-robolectric-${roboVersion}-shadows-framework \\
platform-robolectric-${roboVersion}-shadows-httpclient \\
platform-robolectric-${roboVersion}-shadows-multidex \\
platform-robolectric-${roboVersion}-shadows-support-v4 \\
platform-robolectric-${roboVersion}-snapshot \\
platform-robolectric-${roboVersion}-utils
LOCAL_MODULE := platform-robolectric-${roboVersion}-prebuilt
LOCAL_SDK_VERSION := current
include \$(BUILD_STATIC_JAVA_LIBRARY)
############################
# Defining the target names for the static prebuilt .JARs.
prebuilts := \\
platform-robolectric-${roboVersion}-annotations:lib/annotations-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-asm:lib/asm-6.0.jar \\
platform-robolectric-${roboVersion}-junit:lib/junit-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-resources:lib/resources-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-sandbox:lib/sandbox-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-shadow-api:lib/shadowapi-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-shadows-framework:lib/shadows-framework-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-shadows-httpclient:lib/shadows-httpclient-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-shadows-multidex:lib/shadows-multidex-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-shadows-support-v4:lib/shadows-supportv4-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-snapshot:lib/robolectric-${roboVersion}.jar \\
platform-robolectric-${roboVersion}-utils:lib/utils-${roboVersion}.jar
define define-prebuilt
\$(eval tw := \$(subst :, ,\$(strip \$(1)))) \\
\$(eval include \$(CLEAR_VARS)) \\
\$(eval LOCAL_MODULE := \$(word 1,\$(tw))) \\
\$(eval LOCAL_MODULE_TAGS := optional) \\
\$(eval LOCAL_MODULE_CLASS := JAVA_LIBRARIES) \\
\$(eval LOCAL_SRC_FILES := \$(word 2,\$(tw))) \\
\$(eval LOCAL_UNINSTALLABLE_MODULE := true) \\
\$(eval LOCAL_SDK_VERSION := current) \\
\$(eval include \$(BUILD_PREBUILT))
endef
\$(foreach p,\$(prebuilts),\\
\$(call define-prebuilt,\$(p)))
prebuilts :=
EOF
set +e