blob: c1c236b9d6f0bbbc95f7bed1f8c1889bd56ff73d [file] [log] [blame]
Dan Willemsen0043c0e2016-09-18 20:27:41 -07001#!/bin/bash -eu
2#
3# Copyright 2017 Google Inc. All rights reserved.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# To track how long we took to startup. %N isn't supported on Darwin, but
Dan Willemsen0df15172017-05-07 11:23:59 -070018# that's detected in the Go code, which skips calculating the startup time.
Dan Willemsen0043c0e2016-09-18 20:27:41 -070019export TRACE_BEGIN_SOONG=$(date +%s%N)
20
21# Function to find top of the source tree (if $TOP isn't set) by walking up the
22# tree.
23function gettop
24{
25 local TOPFILE=build/soong/root.bp
Jooyung Hane9793a72018-12-28 14:35:14 +090026 if [ -n "${TOP-}" -a -f "${TOP-}/${TOPFILE}" ] ; then
Dan Willemsen0043c0e2016-09-18 20:27:41 -070027 # The following circumlocution ensures we remove symlinks from TOP.
28 (cd $TOP; PWD= /bin/pwd)
29 else
30 if [ -f $TOPFILE ] ; then
31 # The following circumlocution (repeated below as well) ensures
32 # that we record the true directory name and not one that is
33 # faked up with symlink names.
34 PWD= /bin/pwd
35 else
36 local HERE=$PWD
37 T=
38 while [ \( ! \( -f $TOPFILE \) \) -a \( $PWD != "/" \) ]; do
39 \cd ..
40 T=`PWD= /bin/pwd -P`
41 done
42 \cd $HERE
43 if [ -f "$T/$TOPFILE" ]; then
44 echo $T
45 fi
46 fi
47 fi
48}
49
Dan Willemsen1b822862017-07-12 15:00:05 -070050# Save the current PWD for use in soong_ui
51export ORIGINAL_PWD=${PWD}
Dan Willemsen0043c0e2016-09-18 20:27:41 -070052export TOP=$(gettop)
Dan Willemsen91f9b542017-07-18 19:39:34 -070053source ${TOP}/build/soong/scripts/microfactory.bash
Dan Willemsen0043c0e2016-09-18 20:27:41 -070054
Dan Willemsen91f9b542017-07-18 19:39:34 -070055soong_build_go soong_ui android/soong/cmd/soong_ui
Dan Willemsen1b822862017-07-12 15:00:05 -070056
57cd ${TOP}
Dan Willemsen0df15172017-05-07 11:23:59 -070058exec "$(getoutdir)/soong_ui" "$@"