Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c125769 authored by Kousik Kumar's avatar Kousik Kumar
Browse files

resolve merge conflicts of 233c1be0 to rvc-dev

Bug: b/194679562

Change-Id: Icb42c43c1b4c8018b1402bd508271a0d4a052b14
Merged-In: I416e8da75f84aa2b53995f525cf50501488dc972
parents 6874a5b8 233c1be0
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -16,8 +16,10 @@ package main

import (
	"context"
	"encoding/json"
	"flag"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strconv"
@@ -32,6 +34,11 @@ import (
	"android/soong/ui/tracer"
)

const (
	configDir  = "vendor/google/tools/soong_config"
	jsonSuffix = "json"
)

// A command represents an operation to be executed in the soong build
// system.
type command struct {
@@ -110,6 +117,34 @@ func inList(s string, list []string) bool {
	return indexList(s, list) != -1
}

func loadEnvConfig() error {
	bc := os.Getenv("ANDROID_BUILD_ENVIRONMENT_CONFIG")
	if bc == "" {
		return nil
	}
	cfgFile := filepath.Join(os.Getenv("TOP"), configDir, fmt.Sprintf("%s.%s", bc, jsonSuffix))

	envVarsJSON, err := ioutil.ReadFile(cfgFile)
	if err != nil {
		fmt.Fprintf(os.Stderr, "\033[33mWARNING:\033[0m failed to open config file %s: %s\n", cfgFile, err.Error())
		return nil
	}

	var envVars map[string]map[string]string
	if err := json.Unmarshal(envVarsJSON, &envVars); err != nil {
		return fmt.Errorf("env vars config file: %s did not parse correctly: %s", cfgFile, err.Error())
	}
	for k, v := range envVars["env"] {
		if os.Getenv(k) != "" {
			continue
		}
		if err := os.Setenv(k, v); err != nil {
			return err
		}
	}
	return nil
}

// Main execution of soong_ui. The command format is as follows:
//
//    soong_ui <command> [<arg 1> <arg 2> ... <arg n>]
@@ -163,6 +198,12 @@ func main() {

	config := c.config(buildCtx, args...)

	if err := loadEnvConfig(); err != nil {
		fmt.Fprintf(os.Stderr, "failed to parse env config files: %v", err)
		os.Exit(1)
	}


	build.SetupOutDir(buildCtx, config)

	logsDir := config.OutDir()