diff options
author | Colin Cross <ccross@android.com> | 2015-06-17 14:20:06 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2015-07-09 17:57:18 -0700 |
commit | 463a90e5872d6c8cf26a2302e7ad1586957304a0 (patch) | |
tree | 3d8001008839eff93d224dc2411be26842a7f9ad /cmd | |
parent | 3fde0c220aa0c43ef125f0156d27499622b59b61 (diff) | |
download | build_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.go | 61 |
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 { |