aboutsummaryrefslogtreecommitdiffstats
path: root/ui
Commit message (Collapse)AuthorAgeFilesLines
* Delete product in installCleanJaekyun Seok2018-05-161-0/+1
| | | | | | | | Bug: 79780604 Test: succeeded building and tested with taimen Change-Id: I11c4ecb839a28d852e0d5faf762afda33166ad48 Merged-In: I11c4ecb839a28d852e0d5faf762afda33166ad48 (cherry picked from commit f6307ccae16bb86fe1cdb417b0cbacbe3b3c6cda)
* Fix format string issuesColin Cross2018-05-032-2/+2
| | | | | | | | | | Fix issues caught by go vet. Bug: 73724997 Test: m checkbuild Change-Id: Ib8d740457c15432dabe1575a6707726ddaf93084 Merged-In: Ib8d740457c15432dabe1575a6707726ddaf93084 (cherry picked from commit f46e37f5f79bd7111aed84f6cf172f20431ec010)
* Let Soong_UI to handle build_date.txt fileNan Zhang2018-02-151-0/+16
| | | | | | | | | Soong_UI will update timestamp to build_date.txt, and export variables to kati/ninja. Test: m -j32 Bug: b/70351683 Change-Id: I153897afdf2d3f39a32d757d4c3ae7515caea52d
* Make GOROOT consistentDan Willemsen2018-01-231-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | We were previously setting GOROOT to "prebuilts/go/linux-x86" during the ninja executions when we were running Soong. But we can also run Soong during the main ninja execution, were GOROOT was unset. When the GOROOT was unset, the default GOROOT in our Go installation is "./prebuilts/go/linux-x86" (note the extra ./). This would cause g.bootstrap.goRoot to change between some soong runs, causing us to rebuild all go programs (and anything depending on them) more often than necessary. So instead, keep GOROOT undefined when running Soong. Everything that matters is using runtime.GOROOT(), which will fall back to the default. Continue setting $GOROOT for bootstrap.bash, otherwise it fails when there is no system provided go binary. What we give bootstrap.bash doesn't really matter, since we don't actually use the blueprint wrapper in Android. Test: m blueprint_tools; touch bionic/libc/tzcode/new.c; m blueprint_tools <doesn't rebuild everything> Change-Id: I82f30c7c3b5d25e5cbf28fe37a97fdb776c4a164
* Normalize LANG / LC_* environmentDan Willemsen2018-01-192-0/+60
| | | | | | | | | | | | | This ensures that the current locale supports UTF-8, and that we're getting a consistent (but still supported by the system) locale for every configuration except user-facing messages. This should eliminate any reproducibility problems around sorting, formatting, etc for all built products, while still showing localized error messages where available. Bug: 71573630 Test: LANG=es_ES LANGUAGE=es: m (check env in soong.log) Change-Id: If33311899eaed8c44573113ee35c5a71cee503a0
* Merge "Remove armv5te"Treehugger Robot2018-01-121-2/+0
|\
| * Remove armv5teDan Willemsen2018-01-081-2/+0
| | | | | | | | | | | | | | | | This architecture only existed for unbundled use, but even the NDK is removing support in their r17 release, so just remove support for it. Test: build/soong/build_test.bash -only-soong Change-Id: I4bd23babf567128d2d242cbdee3311abb198dd7c
* | Apply kati output rewriting to dumpvarsDan Willemsen2018-01-093-6/+19
|/ | | | | | | | | | | | This way we strip out ANSI codes when using dumb terminals. It's likely overkill to use katiRewriteOutput, but we should rarely see any output on stderr while dumping variables. This also lets us turn on kati_stats. Bug: 71729611 Test: lunch missing-eng (colored error) Test: lunch missing-eng 2>&1 | cat (non-colored) Test: TERM=dumb lunch missing-eng (non-colored) Change-Id: Ic63fd42d82a4a64e5c68aecd9ae0f242a0d703f1
* Build with OpenJDK 9 -target 1.8 by default (attempt 4).Tobias Thierer2018-01-041-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is cherry-picked from attempt 3, which was reverted due to http://b/70862583. Before this CL topic, the build toolchain for .java source files used OpenJDK 8, targeting 1.8 (v52 class files) by default. This CL topic switches the default to OpenJDK 9, but still targeting 1.8 (v52 class files) by default. If USE_ERROR_PRONE is set to true, then the default remains OpenJDK 8. Code in the Android platform should generally be unaffected, but if host tools that are now compiled and run using OpenJDK 9 are causing problems for your team, then let me know. To manually switch back to the old behavior for now (continue using OpenJDK 8), run this command in your shell: export EXPERIMENTAL_USE_OPENJDK9=false Bug: 69449021 Test: Treehugger Test: art/test/testrunner/run_build_test_target.py -j40 art-interpreter Test: dalvik/dx/tests/run-all-tests (cherry picked from commit 13f23a2753f7093a2344db91a04973a3b24b6789) Change-Id: I57abae73f9bdb21ef004a5118ff0e4ef70418ed9 Merged-in: Iac78122f58df0ebbb55134d55021ce6c57351b5f
* Move android/soong/fs to android/soong/finder/fsColin Cross2017-12-221-1/+1
| | | | | | | | The fs package is specific to finder, move it inside finder. Bug: 70897635 Test: m checkbuild Change-Id: Ie705f064a832141702a8e87fd59ed75c01018504
* Make ANDROID_JAVA{8,9}_HOME available to config.mk.Tobias Thierer2017-12-201-2/+6
| | | | | | | | | | | | Previously, these variables were exported only by makevars.go, but those values are not available to config.mk. This CL adds the variable to ui/build/config.go, which also makes it available to config.mk. Test: Treehugger Bug: 70862583 Bug: 70521453 Change-Id: Ib54660e4b08ab751265b30004630cf1bb8c0041b
* Merge "Revert "Build with OpenJDK 9 -target 1.8 by default except for ↵Tobias Thierer2017-12-111-10/+1
|\ | | | | | | errorprone.""
| * Revert "Build with OpenJDK 9 -target 1.8 by default except for errorprone."Tobias Thierer2017-12-111-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | After this revert CL topic, the default toolchain for Android goes back to being OpenJDK 8. This revert is being prepared ahead of time in case of any problems with CL topic: https://r.android.com/#/q/topic:bug69449021_attempt2 Bug: 69449021 Test: Treehugger Change-Id: I9ead8d569226bd487baee3c6d5be9ec7033eb56a
* | Merge "Clearer error if no Android.bp is found"Jeff Gaston2017-12-111-2/+18
|\ \ | |/ |/|
| * Clearer error if no Android.bp is foundJeff Gaston2017-12-081-2/+18
| | | | | | | | | | | | Bug: 70036990 Test: touch .out-dir && m -j nothing 2>&1 | grep "must not exist" Change-Id: Idefa70dafa53bca17134e99185d2c524671bae25
* | Build with OpenJDK 9 -target 1.8 by default except for errorprone.Tobias Thierer2017-12-111-1/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This is cherry-picked from the first attempt to submit this CL topic, which was reverted after 3 hours because of bug 70286093; robolectric 3.{1.1,4.2} now stick with OpenJDK 8 to avoid that bug). Before this CL topic, the build toolchain for .java source files used OpenJDK 8, targeting 1.8 (v52 class files) by default. This CL topic switches the default to OpenJDK 9, but still targeting 1.8 (v52 class files) by default. If USE_ERROR_PRONE is set to true, then the default remains OpenJDK 8. Code in the Android platform should generally be unaffected, but if host tools that are now compiled and run using OpenJDK 9 are causing problems for your team, then let me know. To manually switch back to the old behavior for now (continue using OpenJDK 8), run this command in your shell: export EXPERIMENTAL_USE_OPENJDK9=false Bug: 69449021 Test: Treehugger Test: Running robolectric tests succeeds on internal-master after cherry-picking this CL topic, using the command line from http://b/70286093#comment1 (cherry picked from commit 0ae8b548af38c8b8fccea7cdef11d54740d3bb6a) Change-Id: Ide6a7e55126d919a44f89ef8e0bd14fb12ff470e
* Search for files named Blueprints only under build/blueprintJeff Gaston2017-12-071-11/+2
| | | | | | | | | | | | | | | | | | | to enable other subprojects to use their own instance of Blueprint in other directories. Files named Android.bp are still autodetected throughout the tree like previously. Bug: 64363847 Test: mkdir -p subdir \ && echo "syntax error" > Blueprints \ && m -j nothing Test: build/soong/scripts/diff_build_graphs.sh \ --products=aosp_arm \ 'build/soong:work^' 'build/soong:work' Change-Id: I8199f12b68dc1699bf44682b86169def37b53a5e
* Merge "Revert "Default to building with OpenJDK 9 -target 1.8.""Tobias Thierer2017-12-061-10/+1
|\
| * Revert "Default to building with OpenJDK 9 -target 1.8."Tobias Thierer2017-12-051-10/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After this revert CL topic, the default toolchain for Android goes back to being OpenJDK 8. This revert is being prepared ahead of time in case of any problems with original change topic, https://r.android.com/#/q/topic:bug_69449021 Bug: 69449021 Test: Treehugger This reverts commit 0ae8b548af38c8b8fccea7cdef11d54740d3bb6a. Change-Id: Ief7646a94f1a264085cd299b4327d244b78a1537
* | Merge "Build with OpenJDK 9 -target 1.8 by default except for errorprone."Tobias Thierer2017-12-061-1/+10
|\|
| * Build with OpenJDK 9 -target 1.8 by default except for errorprone.Tobias Thierer2017-12-051-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this CL topic, the build toolchain for .java source files used OpenJDK 8, targeting 1.8 (v52 class files) by default. This CL topic switches the default to OpenJDK 9, but still targeting 1.8 (v52 class files) by default. If USE_ERROR_PRONE is set to true, then the default remains OpenJDK 8. Code in the Android platform should generally be unaffected, but if host tools that are now compiled and run using OpenJDK 9 are causing problems for your team, then let me know. To manually switch back to the old behavior for now (continue using OpenJDK 8), run this command in your shell: export EXPERIMENTAL_USE_OPENJDK9=false Bug: 69449021 Test: Treehugger Test: "make core-oj", checked that compilation now uses OpenJDK 9 javac -target 1.8 Test: Checked that this is still compiled using OpenJDK 8. export EXPERIMENTAL_USE_OPENJDK9=false make core-oj Change-Id: Ic87e9bb2a2e5da0ff13a2e51845b5365901c1507
* | Revert "Revert "Soong support for namespaces""Jeff Gaston2017-12-041-0/+1
|/ | | | | | | | | | | | | | | | | This mostly reverts commit 178d5fefc0cea9d0f031c0bdee125b9d960f32c3 and mostly reapplies change I6d3e52ef62c4cabe85b9a135a54de0e1a6aab29c . Bug: 65683273 Test: build/soong/scripts/diff_build_graphs.sh \ --products=aosp_arm \ 'build/blueprint:work^ build/soong:work^' \ 'build/blueprint:work build/soong:work' # and see that the only changes were: # 1. adding some new files # 2. changing some line numbers Test: m -j nothing # which runs unit tests Change-Id: I32baae00277a547fdcdd1c2219fe6625ee0e45d7
* Revert "Soong support for namespaces"Jeff Gaston2017-11-301-1/+0
| | | | | | | | | | This reverts commit 63a250a336a1b910836eeb4caebcf5b4f8d91c2a. Reason for revert: Some failures: namespace_test.go:648: dir1/Blueprints:2:4: a namespace must be the first module in the file such as New Build Breakage: aosp-master/build_test @ 4475274 Change-Id: I1b5db8eb934e51ff22241bfca44199d886b1393b
* Merge "Soong support for namespaces"Jeff Gaston2017-11-291-0/+1
|\
| * Soong support for namespacesJeff Gaston2017-11-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 65683273 Test: build/soong/scripts/diff_build_graphs.sh \ --products=aosp_arm \ 'build/blueprint:work^ build/soong:work^' \ 'build/blueprint:work build/soong:work' # and see that the only changes were: # 1. adding some new files # 2. changing some line numbers Test: m -j nothing # which runs unit tests Change-Id: I6d3e52ef62c4cabe85b9a135a54de0e1a6aab29c
* | Merge "Revert "Revert "Test for dangling rules in make checkbuild"""Treehugger Robot2017-11-294-8/+108
|\ \ | |/ |/|
| * Revert "Revert "Test for dangling rules in make checkbuild""Colin Cross2017-11-254-8/+108
| | | | | | | | | | | | | | | | | | | | | | This reverts commit fb941913a351eca744e8da8251b191a05bccc3a1. Reapplies I4933187e8b72f2ef0c32d18ffea756e2c6fa417c with fixes to disable the check for mac builds, where many modules are disabled and the check is just going to cause more problems. Test: m checkbuild Change-Id: If6712c90ececd5d015fcdcdeefe0c3d4f5590711
* | Merge "Add TEST_MAPPING to finder's cache"Treehugger Robot2017-11-291-1/+7
|\ \ | |/ |/|
| * Add TEST_MAPPING to finder's cacheDan Shi2017-11-221-1/+7
| | | | | | | | | | | | | | | | | | Build target test_mapping will create a tarball of all TEST_MAPPING files in source code based on the cached TEST_MAPPING.list Bug: 69678490 Test: m -j blueprint_tools && cat out/.module_paths/TEST_MAPPING.list Change-Id: Iba3479363137609d6631cf1851a8ce4613078f61
* | Support EXPERIMENTAL_USE_OPENJDK9=false.Tobias Thierer2017-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This fourth possible value currently has the same semantics as a default/unset EXPERIMENTAL_USE_OPENJDK9, but allows people to explicitly switch back to the old semantics when the default changes. Test: make showcommands core-oj (in environments with EXPERIMENTAL_USE_OPENJDK9 set to "", "1.8", and "true"). Bug: 38177295 Change-Id: I25accf14344a05349a6e97572d7c2c1f6a7f2063
* | Revert "Test for dangling rules in make checkbuild"Colin Cross2017-11-134-101/+8
| | | | | | | | | | | | | | | | This reverts commit 7709a057706b478c9687f1facaca115cb61cb169. Reason for revert: Broke mac checkbuilds Change-Id: If71ec9198ca8943d90ce9d5e3a277faf239e38a5
* | Test for dangling rules in make checkbuildColin Cross2017-11-134-8/+101
|/ | | | | | | | | | | | | | | | | | | | Get a list of leaf nodes in the dependency graph from ninja, and make sure none of them are in the output directory. This ensures that there are no rules that depend on a file in the output directory that doesn't have rule to generate it. The check will catch a common set of build failures where a rule to generate a file is deleted (either by deleting a module in an Android.mk file, or by modifying the build system incorrectly). These failures are often not caught by a local incremental build because the previously built files are still present in the output directory. Bug: 36843214 Bug: 68062417 Test: manual Change-Id: I4933187e8b72f2ef0c32d18ffea756e2c6fa417c
* Pass results of Finder into BlueprintJeff Gaston2017-11-081-0/+1
| | | | | | | Bug: 64363847 Test: m -j Change-Id: I79db8c524af6e77c35a0199ec1876e5eb94e8971
* Fix mac buildDan Willemsen2017-11-081-1/+0
| | | | | Test: `m nothing` on mac Change-Id: Ibc377134dbcc5d40263697ef1e79fc31b16e0d1d
* Setup java paths in soong_uiDan Willemsen2017-11-084-19/+41
| | | | | | | | | | | | | | | This way config.mk no longer needs to check which java is in PATH and fix it. It'll be consistent for all build steps under soong_ui. Also unify handling of ANDROID_JAVA_HOME / JAVA_HOME with OVERRIDE_ANDROID_JAVA_HOME / EXPERIMENTAL_USE_OPENJDK9. Test: m nothing Test: build/soong/soong_ui.bash --make-mode nothing (w/o envsetup.sh) Test: aosp_arm ninja files are the same before/after Test: before/after ninja files match with OVERRIDE_ANDROID_JAVA_HOME Test: before/after ninja files match with EXPERIMENTAL_USE_OPENJDK9 Change-Id: Icdb65093d9c346524074de239a4f895e4230a24d
* Silence error during microfactory trace importDan Willemsen2017-10-181-1/+1
| | | | | | | | This may happen if there's been another call to microfactory before we've read the log file. Just ignore the error and continue. Test: Run `while true; do get_build_var TARGET_PRODUCT; done` in parallel Change-Id: I670144f4637281ebf1299dbd9151dd9819c363e3
* Synchronize file rotationDan Willemsen2017-10-182-4/+14
| | | | | | | | | Create a lock file during log rotation so that multiple processes won't step on each other. Test: Run `while true; do get_build_var TARGET_PRODUCT; done` in parallel Test: m blueprint_tools Change-Id: I7144cd42aca47c694487ddae44713f82665ed81e
* Merge "Fix soong_ui with empty arguments"Treehugger Robot2017-10-181-3/+3
|\
| * Fix soong_ui with empty argumentsDan Willemsen2017-10-171-3/+3
| | | | | | | | | | Test: build/soong/soong_ui.bash --make-mode "" nothing Change-Id: I8bbe947078eaa00976811ce1b9b34e1a7c23f97f
* | Add --dumpvar[s]-mode to replace config.mk usesDan Willemsen2017-10-171-37/+46
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | build/soong/soong_ui.bash --dumpvars-mode \ --vars="..." \ --abs-vars="..." \ --var-prefix="..." \ --abs-var-prefix="..." is similar to the previous: CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core \ make -f build/core/config.mk dump-many-vars \ DUMP_MANY_VARS="..." \ DUMP_MANY_ABS_VARS="..." \ DUMP_VAR_PREFIX="..." \ DUMP_ABS_VAR_PREFIX="..." and build/soong/soong_ui.bash --dumpvar-mode [--abs] VAR is similar to the previous: CALLED_FROM_SETUP=true BUILD_SYSTEM=build/core \ make -f build/core/config.mk dumpvar-[abs-]-VAR But uses soong_ui and ckati, so that we use a consistent make parser and sandboxing configurations. One major output difference between the pure make implementation and this one is that report_config in Go is implemented using embedded newlines in single quotes, while the make implementation uses `` with embedded echo commands. This seems to work fine for both bash and zsh, and report_config isn't meant to be machine-parsed anyways. Test: build/soong/soong_ui.bash --dumpvar-mode report_config Test: build/soong/soong_ui.bash --dumpvar-mode TARGET_DEVICE Test: build/soong/soong_ui.bash --dumpvar-mode --abs PRODUCT_OUT Test: build/soong/soong_ui.bash --dumpvar-mode --abs ALL_PRODUCTS Test: build/soong/soong_ui.bash --dumpvars-mode --vars="report_config TARGET_DEVICE" --abs-vars="ALL_PRODUCTS" Test: build/soong/soong_ui.bash --dumpvars-mode --vars=TARGET_DEVICE --abs-vars=PRODUCT_OUT --var-prefix=v_ --abs-var-prefix=a_ Change-Id: I0fbd0732bbf6fcfcd24084cf3c830a91a4b6bfc2
* Revert "Always run asan ckati on the build servers"Dan Willemsen2017-10-141-13/+5
| | | | | | | | | This reverts commit a3e6c520ac835ce22eb130bda8e043d829093052. I fixed a few heavy stack users, and we've got better debugging. Bug: 36182021 Test: m dist Change-Id: Iefd8589185720e44c40a2e0ceff5fd1438211b86
* Always record kati stats into soong logDan Willemsen2017-10-141-0/+8
| | | | | | | | | | Pass --dump-stats to ckati, but filter out the '*kati*' lines so that they only end up in our verbose output. That way we've always got access to the statistics. Bug: 36182021 Test: m nothing; cat out/soong.log Change-Id: Iaf7a814fc67f3e475c913faf69924a7f4e2ae3b3
* Switch product configs from make to ckatiDan Willemsen2017-10-126-24/+23
| | | | | | | | | | | | | | | | This speeds up dumping make variables from ~380ms using make to ~220ms using ckati. It also means that we're consistently using the same parser for builds (with the same .KATI_READONLY/etc extensions). envsetup.sh (lunch) / other scripts still use make, changing those to go through soong_ui will be a future change. Test: m clean; m nothing Test: USE_GOMA=true m nothing Test: m PRODUCT-aosp_x86-sdk Test: m APP-Calculator Test: build/soong/build_test.bash -only-config (on AOSP and internal master) Change-Id: I6ca554de8de4955fb869001d06d29969b75751cc
* Remove (TARGET|HOST)_BUILD_TYPE path modificationsDan Willemsen2017-09-081-10/+2
| | | | | | | | | They don't really affect anything general in android except for the output path. Bug: 65453318 Test: TARGET_BUILD_TYPE=debug m Change-Id: I98c17fefae61f9f7936e184bd1f8441086bb7d23
* Split CleanSpec processing out of main Kati runDan Willemsen2017-08-233-12/+46
| | | | | | | | | | | | | | | | Instead of pairing the reading of CleanSpec.mk files with the reading of Android.mk files, split them into separate, individually cachable steps. This way we only read Android.mk files once after a clean/sync. We'll still read the CleanSpec.mk files multiple times, but that's significantly faster than reading all the Android.mk files. This adds about 50ms if kati doesn't need to reread the CleanSpec.mk files. Reading all the CleanSpec.mk files takes about a second. Bug: 35970961 Test: m clean; m nothing; m nothing Test: Add CleanSpec.mk line, see it executed. Change-Id: I83bad15c50709510959d5b8b673a907b8aa7de82
* Stop setting ASAN_OPTIONS for katiDan Willemsen2017-08-211-3/+0
| | | | | | | Kati sets detect_leaks=0 by default now. Test: unset ASAN_OPTIONS; SANITIZE_HOST=address m nothing Change-Id: I0cbf04ae9ed40de520abca3fb35c65e7f543682d
* Obsolete bootstrap.bash and ./soong wrappersDan Willemsen2017-08-183-26/+90
| | | | | | | | | | | | | We can call directly into the blueprint bootstrap.bash using values that soong_ui has already calculated. Instead of calling into blueprint.bash, build minibp with microfactory, and directly run ninja. This allows us to get individual tracing data from each component. Test: m -j blueprint_tools Test: m clean; m -j blueprint_tools Change-Id: I2239943c9a8a3ad6e1a40fa0dc914421f4b5202c
* Run the Finder and make its results available to KatiJeff Gaston2017-08-164-0/+109
| | | | | | | | | | The Finder runs roughly 200ms faster than findleaves.py in aosp, and runs roughly 400ms faster in internal master. Bug: 64363847 Test: m -j Change-Id: I62db8dacc90871e913576fe2443021fb1749a483
* Revert "Revert "Cacheable, multithreaded finder.""Jeff Gaston2017-08-101-2/+4
| | | | | | | | | Bug: 62455338 Test: m -j This reverts commit d1abeb9d982b11fdf4047176d213acc8197c375f. Change-Id: I9f73031636157511b5f1c6ce8a205e9bc91669ff
* Merge "Revert "Cacheable, multithreaded finder.""Jeff Gaston2017-08-101-4/+2
|\