Loading mk2rbc/mk2rbc.go +23 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,21 @@ var ignoredDefines = map[string]bool{ var identifierFullMatchRegex = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") func RelativeToCwd(path string) (string, error) { cwd, err := os.Getwd() if err != nil { return "", err } path, err = filepath.Rel(cwd, path) if err != nil { return "", err } if strings.HasPrefix(path, "../") { return "", fmt.Errorf("Could not make path relative to current working directory: " + path) } return path, nil } // Conversion request parameters type Request struct { MkFile string // file to convert Loading Loading @@ -320,6 +335,14 @@ func (gctx *generationContext) emitPreamble() { loadedSubConfigs := make(map[string]string) for _, mi := range gctx.starScript.inherited { uri := mi.path if strings.HasPrefix(uri, "/") && !strings.HasPrefix(uri, "//") { var err error uri, err = RelativeToCwd(uri) if err != nil { panic(err) } uri = "//" + uri } if m, ok := loadedSubConfigs[uri]; ok { // No need to emit load statement, but fix module name. mi.moduleLocalName = m Loading mk2rbc/mk2rbc/mk2rbc.go +11 −2 Original line number Diff line number Diff line Loading @@ -187,7 +187,7 @@ func main() { quit(fmt.Errorf("the product launcher input variables file failed to convert")) } err := writeGenerated(*launcher, mk2rbc.Launcher(outputFilePath(files[0]), outputFilePath(*inputVariables), err := writeGenerated(*launcher, mk2rbc.Launcher(outputModulePath(files[0]), outputModulePath(*inputVariables), mk2rbc.MakePath2ModuleName(files[0]))) if err != nil { fmt.Fprintf(os.Stderr, "%s: %s", files[0], err) Loading @@ -205,7 +205,7 @@ func main() { quit(fmt.Errorf("the board launcher input variables file failed to convert")) } err := writeGenerated(*boardlauncher, mk2rbc.BoardLauncher( outputFilePath(files[0]), outputFilePath(*inputVariables))) outputModulePath(files[0]), outputModulePath(*inputVariables))) if err != nil { fmt.Fprintf(os.Stderr, "%s: %s", files[0], err) ok = false Loading Loading @@ -402,6 +402,15 @@ func outputFilePath(mkFile string) string { return path } func outputModulePath(mkFile string) string { path := outputFilePath(mkFile) path, err := mk2rbc.RelativeToCwd(path) if err != nil { panic(err) } return "//" + path } func writeGenerated(path string, contents string) error { if err := os.MkdirAll(filepath.Dir(path), os.ModeDir|os.ModePerm); err != nil { return err Loading mk2rbc/soong_variables_test.go +2 −2 Original line number Diff line number Diff line Loading @@ -42,8 +42,8 @@ func TestSoongVariables(t *testing.T) { {"BUILD_ID", VarClassSoong, starlarkTypeString}, {"PLATFORM_SDK_VERSION", VarClassSoong, starlarkTypeInt}, {"DEVICE_PACKAGE_OVERLAYS", VarClassSoong, starlarkTypeList}, {"ENABLE_CFI", VarClassSoong, starlarkTypeBool}, {"ENABLE_PREOPT", VarClassSoong, starlarkTypeBool}, {"ENABLE_CFI", VarClassSoong, starlarkTypeString}, {"ENABLE_PREOPT", VarClassSoong, starlarkTypeString}, }} if !reflect.DeepEqual(expected, actual) { t.Errorf("\nExpected: %v\n Actual: %v", expected, actual) Loading Loading
mk2rbc/mk2rbc.go +23 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,21 @@ var ignoredDefines = map[string]bool{ var identifierFullMatchRegex = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") func RelativeToCwd(path string) (string, error) { cwd, err := os.Getwd() if err != nil { return "", err } path, err = filepath.Rel(cwd, path) if err != nil { return "", err } if strings.HasPrefix(path, "../") { return "", fmt.Errorf("Could not make path relative to current working directory: " + path) } return path, nil } // Conversion request parameters type Request struct { MkFile string // file to convert Loading Loading @@ -320,6 +335,14 @@ func (gctx *generationContext) emitPreamble() { loadedSubConfigs := make(map[string]string) for _, mi := range gctx.starScript.inherited { uri := mi.path if strings.HasPrefix(uri, "/") && !strings.HasPrefix(uri, "//") { var err error uri, err = RelativeToCwd(uri) if err != nil { panic(err) } uri = "//" + uri } if m, ok := loadedSubConfigs[uri]; ok { // No need to emit load statement, but fix module name. mi.moduleLocalName = m Loading
mk2rbc/mk2rbc/mk2rbc.go +11 −2 Original line number Diff line number Diff line Loading @@ -187,7 +187,7 @@ func main() { quit(fmt.Errorf("the product launcher input variables file failed to convert")) } err := writeGenerated(*launcher, mk2rbc.Launcher(outputFilePath(files[0]), outputFilePath(*inputVariables), err := writeGenerated(*launcher, mk2rbc.Launcher(outputModulePath(files[0]), outputModulePath(*inputVariables), mk2rbc.MakePath2ModuleName(files[0]))) if err != nil { fmt.Fprintf(os.Stderr, "%s: %s", files[0], err) Loading @@ -205,7 +205,7 @@ func main() { quit(fmt.Errorf("the board launcher input variables file failed to convert")) } err := writeGenerated(*boardlauncher, mk2rbc.BoardLauncher( outputFilePath(files[0]), outputFilePath(*inputVariables))) outputModulePath(files[0]), outputModulePath(*inputVariables))) if err != nil { fmt.Fprintf(os.Stderr, "%s: %s", files[0], err) ok = false Loading Loading @@ -402,6 +402,15 @@ func outputFilePath(mkFile string) string { return path } func outputModulePath(mkFile string) string { path := outputFilePath(mkFile) path, err := mk2rbc.RelativeToCwd(path) if err != nil { panic(err) } return "//" + path } func writeGenerated(path string, contents string) error { if err := os.MkdirAll(filepath.Dir(path), os.ModeDir|os.ModePerm); err != nil { return err Loading
mk2rbc/soong_variables_test.go +2 −2 Original line number Diff line number Diff line Loading @@ -42,8 +42,8 @@ func TestSoongVariables(t *testing.T) { {"BUILD_ID", VarClassSoong, starlarkTypeString}, {"PLATFORM_SDK_VERSION", VarClassSoong, starlarkTypeInt}, {"DEVICE_PACKAGE_OVERLAYS", VarClassSoong, starlarkTypeList}, {"ENABLE_CFI", VarClassSoong, starlarkTypeBool}, {"ENABLE_PREOPT", VarClassSoong, starlarkTypeBool}, {"ENABLE_CFI", VarClassSoong, starlarkTypeString}, {"ENABLE_PREOPT", VarClassSoong, starlarkTypeString}, }} if !reflect.DeepEqual(expected, actual) { t.Errorf("\nExpected: %v\n Actual: %v", expected, actual) Loading