aboutsummaryrefslogtreecommitdiffstats
path: root/ui
Commit message (Collapse)AuthorAgeFilesLines
* Fix OUT_DIR_COMMON_BASE with soong_uiandroid-o-preview-1Dan Willemsen2017-03-021-0/+16
| | | | | | | | | | | | | | | | | | | Currently, Kati is the only one that is respecting OUT_DIR_COMMON_BASE, causing the build to fail when ninja tries to match up the Soong and Kati ninja files. The soong_ui.bash script change is necessary to move the microfactory built outputs to the correct location. The config.go change takes care of setting OUT_DIR in the environment of every subprocess, so that we could remove the OUT_DIR_COMMON_BASE handling from Make once the USE_SOONG_UI=false path goes away. Bug: 35929763 Test: m -j blueprint_tools Test: OUT_DIR=... m -j blueprint_tools Test: OUT_DIR_COMMON_BASE=... m -j blueprint_tools Change-Id: I4184f2b4392d32c5bea51e51162a48df0e5c90d5
* Updates for the new ckati dropDan Willemsen2017-02-241-5/+3
| | | | | | | | | | | | | We can start removing out directories again in multiproduct_kati, since the opendir bug has been fixed. Add --color_warnings to the Kati command line. Since this is different from Make, take this opportunity to reorder the command line to make more sense. This wasn't done before because kati forces a regen whenever the command line changes. Test: USE_SOONG_UI=true m -j blueprint_tools Change-Id: I5ad03359fbc16db482722946202297c1ae0f2b90
* Merge "Improve signal handling in soong_ui"Treehugger Robot2017-02-221-20/+54
|\
| * Improve signal handling in soong_uiDan Willemsen2017-02-221-20/+54
| | | | | | | | | | | | | | Bug: 35214134 Test: ctrl-C during build Test: add for{} to hang soong_ui in multiple places, ensure it exits Change-Id: Ic71eedd4b1814ab2f3c441ae61a97570eda4fe16
* | Filter kati output to collapse verbose messagesDan Willemsen2017-02-217-3/+270
|/ | | | | | | | | | | | 1. Collapses the "including .../Android.mk ..." lines like ninja does, so that we overwrite the last line if there wasn't anything else to print. 2. Strips ansi control codes so that log files don't include unreadable characters. Test: m -j Test: m -j | tee output.log (with colored output) Change-Id: Ib18437f6f9d37084360097a9d586800c833072c5
* Merge "Ship the build log and trace on the build servers"Dan Willemsen2017-02-091-0/+14
|\
| * Ship the build log and trace on the build serversDan Willemsen2017-02-071-0/+14
| | | | | | | | | | Test: m -j; m -j dist Change-Id: I4718e7a0cda6719bbab4243038ea2666c212cf19
* | ui: Fix soong-executed ninja wrappingDan Willemsen2017-02-061-0/+1
|/ | | | | | | | | For proper ninja smart terminal support, we need to pass stdin to ./soong. Otherwise it starts a new line if the terminal isn't wide enough. Test: `rm -rf out/soong/.bootstrap; m -j` in narrow terminal Change-Id: I643a526001adc2323a420a03fa1df282554c7886
* Add build tracingDan Willemsen2017-02-069-1/+451
| | | | | | | | | | | This creates a rotating build.trace.gz in the out directory that can be loaded with chrome://tracing. It'll include start and end timings for make/soong/kati/ninja, and it will import and time-correct the ninja log files. Test: m -j; load out/build.trace.gz in chrome://tracing Test: multiproduct_kati -keep; load out/multiproduct*/build.trace.gz Change-Id: Ic060fa9515eb88d95dbe16712479dae9dffcf626
* Add multiproduct_katiDan Willemsen2017-02-061-0/+12
| | | | | | | | | | | | | | | This is a replacement for build/tools/kati_all_products.sh using the new Soong ui/build package. It doesn't even attempt to run ninja, and it can be configured to run only the product config, or only the product config and Soong. For AOSP on my machine: -only-config 1.4s -only-soong 1m20s <none> 13m Test: multiproduct_kati Change-Id: Ie3e6e7bdf692e46a8b8eb828f437190f8003500b
* Add a Go replacement for our top-level Make wrapperDan Willemsen2017-02-0615-0/+1773
Right now this mostly just copies what Make is doing in build/core/ninja.mk and build/core/soong.mk. The only major feature it adds is a rotating log file with some verbose logging. There is one major functional difference -- you cannot override random Make variables during the Make phase anymore. The environment variable is set, and if Make uses ?= or the equivalent, it can still use those variables. We already made this change for Kati, which also loads all of the same code and actually does the build, so it has been half-removed for a while. The only "UI" this implements is what I'll call "Make Emulation" mode -- it's expected that current command lines will continue working, and we'll explore alternate user interfaces later. We're still using Make as a wrapper, but all it does is call into this single Go program, it won't even load the product configuration. Once this is default, we can start moving individual users over to using this directly (still in Make emulation mode), skipping the Make wrapper. Ideas for the future: * Generating trace files showing time spent in Make/Kati/Soong/Ninja (also importing ninja traces into the same stream). I had this working in a previous version of this patch, but removed it to keep the size down and focus on the current features. * More intelligent SIGALRM handling, once we fully remove the Make wrapper (which hides the SIGALRM) * Reading the experimental binary output stream from Ninja, so that we can always save the verbose log even if we're not printing it out to the console Test: USE_SOONG_UI=true m -j blueprint_tools Change-Id: I884327b9a8ae24499eb6c56f6e1ad26df1cfa4e4