diff options
author | Joe Onorato <joeo@google.com> | 2024-05-14 15:01:08 -0700 |
---|---|---|
committer | Joe Onorato <joeo@google.com> | 2024-05-14 15:13:27 -0700 |
commit | a67e6a7162edca17ba50426b6b850b96f1f8511c (patch) | |
tree | c9aacaa0b13b1d77cb00d9b78025f1c09ab2043c | |
parent | e8cb9178ec8b4faf24ffd3c0f123efa7f7f9fe65 (diff) | |
download | soong-a67e6a7162edca17ba50426b6b850b96f1f8511c.tar.gz |
Move aninja and overrideflags from shell functions to real scripts
Trying to clean up cruft from envsetup.sh
Shell functions require re-sourcing envsetup.sh, and should be avoided
if possible.
Bug: 340648588
Test: try the scripts
Change-Id: I15ec39b0382d9dd60e290dae633e8730a8d18131
-rwxr-xr-x | bin/aninja | 25 | ||||
-rwxr-xr-x | bin/overrideflags | 100 |
2 files changed, 125 insertions, 0 deletions
diff --git a/bin/aninja b/bin/aninja new file mode 100755 index 000000000..cceb79489 --- /dev/null +++ b/bin/aninja @@ -0,0 +1,25 @@ +#!/bin/bash -e + +# Copyright (C) 2022 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Common script utilities +source $(cd $(dirname $BASH_SOURCE) &> /dev/null && pwd)/../../make/shell_utils.sh + +require_top +require_lunch + +cd $(gettop) +prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-${TARGET_PRODUCT}.ninja "$@" + diff --git a/bin/overrideflags b/bin/overrideflags new file mode 100755 index 000000000..e16537b69 --- /dev/null +++ b/bin/overrideflags @@ -0,0 +1,100 @@ +#!/bin/bash -e +# Copyright (C) 2023 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +source $(cd $(dirname $BASH_SOURCE) &> /dev/null && pwd)/../../make/shell_utils.sh + +require_top + +function print_help() { + echo -e "overrideflags is used to set default value for local build." + echo -e "\nOptions:" + echo -e "\t--release-config \tPath to release configuration directory. Required" + echo -e "\t--no-edit \tIf present, skip editing flag value file." + echo -e "\t-h/--help \tShow this help." +} + +function main() { + while (($# > 0)); do + case $1 in + --release-config) + if [[ $# -le 1 ]]; then + echo "--release-config requires a path" + return 1 + fi + local release_config_dir="$2" + shift 2 + ;; + --no-edit) + local no_edit="true" + shift 1 + ;; + -h|--help) + print_help + return + ;; + *) + echo "$1 is unrecognized" + print_help + return 1 + ;; + esac + done + + + + case $(uname -s) in + Darwin) + local host_arch=darwin-x86 + ;; + Linux) + local host_arch=linux-x86 + ;; + *) + >&2 echo Unknown host $(uname -s) + return + ;; + esac + + if [[ -z "${release_config_dir}" ]]; then + echo "Please provide release configuration path by --release-config" + exit 1 + elif [ ! -d "${release_config_dir}" ]; then + echo "${release_config_dir} is an invalid directory" + exit 1 + fi + local T="$(gettop)" + local aconfig_dir="${T}"/build/make/tools/aconfig/ + local overrideflag_py="${aconfig_dir}"/overrideflags/overrideflags.py + local overridefile="${release_config_dir}/aconfig/override_values.textproto" + + # Edit override file + if [[ -z "${no_edit}" ]]; then + editor="${EDITOR:-$(which vim)}" + + eval "${editor} ${overridefile}" + if [ $? -ne 0 ]; then + echo "Fail to set override values" + return 1 + fi + fi + + ${T}/prebuilts/build-tools/${host_arch}/bin/py3-cmd -u "${overrideflag_py}" \ + --overrides "${overridefile}" \ + --out "${release_config_dir}/aconfig" +} + + +main "$@" |