| #!/bin/bash |
| |
| if [ ! -d hardware/interfaces ] ; then |
| echo "Where is hardware/interfaces?"; |
| exit 1; |
| fi |
| |
| if [ ! -d system/libhidl/transport ] ; then |
| echo "Where is system/libhidl/transport?"; |
| exit 1; |
| fi |
| |
| packages=$(pushd hardware/interfaces > /dev/null; \ |
| find . -type f -name \*.hal -exec dirname {} \; | sort -u | \ |
| cut -c3- | \ |
| awk -F'/' \ |
| '{printf("android.hardware"); for(i=1;i<NF;i++){printf(".%s", $i);}; printf("@%s\n", $NF);}'; \ |
| popd > /dev/null) |
| |
| for p in $packages; do |
| echo "Updating $p"; |
| hidl-gen -Lmakefile -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport $p; |
| rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi |
| hidl-gen -Landroidbp -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport $p; |
| rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi |
| done |
| |
| # subdirectories of hardware/interfaces which contain an Android.bp file |
| android_dirs=$(find hardware/interfaces/*/ \ |
| -name "Android.bp" \ |
| -printf "%h\n" \ |
| | cut -d "/" -f1-3 \ |
| | sort | uniq) |
| |
| echo "Updating Android.bp files." |
| |
| for bp_dir in $android_dirs; do |
| bp="$bp_dir/Android.bp" |
| # locations of Android.bp files in specific subdirectory of hardware/interfaces |
| android_bps=$(find $bp_dir \ |
| -name "Android.bp" \ |
| ! -path $bp_dir/Android.bp \ |
| -printf "%h\n" \ |
| | sort) |
| |
| echo "// This is an autogenerated file, do not edit." > "$bp"; |
| echo "subdirs = [" >> "$bp"; |
| for a in $android_bps; do |
| echo " \"${a#$bp_dir/}\"," >> "$bp"; |
| done |
| echo "]" >> "$bp"; |
| done |