aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-06-17 14:20:06 -0700
committerColin Cross <ccross@android.com>2015-07-09 17:57:18 -0700
commit463a90e5872d6c8cf26a2302e7ad1586957304a0 (patch)
tree3d8001008839eff93d224dc2411be26842a7f9ad /cmd
parent3fde0c220aa0c43ef125f0156d27499622b59b61 (diff)
downloadbuild_soong-463a90e5872d6c8cf26a2302e7ad1586957304a0.tar.gz
build_soong-463a90e5872d6c8cf26a2302e7ad1586957304a0.tar.bz2
build_soong-463a90e5872d6c8cf26a2302e7ad1586957304a0.zip
use init functions to register module types, etc.
Instead of putting all the blueprint registrations in soong_build, put them all in init() functions. This puts the registration next to the implementation. Change-Id: Ide1a749518f5e9d1367a18ab3bb1d91da3310c76
Diffstat (limited to 'cmd')
-rw-r--r--cmd/soong_build/main.go61
1 files changed, 8 insertions, 53 deletions
diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go
index 9ef0d064..94fb6e74 100644
--- a/cmd/soong_build/main.go
+++ b/cmd/soong_build/main.go
@@ -20,14 +20,16 @@ import (
"os"
"path/filepath"
- "github.com/google/blueprint"
"github.com/google/blueprint/bootstrap"
- "android/soong/art"
- "android/soong/cc"
+ "android/soong"
+
+ // These imports cause the modules to register their ModuleTypes, etc. with the soong package
+ _ "android/soong/art"
+ _ "android/soong/cc"
"android/soong/common"
- "android/soong/genrule"
- "android/soong/java"
+ _ "android/soong/genrule"
+ _ "android/soong/java"
)
func main() {
@@ -36,54 +38,7 @@ func main() {
// The top-level Blueprints file is passed as the first argument.
srcDir := filepath.Dir(flag.Arg(0))
- ctx := blueprint.NewContext()
-
- // Module types
- ctx.RegisterModuleType("cc_library_static", cc.CCLibraryStaticFactory)
- ctx.RegisterModuleType("cc_library_shared", cc.CCLibrarySharedFactory)
- ctx.RegisterModuleType("cc_library", cc.CCLibraryFactory)
- ctx.RegisterModuleType("cc_object", cc.CCObjectFactory)
- ctx.RegisterModuleType("cc_binary", cc.CCBinaryFactory)
- ctx.RegisterModuleType("cc_test", cc.CCTestFactory)
- ctx.RegisterModuleType("cc_benchmark", cc.CCBenchmarkFactory)
-
- ctx.RegisterModuleType("toolchain_library", cc.ToolchainLibraryFactory)
- ctx.RegisterModuleType("ndk_prebuilt_library", cc.NdkPrebuiltLibraryFactory)
- ctx.RegisterModuleType("ndk_prebuilt_object", cc.NdkPrebuiltObjectFactory)
- ctx.RegisterModuleType("ndk_prebuilt_static_stl", cc.NdkPrebuiltStaticStlFactory)
- ctx.RegisterModuleType("ndk_prebuilt_shared_stl", cc.NdkPrebuiltSharedStlFactory)
-
- ctx.RegisterModuleType("cc_library_host_static", cc.CCLibraryHostStaticFactory)
- ctx.RegisterModuleType("cc_library_host_shared", cc.CCLibraryHostSharedFactory)
- ctx.RegisterModuleType("cc_binary_host", cc.CCBinaryHostFactory)
- ctx.RegisterModuleType("cc_test_host", cc.CCTestHostFactory)
- ctx.RegisterModuleType("cc_benchmark_host", cc.CCBenchmarkHostFactory)
-
- ctx.RegisterModuleType("gensrcs", genrule.GenSrcsFactory)
- ctx.RegisterModuleType("genrule", genrule.GenRuleFactory)
-
- ctx.RegisterModuleType("art_cc_library", art.ArtCCLibraryFactory)
- ctx.RegisterModuleType("art_cc_binary", art.ArtCCBinaryFactory)
-
- ctx.RegisterModuleType("java_library", java.JavaLibraryFactory)
- ctx.RegisterModuleType("java_library_static", java.JavaLibraryFactory)
- ctx.RegisterModuleType("java_library_host", java.JavaLibraryHostFactory)
- ctx.RegisterModuleType("java_binary", java.JavaBinaryFactory)
- ctx.RegisterModuleType("java_binary_host", java.JavaBinaryHostFactory)
- ctx.RegisterModuleType("prebuilt_java_library", java.JavaPrebuiltFactory)
- ctx.RegisterModuleType("prebuilt_sdk", java.SdkPrebuiltFactory)
- ctx.RegisterModuleType("android_app", java.AndroidAppFactory)
-
- // Mutators
- ctx.RegisterEarlyMutator("host_or_device", common.HostOrDeviceMutator)
- ctx.RegisterEarlyMutator("arch", common.ArchMutator)
- ctx.RegisterEarlyMutator("link", cc.LinkageMutator)
- ctx.RegisterEarlyMutator("test_per_src", cc.TestPerSrcMutator)
-
- // Singletons
- ctx.RegisterSingletonType("buildtarget", common.BuildTargetSingleton)
- ctx.RegisterSingletonType("env", common.EnvSingleton)
- ctx.RegisterSingletonType("logtags", java.LogtagsSingleton)
+ ctx := soong.NewContext()
configuration, err := common.NewConfig(srcDir)
if err != nil {