Commit Graph

5 Commits

Author SHA1 Message Date
Dan Willemsen 87b17d1ff4 Use SRCDIR as a working directory
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
2015-09-17 23:42:25 -07:00
Colin Cross 24679676ca Fix soong scripts to support directories with spaces
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
2015-04-10 15:50:37 -07:00
Colin Cross 10787d046d Fix running soong from different directory
${BOOTSTRAP} already contains ${BUILDDIR}

Change-Id: Ie1303e4b2a5ce415f565ffc4b6125071e427bd43
2015-04-09 00:13:44 +00:00
Colin Cross 68f55102da Support dependencies on environment variables
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
2015-03-26 14:13:49 -07:00
Colin Cross f7531f1a21 Replace soong script with a symlink
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
2015-03-25 14:09:02 -07:00