Loading mk2rbc/cmd/mk2rbc.go +23 −5 Original line number Diff line number Diff line Loading @@ -53,10 +53,12 @@ var ( // TODO(asmundak): this option is for debugging allInSource = flag.Bool("all", false, "convert all product config makefiles in the tree under //") outputTop = flag.String("outdir", "", "write output files into this directory hierarchy") launcher = flag.String("launcher", "", "generated launcher path. If set, the non-flag argument is _product_name_") launcher = flag.String("launcher", "", "generated launcher path.") boardlauncher = flag.String("boardlauncher", "", "generated board configuration launcher path.") printProductConfigMap = flag.Bool("print_product_config_map", false, "print product config map and exit") cpuProfile = flag.String("cpu_profile", "", "write cpu profile to file") traceCalls = flag.Bool("trace_calls", false, "trace function calls") inputVariables = flag.String("input_variables", "", "starlark file containing product config and global variables") ) func init() { Loading Loading @@ -87,8 +89,7 @@ func main() { flag.Usage = func() { cmd := filepath.Base(os.Args[0]) fmt.Fprintf(flag.CommandLine.Output(), "Usage: %[1]s flags file...\n"+ "or: %[1]s flags --launcher=PATH PRODUCT\n", cmd) "Usage: %[1]s flags file...\n", cmd) flag.PrintDefaults() } flag.Parse() Loading Loading @@ -188,6 +189,23 @@ func main() { ok = false } } if *boardlauncher != "" { if len(files) != 1 { quit(fmt.Errorf("a launcher can be generated only for a single product")) } if *inputVariables == "" { quit(fmt.Errorf("the board launcher requires an input variables file")) } if !convertOne(*inputVariables) { quit(fmt.Errorf("the board launcher input variables file failed to convert")) } err := writeGenerated(*boardlauncher, mk2rbc.BoardLauncher( outputFilePath(files[0]), outputFilePath(*inputVariables))) if err != nil { fmt.Fprintf(os.Stderr, "%s: %s", files[0], err) ok = false } } printStats() if *errstat { Loading mk2rbc/mk2rbc.go +13 −0 Original line number Diff line number Diff line Loading @@ -52,7 +52,9 @@ const ( // And here are the functions and variables: cfnGetCfg = baseName + ".cfg" cfnMain = baseName + ".product_configuration" cfnBoardMain = baseName + ".board_configuration" cfnPrintVars = baseName + ".printvars" cfnPrintGlobals = baseName + ".printglobals" cfnWarning = baseName + ".warning" cfnLocalAppend = baseName + ".local_append" cfnLocalSetDefault = baseName + ".local_set_default" Loading Loading @@ -1702,6 +1704,17 @@ func Launcher(mainModuleUri, versionDefaultsUri, mainModuleName string) string { return buf.String() } func BoardLauncher(mainModuleUri string, inputVariablesUri string) string { var buf bytes.Buffer fmt.Fprintf(&buf, "load(%q, %q)\n", baseUri, baseName) fmt.Fprintf(&buf, "load(%q, \"init\")\n", mainModuleUri) fmt.Fprintf(&buf, "load(%q, input_variables_init = \"init\")\n", inputVariablesUri) fmt.Fprintf(&buf, "globals, cfg, globals_base = %s(init, input_variables_init)\n", cfnBoardMain) fmt.Fprintf(&buf, "# TODO: Some product config variables need to be printed, but most are readonly so we can't just print cfg here.\n") fmt.Fprintf(&buf, "%s(globals, globals_base)\n", cfnPrintGlobals) return buf.String() } func MakePath2ModuleName(mkPath string) string { return strings.TrimSuffix(mkPath, filepath.Ext(mkPath)) } Loading
mk2rbc/cmd/mk2rbc.go +23 −5 Original line number Diff line number Diff line Loading @@ -53,10 +53,12 @@ var ( // TODO(asmundak): this option is for debugging allInSource = flag.Bool("all", false, "convert all product config makefiles in the tree under //") outputTop = flag.String("outdir", "", "write output files into this directory hierarchy") launcher = flag.String("launcher", "", "generated launcher path. If set, the non-flag argument is _product_name_") launcher = flag.String("launcher", "", "generated launcher path.") boardlauncher = flag.String("boardlauncher", "", "generated board configuration launcher path.") printProductConfigMap = flag.Bool("print_product_config_map", false, "print product config map and exit") cpuProfile = flag.String("cpu_profile", "", "write cpu profile to file") traceCalls = flag.Bool("trace_calls", false, "trace function calls") inputVariables = flag.String("input_variables", "", "starlark file containing product config and global variables") ) func init() { Loading Loading @@ -87,8 +89,7 @@ func main() { flag.Usage = func() { cmd := filepath.Base(os.Args[0]) fmt.Fprintf(flag.CommandLine.Output(), "Usage: %[1]s flags file...\n"+ "or: %[1]s flags --launcher=PATH PRODUCT\n", cmd) "Usage: %[1]s flags file...\n", cmd) flag.PrintDefaults() } flag.Parse() Loading Loading @@ -188,6 +189,23 @@ func main() { ok = false } } if *boardlauncher != "" { if len(files) != 1 { quit(fmt.Errorf("a launcher can be generated only for a single product")) } if *inputVariables == "" { quit(fmt.Errorf("the board launcher requires an input variables file")) } if !convertOne(*inputVariables) { quit(fmt.Errorf("the board launcher input variables file failed to convert")) } err := writeGenerated(*boardlauncher, mk2rbc.BoardLauncher( outputFilePath(files[0]), outputFilePath(*inputVariables))) if err != nil { fmt.Fprintf(os.Stderr, "%s: %s", files[0], err) ok = false } } printStats() if *errstat { Loading
mk2rbc/mk2rbc.go +13 −0 Original line number Diff line number Diff line Loading @@ -52,7 +52,9 @@ const ( // And here are the functions and variables: cfnGetCfg = baseName + ".cfg" cfnMain = baseName + ".product_configuration" cfnBoardMain = baseName + ".board_configuration" cfnPrintVars = baseName + ".printvars" cfnPrintGlobals = baseName + ".printglobals" cfnWarning = baseName + ".warning" cfnLocalAppend = baseName + ".local_append" cfnLocalSetDefault = baseName + ".local_set_default" Loading Loading @@ -1702,6 +1704,17 @@ func Launcher(mainModuleUri, versionDefaultsUri, mainModuleName string) string { return buf.String() } func BoardLauncher(mainModuleUri string, inputVariablesUri string) string { var buf bytes.Buffer fmt.Fprintf(&buf, "load(%q, %q)\n", baseUri, baseName) fmt.Fprintf(&buf, "load(%q, \"init\")\n", mainModuleUri) fmt.Fprintf(&buf, "load(%q, input_variables_init = \"init\")\n", inputVariablesUri) fmt.Fprintf(&buf, "globals, cfg, globals_base = %s(init, input_variables_init)\n", cfnBoardMain) fmt.Fprintf(&buf, "# TODO: Some product config variables need to be printed, but most are readonly so we can't just print cfg here.\n") fmt.Fprintf(&buf, "%s(globals, globals_base)\n", cfnPrintGlobals) return buf.String() } func MakePath2ModuleName(mkPath string) string { return strings.TrimSuffix(mkPath, filepath.Ext(mkPath)) }