mirror of
https://git.sr.ht/~eliasnaur/gio-cmd
synced 2026-07-06 01:45:32 +00:00
gogio: load module-root Android jars
This commit is contained in:
+12
-4
@@ -117,6 +117,7 @@ func buildAndroid(tmpDir string, bi *buildInfo) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
moduleRoot := moduleRootForDir(bi.pkgDir)
|
||||||
var extraJars []string
|
var extraJars []string
|
||||||
visitedPkgs := make(map[string]bool)
|
visitedPkgs := make(map[string]bool)
|
||||||
var visitPkg func(*packages.Package) error
|
var visitPkg func(*packages.Package) error
|
||||||
@@ -125,7 +126,7 @@ func buildAndroid(tmpDir string, bi *buildInfo) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
dir := filepath.Dir(p.GoFiles[0])
|
dir := filepath.Dir(p.GoFiles[0])
|
||||||
jars, err := androidExtraJars(dir)
|
jars, err := androidExtraJars(dir, moduleRoot)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -825,12 +826,19 @@ func copyTree(src, dst string) error {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func androidExtraJars(dir string) ([]string, error) {
|
func androidExtraJars(dir, moduleRoot string) ([]string, error) {
|
||||||
var jars []string
|
var jars []string
|
||||||
for _, pattern := range []string{
|
patterns := []string{
|
||||||
filepath.Join(dir, "*.jar"),
|
filepath.Join(dir, "*.jar"),
|
||||||
filepath.Join(dir, "android", "*.jar"),
|
filepath.Join(dir, "android", "*.jar"),
|
||||||
} {
|
}
|
||||||
|
if moduleRoot != "" && moduleRoot != dir {
|
||||||
|
patterns = append(patterns,
|
||||||
|
filepath.Join(moduleRoot, "*.jar"),
|
||||||
|
filepath.Join(moduleRoot, "android", "*.jar"),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
for _, pattern := range patterns {
|
||||||
matches, err := filepath.Glob(pattern)
|
matches, err := filepath.Glob(pattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ func TestAndroidExtraJarsIncludesAndroidSubdirectory(t *testing.T) {
|
|||||||
writeTestFile(t, rootJar, "root")
|
writeTestFile(t, rootJar, "root")
|
||||||
writeTestFile(t, androidJar, "android")
|
writeTestFile(t, androidJar, "android")
|
||||||
|
|
||||||
got, err := androidExtraJars(dir)
|
got, err := androidExtraJars(dir, dir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("androidExtraJars() error = %v", err)
|
t.Fatalf("androidExtraJars() error = %v", err)
|
||||||
}
|
}
|
||||||
@@ -30,6 +30,26 @@ func TestAndroidExtraJarsIncludesAndroidSubdirectory(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAndroidExtraJarsIncludesModuleRootAndroidSubdirectory(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
root := t.TempDir()
|
||||||
|
dir := filepath.Join(root, "cmd", "keepassgo")
|
||||||
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
||||||
|
t.Fatalf("MkdirAll(%q) error = %v", dir, err)
|
||||||
|
}
|
||||||
|
moduleAndroidJar := filepath.Join(root, "android", "keepassgo-android.jar")
|
||||||
|
writeTestFile(t, moduleAndroidJar, "module-android")
|
||||||
|
|
||||||
|
got, err := androidExtraJars(dir, root)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("androidExtraJars() error = %v", err)
|
||||||
|
}
|
||||||
|
if !containsString(got, moduleAndroidJar) {
|
||||||
|
t.Fatalf("androidExtraJars() = %v, want %q included", got, moduleAndroidJar)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRenderAndroidManifestIncludesOptionalSnippets(t *testing.T) {
|
func TestRenderAndroidManifestIncludesOptionalSnippets(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user