Skip to content

Commit 8f28ed5

Browse files
committed
fix issue 62142 by adding Java/ObjC to generated go.mod and adding a minimum go.mod in said dir
1 parent 2b44d11 commit 8f28ed5

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

cmd/gomobile/bind.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ func packagesConfig(t targetInfo) *packages.Config {
226226
}
227227

228228
// getModuleVersions returns a module information at the directory src.
229-
func getModuleVersions(targetPlatform string, targetArch string, src string) (*modfile.File, error) {
229+
func getModuleVersions(targetPlatform string, targetArch string, src string, dir string) (*modfile.File, error) {
230230
cmd := exec.Command("go", "list")
231231
cmd.Env = append(os.Environ(), "GOOS="+platformOS(targetPlatform), "GOARCH="+targetArch)
232232

@@ -289,6 +289,17 @@ func getModuleVersions(targetPlatform string, targetArch string, src string) (*m
289289
}
290290
}
291291

292+
for _, subdir := range []string{"Java", "ObjC"} {
293+
if _, err := os.Stat(filepath.Join(dir, subdir)); err == nil {
294+
if err := f.AddReplace(subdir, "", filepath.Join(dir, subdir), ""); err != nil {
295+
return nil, err
296+
}
297+
if err := os.WriteFile(filepath.Join(dir, subdir, "go.mod"), []byte("module "+subdir+"\n"), 0644); err != nil {
298+
return nil, err
299+
}
300+
}
301+
}
302+
292303
v, err := ensureGoVersion()
293304
if err != nil {
294305
return nil, err
@@ -316,7 +327,7 @@ func writeGoMod(dir, targetPlatform, targetArch string) error {
316327
}
317328

318329
return writeFile(filepath.Join(dir, "go.mod"), func(w io.Writer) error {
319-
f, err := getModuleVersions(targetPlatform, targetArch, ".")
330+
f, err := getModuleVersions(targetPlatform, targetArch, ".", dir)
320331
if err != nil {
321332
return err
322333
}

0 commit comments

Comments
 (0)