forked from joejulian/gio-cmd
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 {
|
||||
return err
|
||||
}
|
||||
moduleRoot := moduleRootForDir(bi.pkgDir)
|
||||
var extraJars []string
|
||||
visitedPkgs := make(map[string]bool)
|
||||
var visitPkg func(*packages.Package) error
|
||||
@@ -125,7 +126,7 @@ func buildAndroid(tmpDir string, bi *buildInfo) error {
|
||||
return nil
|
||||
}
|
||||
dir := filepath.Dir(p.GoFiles[0])
|
||||
jars, err := androidExtraJars(dir)
|
||||
jars, err := androidExtraJars(dir, moduleRoot)
|
||||
if err != nil {
|
||||
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
|
||||
for _, pattern := range []string{
|
||||
patterns := []string{
|
||||
filepath.Join(dir, "*.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)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -18,7 +18,7 @@ func TestAndroidExtraJarsIncludesAndroidSubdirectory(t *testing.T) {
|
||||
writeTestFile(t, rootJar, "root")
|
||||
writeTestFile(t, androidJar, "android")
|
||||
|
||||
got, err := androidExtraJars(dir)
|
||||
got, err := androidExtraJars(dir, dir)
|
||||
if err != nil {
|
||||
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) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user