aboutsummaryrefslogtreecommitdiffstats
path: root/soong.bash
Commit message (Collapse)AuthorAgeFilesLines
* Add license headers to all go and shell filesColin Cross2017-11-171-0/+14
| | | | | Test: none Change-Id: I75c443e05f2b1e17fcb6823182717d2e6f5df7c4
* Obsolete bootstrap.bash and ./soong wrappersDan Willemsen2017-08-181-46/+6
| | | | | | | | | | | | | 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
* Add --skip-make to replace Soong's blueprint wrapper with soong_uiDan Willemsen2017-08-081-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | This way we only have one way to start a build, which always has logging / tracing / etc, even if we don't need Kati. There's two ways to use this: As a direct replacement for mkdir out; cd out; ../bootstrap.bash; ./soong -- as long as --skip-make is always passed, we'll never run Kati, and Soong will run outside of it's "make" mode. This preserves most of the speed, and allows full user control over the Soong configuration. A (experimental, dangerous) way to temporarily bypass the product variable and kati steps of a build. As long as a user is sure that nothing has changed from the last build, and they know exactly which Ninja targets they want to build (which may not be the same as the arguments normally passed to 'm'), this can lead to shorter build startup times. Test: rm -rf out; m --skip-make libc Test: rm -rf out; m libc; m --skip-make libc Test: rm -rf out; mkdir out; cd out; ../bootstrap.bash; ./soong libc Test: build/soong/scripts/build-ndk-prebuilts.sh Change-Id: Ic0f91167b5779dba3f248a379fbaac67a75a946e
* Simplify bootstrappingDan Willemsen2016-08-311-4/+1
| | | | | | Follow changes from https://github.com/google/blueprint/pull/121 Change-Id: Icc5003f6e8592a667e1ce5e58361c03997078763
* Update path to ninjaColin Cross2016-05-041-1/+1
| | | | | | | ninja has been moved from prebuilts/ninja to prebuilts/build-tools so it can share the hermetic libc++.so there. Change-Id: I0b6e76baaa6916a8c7fd19c684b792ccef2f9cb1
* Turn on ninja errors for duplicate rulesDan Willemsen2016-03-011-1/+1
| | | | Change-Id: Iadac88f8835121a8685bff835acba638100bb654
* Execute the blueprint wrapperDan Willemsen2015-12-101-3/+2
| | | | | | | | See https://github.com/google/blueprint/pull/86 for the blueprint change and description. Bug: 25448631 Change-Id: Ibadbfc8e2cf2592dcfd137156fc3681819078328
* Use SRCDIR as a working directoryDan Willemsen2015-09-171-12/+9
| | | | | | | | | | | The existing behavior of using the build directory as the working directory is useful if you want to move/copy the output directory around and SRCDIR still refers the the source. But, it's more useful to have the source directory be the working directory. Tools like cpp(__FILE__) and other debug prints embed relative paths from the working directory. We also have tools that expect the working directory to be $TOP. Change-Id: Ia0f1d3c6b7df72d61cf5628efa2baa98bd19775b
* Fix soong scripts to support directories with spacesColin Cross2015-04-101-13/+13
| | | | | | | | | | | Using a path with a space to execute soong is unlikely, but it might as well work. Quote all the paths in the soong scripts. Soong and blueprint will still both fail if the relative path between the soong script and the source directory has a space in it, but this is even more unlikely. Change-Id: I8986f10115209d69b09b82ffea26e4b10d29c197
* Fix running soong from different directoryColin Cross2015-04-091-2/+2
| | | | | | ${BOOTSTRAP} already contains ${BUILDDIR} Change-Id: Ie1303e4b2a5ce415f565ffc4b6125071e427bd43
* Support dependencies on environment variablesColin Cross2015-03-261-0/+17
| | | | | | | | | | | | | | | | | | | Ninja can't depend on environment variables, so modifying build behavior based on environment variables requires coordinating between the soong script that invokes ninja and the soong_build manifest generator. Allow any module to call Config.Getenv to get the contents of an environment variable while registering a dependency on it. After all modules have been processed write out the state of all used environment variables to a JSON file called .soong.environment. During the next build the soong script will use the soong_env tool to compare the contents of .soong.environment to the current environment, and force a build manifest regeneration by deleting the .soong.environment file if any variables have changed. Change-Id: Id0d81933a857bc2fc1cd7a393a3c6cec73dc4824
* Replace soong script with a symlinkColin Cross2015-03-251-0/+30
bootstrap.bash creates a soong script in the output directory using build/soong/soong.in. This requires a manual rebootstrap any time soong.in changes. Instead, have bootstrap.bash symlink build/soong/soong.bash to soong in the output directory, and create a file called .soong.bootstrap in the output directory that contains the variables that bootstrap.bash sets. Change-Id: I5e6e54c2e8bdde876941e2e082f9ba177c757cbf