diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go index df8101c22..18cba776b 100644 --- a/cmd/soong_ui/main.go +++ b/cmd/soong_ui/main.go @@ -59,9 +59,6 @@ type command struct { // run the command run func(ctx build.Context, config build.Config, args []string) - - // whether to do common setup before calling run. - doSetup bool } // list of supported commands (flags) supported by soong ui @@ -72,7 +69,6 @@ var commands = []command{ config: build.NewConfig, stdio: stdio, run: runMake, - doSetup: true, }, { flag: "--dumpvar-mode", description: "print the value of the legacy make variable VAR to stdout", @@ -81,7 +77,6 @@ var commands = []command{ config: dumpVarConfig, stdio: customStdio, run: dumpVar, - doSetup: true, }, { flag: "--dumpvars-mode", description: "dump the values of one or more legacy make variables, in shell syntax", @@ -90,7 +85,6 @@ var commands = []command{ config: dumpVarConfig, stdio: customStdio, run: dumpVars, - doSetup: true, }, { flag: "--build-mode", description: "build modules based on the specified build action", @@ -188,12 +182,8 @@ func main() { CriticalPath: criticalPath, }} - freshConfig := func() build.Config { - config := c.config(buildCtx, args...) - config.SetLogsPrefix(c.logsPrefix) - return config - } - config := freshConfig() + config := c.config(buildCtx, args...) + config.SetLogsPrefix(c.logsPrefix) logsDir := config.LogsDir() buildStarted = config.BuildStartedTimeOrDefault(buildStarted) @@ -223,16 +213,6 @@ func main() { log.Verbosef(" [%d] %s", i, arg) } - if c.doSetup { - // We need to call logAndSymlinkSetup before we can do product - // config, which is how we get PRODUCT_CONFIG_RELEASE_MAPS set - // for the final product config for the build. - logAndSymlinkSetup(buildCtx, config) - if build.SetProductReleaseConfigMaps(buildCtx, config) { - config = freshConfig() - } - - } defer func() { stat.Finish() criticalPath.WriteToMetrics(met) @@ -331,6 +311,7 @@ func removeBadTargetRename(ctx build.Context, config build.Config) { } func dumpVar(ctx build.Context, config build.Config, args []string) { + logAndSymlinkSetup(ctx, config) flags := flag.NewFlagSet("dumpvar", flag.ExitOnError) flags.SetOutput(ctx.Writer) @@ -383,6 +364,7 @@ func dumpVar(ctx build.Context, config build.Config, args []string) { } func dumpVars(ctx build.Context, config build.Config, args []string) { + logAndSymlinkSetup(ctx, config) flags := flag.NewFlagSet("dumpvars", flag.ExitOnError) flags.SetOutput(ctx.Writer) @@ -562,6 +544,7 @@ func buildActionConfig(ctx build.Context, args ...string) build.Config { } func runMake(ctx build.Context, config build.Config, _ []string) { + logAndSymlinkSetup(ctx, config) logsDir := config.LogsDir() if config.IsVerbose() { writer := ctx.Writer diff --git a/ui/build/config.go b/ui/build/config.go index ac1bc7cca..b228bb493 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -31,7 +31,6 @@ import ( "time" "android/soong/shared" - "android/soong/ui/metrics" "google.golang.org/protobuf/proto" @@ -466,42 +465,6 @@ func NewBuildActionConfig(action BuildAction, dir string, ctx Context, args ...s return NewConfig(ctx, getConfigArgs(action, dir, ctx, args)...) } -// Prepare for getting make variables. For them to be accurate, we need to have -// obtained PRODUCT_RELEASE_CONFIG_MAPS. -// -// Returns: -// -// Whether config should be called again. -// -// TODO: when converting product config to a declarative language, make sure -// that PRODUCT_RELEASE_CONFIG_MAPS is properly handled as a separate step in -// that process. -func SetProductReleaseConfigMaps(ctx Context, config Config) bool { - ctx.BeginTrace(metrics.RunKati, "SetProductReleaseConfigMaps") - defer ctx.EndTrace() - - if config.SkipConfig() { - // This duplicates the logic from Build to skip product config - // if the user has explicitly said to. - return false - } - - releaseConfigVars := []string{ - "PRODUCT_RELEASE_CONFIG_MAPS", - } - - origValue, _ := config.environ.Get("PRODUCT_RELEASE_CONFIG_MAPS") - // Get the PRODUCT_RELEASE_CONFIG_MAPS for this product, to avoid polluting the environment - // when we run product config to get the rest of the make vars. - releaseMapVars, err := dumpMakeVars(ctx, config, nil, releaseConfigVars, false, "") - if err != nil { - ctx.Fatalln("Error getting PRODUCT_RELEASE_CONFIG_MAPS:", err) - } - productReleaseConfigMaps := releaseMapVars["PRODUCT_RELEASE_CONFIG_MAPS"] - os.Setenv("PRODUCT_RELEASE_CONFIG_MAPS", productReleaseConfigMaps) - return origValue != productReleaseConfigMaps -} - // storeConfigMetrics selects a set of configuration information and store in // the metrics system for further analysis. func storeConfigMetrics(ctx Context, config Config) { diff --git a/ui/build/dumpvars.go b/ui/build/dumpvars.go index d364542c5..efe747819 100644 --- a/ui/build/dumpvars.go +++ b/ui/build/dumpvars.go @@ -191,9 +191,6 @@ func runMakeProductConfig(ctx Context, config Config) { "TARGET_BUILD_APPS", "TARGET_BUILD_UNBUNDLED", - // Additional release config maps - "PRODUCT_RELEASE_CONFIG_MAPS", - // compiler wrappers set up by make "CC_WRAPPER", "CXX_WRAPPER",