aboutsummaryrefslogtreecommitdiffstats
path: root/build.ninja.in
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-03-25 14:43:57 -0700
committerColin Cross <ccross@android.com>2015-03-26 14:13:49 -0700
commit68f55102dadc880e2b57c669415771395ac0c3b0 (patch)
tree1dcbe3dd29a50bdb22d3750ef0633fe29186c3f6 /build.ninja.in
parentf7531f1a21aaa56ef53cb1714e954e487528109f (diff)
downloadbuild_soong-68f55102dadc880e2b57c669415771395ac0c3b0.tar.gz
build_soong-68f55102dadc880e2b57c669415771395ac0c3b0.tar.bz2
build_soong-68f55102dadc880e2b57c669415771395ac0c3b0.zip
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
Diffstat (limited to 'build.ninja.in')
-rw-r--r--build.ninja.in74
1 files changed, 58 insertions, 16 deletions
diff --git a/build.ninja.in b/build.ninja.in
index 2b802d43..4fb63250 100644
--- a/build.ninja.in
+++ b/build.ninja.in
@@ -53,7 +53,7 @@ rule g.bootstrap.link
# Variant:
# Type: bootstrap_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModule
-# Defined: build/soong/Blueprints:123:1
+# Defined: build/soong/Blueprints:145:1
build .bootstrap/androidmk/obj/androidmk.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/androidmk/cmd/androidmk/android.go $
@@ -79,7 +79,7 @@ default .bootstrap/bin/androidmk
# Variant:
# Type: bootstrap_go_package
# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
-# Defined: build/soong/Blueprints:136:1
+# Defined: build/soong/Blueprints:158:1
build .bootstrap/androidmk-parser/pkg/android/soong/androidmk/parser.a: $
g.bootstrap.gc $
@@ -295,12 +295,13 @@ build .bootstrap/soong-art/pkg/android/soong/art.a: g.bootstrap.gc $
.bootstrap/blueprint-pathtools/pkg/github.com/google/blueprint/pathtools.a $
.bootstrap/blueprint-deptools/pkg/github.com/google/blueprint/deptools.a $
.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ .bootstrap/soong-env/pkg/android/soong/env.a $
.bootstrap/soong-glob/pkg/android/soong/glob.a $
.bootstrap/soong-common/pkg/android/soong/common.a $
.bootstrap/soong-config/pkg/android/soong/config.a $
.bootstrap/soong-genrule/pkg/android/soong/genrule.a $
.bootstrap/soong-cc/pkg/android/soong/cc.a
- incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg -I .bootstrap/soong-genrule/pkg -I .bootstrap/soong-cc/pkg
+ incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-env/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg -I .bootstrap/soong-genrule/pkg -I .bootstrap/soong-cc/pkg
pkgPath = android/soong/art
default .bootstrap/soong-art/pkg/android/soong/art.a
@@ -309,7 +310,7 @@ default .bootstrap/soong-art/pkg/android/soong/art.a
# Variant:
# Type: bootstrap_go_package
# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
-# Defined: build/soong/Blueprints:82:1
+# Defined: build/soong/Blueprints:104:1
build .bootstrap/soong-cc/pkg/android/soong/cc.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/cc/builder.go $
@@ -327,11 +328,12 @@ build .bootstrap/soong-cc/pkg/android/soong/cc.a: g.bootstrap.gc $
.bootstrap/blueprint-pathtools/pkg/github.com/google/blueprint/pathtools.a $
.bootstrap/blueprint-deptools/pkg/github.com/google/blueprint/deptools.a $
.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ .bootstrap/soong-env/pkg/android/soong/env.a $
.bootstrap/soong-glob/pkg/android/soong/glob.a $
.bootstrap/soong-common/pkg/android/soong/common.a $
.bootstrap/soong-config/pkg/android/soong/config.a $
.bootstrap/soong-genrule/pkg/android/soong/genrule.a
- incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg -I .bootstrap/soong-genrule/pkg
+ incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-env/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg -I .bootstrap/soong-genrule/pkg
pkgPath = android/soong/cc
default .bootstrap/soong-cc/pkg/android/soong/cc.a
@@ -340,12 +342,13 @@ default .bootstrap/soong-cc/pkg/android/soong/cc.a
# Variant:
# Type: bootstrap_go_package
# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
-# Defined: build/soong/Blueprints:51:1
+# Defined: build/soong/Blueprints:71:1
build .bootstrap/soong-common/pkg/android/soong/common.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/common/arch.go $
${g.bootstrap.srcDir}/build/soong/common/checkbuild.go $
${g.bootstrap.srcDir}/build/soong/common/defs.go $
+ ${g.bootstrap.srcDir}/build/soong/common/env.go $
${g.bootstrap.srcDir}/build/soong/common/glob.go $
${g.bootstrap.srcDir}/build/soong/common/module.go $
${g.bootstrap.srcDir}/build/soong/common/paths.go | $
@@ -356,8 +359,9 @@ build .bootstrap/soong-common/pkg/android/soong/common.a: g.bootstrap.gc $
.bootstrap/blueprint-deptools/pkg/github.com/google/blueprint/deptools.a $
.bootstrap/blueprint-pathtools/pkg/github.com/google/blueprint/pathtools.a $
.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ .bootstrap/soong-env/pkg/android/soong/env.a $
.bootstrap/soong-glob/pkg/android/soong/glob.a
- incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-glob/pkg
+ incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-env/pkg -I .bootstrap/soong-glob/pkg
pkgPath = android/soong/common
default .bootstrap/soong-common/pkg/android/soong/common.a
@@ -366,7 +370,7 @@ default .bootstrap/soong-common/pkg/android/soong/common.a
# Variant:
# Type: bootstrap_go_package
# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
-# Defined: build/soong/Blueprints:69:1
+# Defined: build/soong/Blueprints:91:1
build .bootstrap/soong-config/pkg/android/soong/config.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/config/config.go | $
@@ -377,18 +381,31 @@ build .bootstrap/soong-config/pkg/android/soong/config.a: g.bootstrap.gc $
.bootstrap/blueprint-deptools/pkg/github.com/google/blueprint/deptools.a $
.bootstrap/blueprint-pathtools/pkg/github.com/google/blueprint/pathtools.a $
.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ .bootstrap/soong-env/pkg/android/soong/env.a $
.bootstrap/soong-glob/pkg/android/soong/glob.a $
.bootstrap/soong-common/pkg/android/soong/common.a
- incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg
+ incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-env/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg
pkgPath = android/soong/config
default .bootstrap/soong-config/pkg/android/soong/config.a
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Module: soong-env
+# Variant:
+# Type: bootstrap_go_package
+# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
+# Defined: build/soong/Blueprints:41:1
+
+build .bootstrap/soong-env/pkg/android/soong/env.a: g.bootstrap.gc $
+ ${g.bootstrap.srcDir}/build/soong/env/env.go | ${g.bootstrap.gcCmd}
+ pkgPath = android/soong/env
+default .bootstrap/soong-env/pkg/android/soong/env.a
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Module: soong-genrule
# Variant:
# Type: bootstrap_go_package
# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
-# Defined: build/soong/Blueprints:106:1
+# Defined: build/soong/Blueprints:128:1
build .bootstrap/soong-genrule/pkg/android/soong/genrule.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/genrule/genrule.go | $
@@ -399,10 +416,11 @@ build .bootstrap/soong-genrule/pkg/android/soong/genrule.a: g.bootstrap.gc $
.bootstrap/blueprint-pathtools/pkg/github.com/google/blueprint/pathtools.a $
.bootstrap/blueprint-deptools/pkg/github.com/google/blueprint/deptools.a $
.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ .bootstrap/soong-env/pkg/android/soong/env.a $
.bootstrap/soong-glob/pkg/android/soong/glob.a $
.bootstrap/soong-common/pkg/android/soong/common.a $
.bootstrap/soong-config/pkg/android/soong/config.a
- incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg
+ incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-env/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg
pkgPath = android/soong/genrule
default .bootstrap/soong-genrule/pkg/android/soong/genrule.a
@@ -411,7 +429,7 @@ default .bootstrap/soong-genrule/pkg/android/soong/genrule.a
# Variant:
# Type: bootstrap_go_package
# Factory: github.com/google/blueprint/bootstrap.newGoPackageModule
-# Defined: build/soong/Blueprints:40:1
+# Defined: build/soong/Blueprints:60:1
build .bootstrap/soong-glob/pkg/android/soong/glob.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/glob/glob.go | ${g.bootstrap.gcCmd} $
@@ -436,19 +454,20 @@ build .bootstrap/soong_build/obj/soong_build.a: g.bootstrap.gc $
.bootstrap/blueprint-deptools/pkg/github.com/google/blueprint/deptools.a $
.bootstrap/blueprint-pathtools/pkg/github.com/google/blueprint/pathtools.a $
.bootstrap/blueprint-bootstrap/pkg/github.com/google/blueprint/bootstrap.a $
+ .bootstrap/soong-env/pkg/android/soong/env.a $
.bootstrap/soong-glob/pkg/android/soong/glob.a $
.bootstrap/soong-common/pkg/android/soong/common.a $
.bootstrap/soong-config/pkg/android/soong/config.a $
.bootstrap/soong-genrule/pkg/android/soong/genrule.a $
.bootstrap/soong-cc/pkg/android/soong/cc.a $
.bootstrap/soong-art/pkg/android/soong/art.a
- incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg -I .bootstrap/soong-genrule/pkg -I .bootstrap/soong-cc/pkg -I .bootstrap/soong-art/pkg
+ incFlags = -I .bootstrap/blueprint-parser/pkg -I .bootstrap/blueprint-proptools/pkg -I .bootstrap/blueprint/pkg -I .bootstrap/blueprint-deptools/pkg -I .bootstrap/blueprint-pathtools/pkg -I .bootstrap/blueprint-bootstrap/pkg -I .bootstrap/soong-env/pkg -I .bootstrap/soong-glob/pkg -I .bootstrap/soong-common/pkg -I .bootstrap/soong-config/pkg -I .bootstrap/soong-genrule/pkg -I .bootstrap/soong-cc/pkg -I .bootstrap/soong-art/pkg
pkgPath = soong_build
default .bootstrap/soong_build/obj/soong_build.a
build .bootstrap/soong_build/obj/a.out: g.bootstrap.link $
.bootstrap/soong_build/obj/soong_build.a | ${g.bootstrap.linkCmd}
- libDirFlags = -L .bootstrap/blueprint-parser/pkg -L .bootstrap/blueprint-proptools/pkg -L .bootstrap/blueprint/pkg -L .bootstrap/blueprint-deptools/pkg -L .bootstrap/blueprint-pathtools/pkg -L .bootstrap/blueprint-bootstrap/pkg -L .bootstrap/soong-glob/pkg -L .bootstrap/soong-common/pkg -L .bootstrap/soong-config/pkg -L .bootstrap/soong-genrule/pkg -L .bootstrap/soong-cc/pkg -L .bootstrap/soong-art/pkg
+ libDirFlags = -L .bootstrap/blueprint-parser/pkg -L .bootstrap/blueprint-proptools/pkg -L .bootstrap/blueprint/pkg -L .bootstrap/blueprint-deptools/pkg -L .bootstrap/blueprint-pathtools/pkg -L .bootstrap/blueprint-bootstrap/pkg -L .bootstrap/soong-env/pkg -L .bootstrap/soong-glob/pkg -L .bootstrap/soong-common/pkg -L .bootstrap/soong-config/pkg -L .bootstrap/soong-genrule/pkg -L .bootstrap/soong-cc/pkg -L .bootstrap/soong-art/pkg
default .bootstrap/soong_build/obj/a.out
build .bootstrap/bin/soong_build: g.bootstrap.cp $
@@ -456,11 +475,33 @@ build .bootstrap/bin/soong_build: g.bootstrap.cp $
default .bootstrap/bin/soong_build
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Module: soong_env
+# Variant:
+# Type: bootstrap_go_binary
+# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModule
+# Defined: build/soong/Blueprints:31:1
+
+build .bootstrap/soong_env/obj/soong_env.a: g.bootstrap.gc $
+ ${g.bootstrap.srcDir}/build/soong/cmd/soong_env/soong_env.go | $
+ ${g.bootstrap.gcCmd} .bootstrap/soong-env/pkg/android/soong/env.a
+ incFlags = -I .bootstrap/soong-env/pkg
+ pkgPath = soong_env
+default .bootstrap/soong_env/obj/soong_env.a
+
+build .bootstrap/soong_env/obj/a.out: g.bootstrap.link $
+ .bootstrap/soong_env/obj/soong_env.a | ${g.bootstrap.linkCmd}
+ libDirFlags = -L .bootstrap/soong-env/pkg
+default .bootstrap/soong_env/obj/a.out
+
+build .bootstrap/bin/soong_env: g.bootstrap.cp .bootstrap/soong_env/obj/a.out
+default .bootstrap/bin/soong_env
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Module: soong_glob
# Variant:
# Type: bootstrap_go_binary
# Factory: github.com/google/blueprint/bootstrap.newGoBinaryModule
-# Defined: build/soong/Blueprints:30:1
+# Defined: build/soong/Blueprints:50:1
build .bootstrap/soong_glob/obj/soong_glob.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/cmd/soong_glob/soong_glob.go | $
@@ -498,7 +539,8 @@ rule s.bootstrap.minibp
build .bootstrap/main.ninja.in: s.bootstrap.bigbp $
${g.bootstrap.srcDir}/Blueprints | .bootstrap/bin/androidmk $
.bootstrap/bin/bpfmt .bootstrap/bin/bpmodify .bootstrap/bin/minibp $
- .bootstrap/bin/soong_build .bootstrap/bin/soong_glob
+ .bootstrap/bin/soong_build .bootstrap/bin/soong_env $
+ .bootstrap/bin/soong_glob
default .bootstrap/main.ninja.in
build .bootstrap/notAFile: phony
default .bootstrap/notAFile