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
This commit is contained in:
Colin Cross
2015-06-17 14:20:06 -07:00
parent 3fde0c220a
commit 463a90e587
10 changed files with 205 additions and 74 deletions

View File

@@ -27,10 +27,39 @@ import (
"github.com/google/blueprint"
"github.com/google/blueprint/pathtools"
"android/soong"
"android/soong/common"
"android/soong/genrule"
)
func init() {
soong.RegisterModuleType("cc_library_static", CCLibraryStaticFactory)
soong.RegisterModuleType("cc_library_shared", CCLibrarySharedFactory)
soong.RegisterModuleType("cc_library", CCLibraryFactory)
soong.RegisterModuleType("cc_object", CCObjectFactory)
soong.RegisterModuleType("cc_binary", CCBinaryFactory)
soong.RegisterModuleType("cc_test", CCTestFactory)
soong.RegisterModuleType("cc_benchmark", CCBenchmarkFactory)
soong.RegisterModuleType("toolchain_library", ToolchainLibraryFactory)
soong.RegisterModuleType("ndk_prebuilt_library", NdkPrebuiltLibraryFactory)
soong.RegisterModuleType("ndk_prebuilt_object", NdkPrebuiltObjectFactory)
soong.RegisterModuleType("ndk_prebuilt_static_stl", NdkPrebuiltStaticStlFactory)
soong.RegisterModuleType("ndk_prebuilt_shared_stl", NdkPrebuiltSharedStlFactory)
soong.RegisterModuleType("cc_library_host_static", CCLibraryHostStaticFactory)
soong.RegisterModuleType("cc_library_host_shared", CCLibraryHostSharedFactory)
soong.RegisterModuleType("cc_binary_host", CCBinaryHostFactory)
soong.RegisterModuleType("cc_test_host", CCTestHostFactory)
soong.RegisterModuleType("cc_benchmark_host", CCBenchmarkHostFactory)
// LinkageMutator must be registered after common.ArchMutator, but that is guaranteed by
// the Go initialization order because this package depends on common, so common's init
// functions will run first.
soong.RegisterEarlyMutator("link", LinkageMutator)
soong.RegisterEarlyMutator("test_per_src", TestPerSrcMutator)
}
var (
HostPrebuiltTag = pctx.VariableConfigMethod("HostPrebuiltTag", common.Config.PrebuiltOS)
SrcDir = pctx.VariableConfigMethod("SrcDir", common.Config.SrcDir)