From 39b0deb0d7b5ee1bec1573f436f7379525f1c23c Mon Sep 17 00:00:00 2001 From: Peter Kalauskas Date: Tue, 10 Jul 2018 12:01:03 -0700 Subject: [PATCH] Fix error in build when OUT_DIR_COMMON_BASE is used Without this change, gen-kotlin-build-file.sh will generate kotlinc-build.xml file with path that look like: /path/to/aosp-top//path/to/aosp-out/soong/.intermediates/... Also fixed a couple lint errors. Test: Set OUT_DIR_COMMON_BASE and was able to build Bug: 111309264 Change-Id: I86173571667deca79ee0d9a7324715c9a0e4cd97 --- scripts/gen-kotlin-build-file.sh | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/scripts/gen-kotlin-build-file.sh b/scripts/gen-kotlin-build-file.sh index f077a0cbb..1e03f72e0 100755 --- a/scripts/gen-kotlin-build-file.sh +++ b/scripts/gen-kotlin-build-file.sh @@ -16,7 +16,7 @@ # Generates kotlinc module xml file to standard output based on rsp files -if [ -z "$1" ]; then +if [[ -z "$1" ]]; then echo "usage: $0 ..." >&2 exit 1 fi @@ -30,24 +30,36 @@ classpath=$1 out_dir=$2 shift 2 -# Path in the build file are relative to the build file, we need to make them absolute. -prefix=`pwd` +# Path in the build file may be relative to the build file, we need to make them +# absolute +prefix="$(pwd)" + +get_abs_path () { + local file="$1" + if [[ "${file:0:1}" == '/' ]] ; then + echo "${file}" + else + echo "${prefix}/${file}" + fi +} # Print preamble echo "" # Print classpath entries -for file in $(echo $classpath | tr ":" "\n"); do - echo " " +for file in $(echo "$classpath" | tr ":" "\n"); do + path="$(get_abs_path "$file")" + echo " " done # For each rsp file, print source entries while (( "$#" )); do - for file in $(cat $1); do + for file in $(cat "$1"); do + path="$(get_abs_path "$file")" if [[ $file == *.java ]]; then - echo " " + echo " " elif [[ $file == *.kt ]]; then - echo " " + echo " " else echo "Unknown source file type ${file}" exit 1