github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/soong/scripts/microfactory.bash (about) 1 # Copyright 2017 Google Inc. All rights reserved. 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 # Set of utility functions to build and run go code with microfactory 16 # 17 # Inputs: 18 # ${TOP}: The top of the android source tree 19 # ${OUT_DIR}: The output directory location (defaults to ${TOP}/out) 20 # ${OUT_DIR_COMMON_BASE}: Change the default out directory to 21 # ${OUT_DIR_COMMON_BASE}/$(basename ${TOP}) 22 23 # Ensure GOROOT is set to the in-tree version. 24 case $(uname) in 25 Linux) 26 export GOROOT="${TOP}/prebuilts/go/linux-x86/" 27 ;; 28 Darwin) 29 export GOROOT="${TOP}/prebuilts/go/darwin-x86/" 30 ;; 31 *) echo "unknown OS:" $(uname) >&2 && exit 1;; 32 esac 33 34 # Find the output directory 35 function getoutdir 36 { 37 local out_dir="${OUT_DIR-}" 38 if [ -z "${out_dir}" ]; then 39 if [ "${OUT_DIR_COMMON_BASE-}" ]; then 40 out_dir="${OUT_DIR_COMMON_BASE}/$(basename ${TOP})" 41 else 42 out_dir="out" 43 fi 44 fi 45 if [[ "${out_dir}" != /* ]]; then 46 out_dir="${TOP}/${out_dir}" 47 fi 48 echo "${out_dir}" 49 } 50 51 # Bootstrap microfactory from source if necessary and use it to build the 52 # requested binary. 53 # 54 # Arguments: 55 # $1: name of the requested binary 56 # $2: package name 57 function soong_build_go 58 { 59 BUILDDIR=$(getoutdir) \ 60 SRCDIR=${TOP} \ 61 BLUEPRINTDIR=${TOP}/build/blueprint \ 62 EXTRA_ARGS="-pkg-path android/soong=${TOP}/build/soong" \ 63 build_go $@ 64 } 65 66 source ${TOP}/build/blueprint/microfactory/microfactory.bash