68f55102da
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
183 lines
3.5 KiB
Text
183 lines
3.5 KiB
Text
//
|
|
// WARNING: Modifying this file will NOT automatically regenerate build.ninja.in!
|
|
//
|
|
// Before modifying this file make sure minibp is up to date:
|
|
// 1) "repo sync build/soong" to make sure you have the latest build.ninja.in
|
|
// 2) build minibp, which builds automicatically through the normal build steps. For example:
|
|
//
|
|
// After modifying this file regenerate build.ninja.in and build your changes:
|
|
// 1) In your build directory, execute "../bootstrap.bash -r" to regenerate build.ninja.in
|
|
// 2) Build again
|
|
//
|
|
|
|
bootstrap_go_binary {
|
|
name: "soong_build",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-bootstrap",
|
|
"soong-art",
|
|
"soong-cc",
|
|
"soong-common",
|
|
"soong-config",
|
|
"soong-env",
|
|
"soong-genrule",
|
|
],
|
|
srcs: [
|
|
"cmd/soong_build/main.go",
|
|
],
|
|
primaryBuilder: true,
|
|
}
|
|
|
|
bootstrap_go_binary {
|
|
name: "soong_env",
|
|
deps: [
|
|
"soong-env",
|
|
],
|
|
srcs: [
|
|
"cmd/soong_env/soong_env.go",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-env",
|
|
pkgPath: "android/soong/env",
|
|
srcs: [
|
|
"env/env.go",
|
|
],
|
|
}
|
|
|
|
|
|
bootstrap_go_binary {
|
|
name: "soong_glob",
|
|
deps: [
|
|
"soong-glob",
|
|
],
|
|
srcs: [
|
|
"cmd/soong_glob/soong_glob.go",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-glob",
|
|
pkgPath: "android/soong/glob",
|
|
deps: [
|
|
"blueprint-deptools",
|
|
],
|
|
srcs: [
|
|
"glob/glob.go",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-common",
|
|
pkgPath: "android/soong/common",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-bootstrap",
|
|
"soong-env",
|
|
"soong-glob",
|
|
],
|
|
srcs: [
|
|
"common/arch.go",
|
|
"common/checkbuild.go",
|
|
"common/defs.go",
|
|
"common/env.go",
|
|
"common/glob.go",
|
|
"common/module.go",
|
|
"common/paths.go",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-config",
|
|
pkgPath: "android/soong/config",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-bootstrap",
|
|
"soong-common",
|
|
],
|
|
srcs: [
|
|
"config/config.go",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-cc",
|
|
pkgPath: "android/soong/cc",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-pathtools",
|
|
"soong-common",
|
|
"soong-config",
|
|
"soong-genrule",
|
|
],
|
|
srcs: [
|
|
"cc/builder.go",
|
|
"cc/cc.go",
|
|
"cc/clang.go",
|
|
"cc/toolchain.go",
|
|
"cc/util.go",
|
|
|
|
"cc/arm_device.go",
|
|
"cc/arm64_device.go",
|
|
|
|
"cc/x86_linux_host.go",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "soong-genrule",
|
|
pkgPath: "android/soong/genrule",
|
|
deps: [
|
|
"blueprint",
|
|
"blueprint-pathtools",
|
|
"soong-common",
|
|
"soong-config",
|
|
],
|
|
srcs: [
|
|
"genrule/genrule.go",
|
|
],
|
|
}
|
|
//
|
|
// androidmk Android.mk to Blueprints translator
|
|
//
|
|
|
|
bootstrap_go_binary {
|
|
name: "androidmk",
|
|
srcs: [
|
|
"androidmk/cmd/androidmk/android.go",
|
|
"androidmk/cmd/androidmk/androidmk.go",
|
|
"androidmk/cmd/androidmk/values.go",
|
|
],
|
|
deps: [
|
|
"androidmk-parser",
|
|
"blueprint-parser",
|
|
],
|
|
}
|
|
|
|
bootstrap_go_package {
|
|
name: "androidmk-parser",
|
|
pkgPath: "android/soong/androidmk/parser",
|
|
srcs: [
|
|
"androidmk/parser/make_strings.go",
|
|
"androidmk/parser/makething.go",
|
|
"androidmk/parser/parser.go",
|
|
"androidmk/parser/scope.go",
|
|
],
|
|
}
|
|
|
|
//
|
|
// C static libraries extracted from the gcc toolchain
|
|
//
|
|
|
|
toolchain_library {
|
|
name: "libatomic",
|
|
}
|
|
|
|
toolchain_library {
|
|
name: "libgcc",
|
|
}
|
|
|
|
toolchain_library {
|
|
name: "libgcov",
|
|
}
|