Add HINT_FROM_SOONG option for ninja weight list

If this option is set, Soong generates ninja weight list including
modules in HugeModulesList in allowlists.go

Test: m --ninja_weight_source=soong
Bug: 273282046
Change-Id: Id92b7f9f9e8152c1c46ae071c5821a479cf47bce
diff --git a/android/allowlists/allowlists.go b/android/allowlists/allowlists.go
index 938c41e..e9e649c 100644
--- a/android/allowlists/allowlists.go
+++ b/android/allowlists/allowlists.go
@@ -37,6 +37,8 @@
 	// all modules in this package and subpackages default to bp2build_available: false.
 	// allows modules to opt-in.
 	Bp2BuildDefaultFalseRecursively
+
+	DEFAULT_NINJA_WEIGHT = 1000
 )
 
 var (
@@ -1470,4 +1472,31 @@
 	// "libssl",
 	// "libstagefright_flacdec",
 	// "libutils",
+
+	// TODO(b/273282046): Make this list customizable to support various targets.
+	// The list of modules which are expected to spend lots of build time.
+	// With `--ninja_weight_source=soong`, ninja builds these modules and deps first.
+	HugeModulesMap = map[string]int{
+		"libbt_packets":                           DEFAULT_NINJA_WEIGHT,
+		"libbt_packets_nonapex":                   DEFAULT_NINJA_WEIGHT,
+		"crosvm":                                  DEFAULT_NINJA_WEIGHT,
+		"system-api-stubs-docs-non-updatable":     DEFAULT_NINJA_WEIGHT,
+		"test-api-stubs-docs-non-updatable":       DEFAULT_NINJA_WEIGHT,
+		"module-lib-api-stubs-docs-non-updatable": DEFAULT_NINJA_WEIGHT,
+		"libdevices":                              DEFAULT_NINJA_WEIGHT,
+		"libaom":                                  DEFAULT_NINJA_WEIGHT,
+		"libart-disassembler":                     DEFAULT_NINJA_WEIGHT,
+		"libart":                                  DEFAULT_NINJA_WEIGHT,
+		"libprotobuf":                             DEFAULT_NINJA_WEIGHT,
+		"libsyn":                                  DEFAULT_NINJA_WEIGHT,
+		"api-stubs-docs-non-updatable":            DEFAULT_NINJA_WEIGHT,
+		"framework-res":                           DEFAULT_NINJA_WEIGHT,
+		"SystemUI-core":                           DEFAULT_NINJA_WEIGHT,
+		"services-non-updatable-stubs":            DEFAULT_NINJA_WEIGHT,
+		"art.module.public.api.stubs.source":      DEFAULT_NINJA_WEIGHT,
+		"art.module.intra.core.api.stubs.source":  DEFAULT_NINJA_WEIGHT,
+		"virtmgr":                                 DEFAULT_NINJA_WEIGHT,
+		"metalava":                                DEFAULT_NINJA_WEIGHT,
+		"libkeystore2":                            DEFAULT_NINJA_WEIGHT,
+	}
 )