upload android base code part6
This commit is contained in:
parent
421e214c7d
commit
4e516ec6ed
35396 changed files with 9188716 additions and 0 deletions
126
android/system/tools/hidl/update-makefiles-helper.sh
Executable file
126
android/system/tools/hidl/update-makefiles-helper.sh
Executable file
|
@ -0,0 +1,126 @@
|
|||
#!/bin/bash
|
||||
|
||||
#TODO(b/35570956): Do with Soong instead.
|
||||
|
||||
#Note: see do_makefiles_update below.
|
||||
|
||||
function package_root_to_package() {
|
||||
echo $1 | cut -f1 -d:
|
||||
}
|
||||
|
||||
function package_root_to_root() {
|
||||
echo $1 | cut -f2 -d:
|
||||
}
|
||||
|
||||
##
|
||||
# Makes sure the appropriate directories are visible.
|
||||
# Usage: check_dirs root_or_cwd [package:root ...]
|
||||
function check_dirs() {
|
||||
local root_or_cwd=$1
|
||||
shift 1
|
||||
|
||||
for package_root in "$@"; do
|
||||
dir=$(package_root_to_root $package_root)
|
||||
if [ ! -d $root_or_cwd$dir ] ; then
|
||||
echo "Where is $dir?";
|
||||
return 1;
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
##
|
||||
# Gets all packages in a directory.
|
||||
# Usage: get_packages package root
|
||||
function get_packages() {
|
||||
local current_dir=$1
|
||||
local current_package=$2
|
||||
pushd $current_dir > /dev/null;
|
||||
find . -type f -name \*.hal -exec dirname {} \; | sort -u | \
|
||||
cut -c3- | \
|
||||
awk -F'/' \
|
||||
'{printf("'$current_package'"); for(i=1;i<NF;i++){printf(".%s", $i);}; printf("@%s\n", $NF);}';
|
||||
popd > /dev/null;
|
||||
}
|
||||
|
||||
##
|
||||
# Package roots to arguments.
|
||||
# Usage: get_root_arguments [package:root ...]
|
||||
function get_root_arguments() {
|
||||
for package_root in "$@"; do
|
||||
echo "-r $package_root"
|
||||
done
|
||||
}
|
||||
|
||||
##
|
||||
# Subdirectories of a directory which contain Android.bps
|
||||
# Note, does not return Android.bp in the current directory.
|
||||
#
|
||||
# Usage: get_bp_dirs dir
|
||||
function get_bp_dirs() {
|
||||
find $1/* \
|
||||
-mindepth 1 \
|
||||
-name "Android.bp" \
|
||||
-printf "%H\n" \
|
||||
| sort | uniq
|
||||
}
|
||||
|
||||
##
|
||||
# Returns directory path for a package
|
||||
# Usage: get_package_dir package_root_dir package_prefix package
|
||||
function get_package_dir() {
|
||||
local package_dir=`echo $3 | cut -f1 -d@ | sed "s/$2\.//" | sed "s/\./\//g"`
|
||||
local package_version=`echo $3 | cut -f2 -d@`
|
||||
echo $1/$package_dir/$package_version
|
||||
}
|
||||
|
||||
##
|
||||
# Helps manage the package root of a HAL directory.
|
||||
# Should be called from the android root directory.
|
||||
#
|
||||
# Usage: do_makefiles_update [package:root ...]
|
||||
# Where the first package root is the current one.
|
||||
#
|
||||
function do_makefiles_update() {
|
||||
local root_or_cwd=${ANDROID_BUILD_TOP%%/}${ANDROID_BUILD_TOP:+/}
|
||||
|
||||
local current_package=$(package_root_to_package $1)
|
||||
local current_dir=$root_or_cwd$(package_root_to_root $1)
|
||||
|
||||
echo "Updating makefiles for $current_package in $current_dir."
|
||||
|
||||
check_dirs "$root_or_cwd" $@ || return 1
|
||||
|
||||
local packages=$(get_packages $current_dir $current_package) || return 1
|
||||
local root_arguments=$(get_root_arguments $@) || return 1
|
||||
|
||||
for p in $packages; do
|
||||
echo "Updating $p";
|
||||
local additional_options=
|
||||
if [[ -f $(get_package_dir $current_dir $current_package $p)/.hidl_for_test ]]; then additional_options="-t"; fi
|
||||
hidl-gen -Lmakefile $root_arguments $p;
|
||||
rc=$?; if [[ $rc != 0 ]]; then return $rc; fi
|
||||
hidl-gen -Landroidbp $root_arguments $additional_options $p;
|
||||
rc=$?; if [[ $rc != 0 ]]; then return $rc; fi
|
||||
done
|
||||
|
||||
local android_dirs=$(get_bp_dirs $current_dir) || return 1
|
||||
|
||||
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 frameworks/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
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue