Share version settings with product config makefile.
Generate version settings from build/make/core/version_defaults.mk.
The generated settings are then loaded into the launcher code and passed
to the environment setup code.
Bug: 198995713
Test: internal
Change-Id: I66131d2c5b232784a9ff0bba9fbd5db62302aaba
diff --git a/mk2rbc/cmd/mk2rbc.go b/mk2rbc/cmd/mk2rbc.go
index 209e82b..7b5f298 100644
--- a/mk2rbc/cmd/mk2rbc.go
+++ b/mk2rbc/cmd/mk2rbc.go
@@ -81,6 +81,7 @@
var tracedVariables []string
var errorLogger = errorsByType{data: make(map[string]datum)}
var makefileFinder = &LinuxMakefileFinder{}
+var versionDefaultsMk = filepath.Join("build", "make", "core", "version_defaults.mk")
func main() {
flag.Usage = func() {
@@ -165,13 +166,24 @@
quit(fmt.Errorf("cannot generate configuration launcher for %s, it is not a known product",
product))
}
+ versionDefaults, err := generateVersionDefaults()
+ if err != nil {
+ quit(err)
+ }
ok = convertOne(path) && ok
- err := writeGenerated(*launcher, mk2rbc.Launcher(outputFilePath(path), mk2rbc.MakePath2ModuleName(path)))
+ versionDefaultsPath := outputFilePath(versionDefaultsMk)
+ err = writeGenerated(versionDefaultsPath, versionDefaults)
if err != nil {
fmt.Fprintf(os.Stderr, "%s:%s", path, err)
ok = false
}
+ err = writeGenerated(*launcher, mk2rbc.Launcher(outputFilePath(path), versionDefaultsPath,
+ mk2rbc.MakePath2ModuleName(path)))
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "%s:%s", path, err)
+ ok = false
+ }
} else {
files := flag.Args()
if *allInSource {
@@ -194,6 +206,15 @@
}
}
+func generateVersionDefaults() (string, error) {
+ versionSettings, err := mk2rbc.ParseVersionDefaults(filepath.Join(*rootDir, versionDefaultsMk))
+ if err != nil {
+ return "", err
+ }
+ return mk2rbc.VersionDefaults(versionSettings), nil
+
+}
+
func quit(s interface{}) {
fmt.Fprintln(os.Stderr, s)
os.Exit(2)