From 5ea9bcc50be4259de861e9bced4681881c276611 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jul 2017 15:41:32 -0700 Subject: [PATCH 1/3] Fix java prebuilts The java prebuilt tests weren't registering the prebuilts mutators, which hid an issue where prebuilts modules weren't getting renamed to avoid collisions with source modules of the same name, which ended up causing the prebuilt module to try to add a dependency on itself. Test: java_test.go Change-Id: I3327d27533591cb08a4b8b8b5e1668a6f72be8df --- android/mutator.go | 4 ++-- android/prebuilt.go | 4 ++-- android/prebuilt_test.go | 4 ++-- java/java.go | 4 ++++ java/java_test.go | 2 ++ 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/android/mutator.go b/android/mutator.go index c8f3e8fee..e20bc2ce2 100644 --- a/android/mutator.go +++ b/android/mutator.go @@ -74,7 +74,7 @@ var preArch = []RegisterMutatorFunc{ func(ctx RegisterMutatorsContext) { ctx.TopDown("load_hooks", loadHookMutator).Parallel() }, - registerPrebuiltsPreArchMutators, + RegisterPrebuiltsPreArchMutators, RegisterDefaultsPreArchMutators, } @@ -86,7 +86,7 @@ var preDeps = []RegisterMutatorFunc{ } var postDeps = []RegisterMutatorFunc{ - registerPrebuiltsPostDepsMutators, + RegisterPrebuiltsPostDepsMutators, } func PreArchMutators(f RegisterMutatorFunc) { diff --git a/android/prebuilt.go b/android/prebuilt.go index 080df919d..507aa5fbe 100644 --- a/android/prebuilt.go +++ b/android/prebuilt.go @@ -61,11 +61,11 @@ type PrebuiltInterface interface { Prebuilt() *Prebuilt } -func registerPrebuiltsPreArchMutators(ctx RegisterMutatorsContext) { +func RegisterPrebuiltsPreArchMutators(ctx RegisterMutatorsContext) { ctx.BottomUp("prebuilts", prebuiltMutator).Parallel() } -func registerPrebuiltsPostDepsMutators(ctx RegisterMutatorsContext) { +func RegisterPrebuiltsPostDepsMutators(ctx RegisterMutatorsContext) { ctx.TopDown("prebuilt_select", PrebuiltSelectModuleMutator).Parallel() ctx.BottomUp("prebuilt_replace", PrebuiltReplaceMutator).Parallel() } diff --git a/android/prebuilt_test.go b/android/prebuilt_test.go index fe763eddc..774a15c6b 100644 --- a/android/prebuilt_test.go +++ b/android/prebuilt_test.go @@ -123,8 +123,8 @@ func TestPrebuilts(t *testing.T) { for _, test := range prebuiltsTests { t.Run(test.name, func(t *testing.T) { ctx := NewTestContext() - ctx.PreArchMutators(registerPrebuiltsPreArchMutators) - ctx.PostDepsMutators(registerPrebuiltsPostDepsMutators) + ctx.PreArchMutators(RegisterPrebuiltsPreArchMutators) + ctx.PostDepsMutators(RegisterPrebuiltsPostDepsMutators) ctx.RegisterModuleType("prebuilt", ModuleFactoryAdaptor(newPrebuiltModule)) ctx.RegisterModuleType("source", ModuleFactoryAdaptor(newSourceModule)) ctx.Register() diff --git a/java/java.go b/java/java.go index 1ef1c2661..f7191bfbc 100644 --- a/java/java.go +++ b/java/java.go @@ -531,6 +531,10 @@ func (j *Prebuilt) Prebuilt() *android.Prebuilt { return &j.prebuilt } +func (j *Prebuilt) Name() string { + return j.prebuilt.Name(j.ModuleBase.Name()) +} + func (j *Prebuilt) DepsMutator(ctx android.BottomUpMutatorContext) { } diff --git a/java/java_test.go b/java/java_test.go index 344361058..de3be494a 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -57,6 +57,8 @@ func testJava(t *testing.T, bp string) *android.TestContext { ctx.RegisterModuleType("java_library", android.ModuleFactoryAdaptor(LibraryFactory)) ctx.RegisterModuleType("java_prebuilt_library", android.ModuleFactoryAdaptor(PrebuiltFactory)) ctx.RegisterModuleType("java_defaults", android.ModuleFactoryAdaptor(defaultsFactory)) + ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators) + ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators) ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators) ctx.Register() From 44bc7456e2330b71132e36e40ed1ac5ffc8b7984 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jul 2017 15:45:47 -0700 Subject: [PATCH 2/3] Export java modules to make Export java modules as prebuilts to makefiles. Test: manual Change-Id: I35de5d9398245beff4492c8c7be76251d7a175b1 --- java/androidmk.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/java/androidmk.go b/java/androidmk.go index 086ba7a1f..9ccf8561d 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -15,21 +15,17 @@ package java import ( - "fmt" - "android/soong/android" ) -func (*Library) AndroidMk() (ret android.AndroidMkData, err error) { +func (library *Library) AndroidMk() (ret android.AndroidMkData, err error) { ret.Class = "JAVA_LIBRARIES" - // TODO - err = fmt.Errorf("Not yet implemented") + ret.OutputFile = android.OptionalPathForPath(library.outputFile) return } -func (*Prebuilt) AndroidMk() (ret android.AndroidMkData, err error) { +func (prebuilt *Prebuilt) AndroidMk() (ret android.AndroidMkData, err error) { ret.Class = "JAVA_LIBRARIES" - // TODO - err = fmt.Errorf("Not yet implemented") + ret.OutputFile = android.OptionalPathForPath(prebuilt.classpathFile) return } From b3af348dc03189ec12f35f8506bf6259de65e56e Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jul 2017 15:45:57 -0700 Subject: [PATCH 3/3] Add prebuilts/misc to root.bp Test: manual Change-Id: I047d103b7df9e93923908cb0b84084eb016f20a4 --- root.bp | 1 + 1 file changed, 1 insertion(+) diff --git a/root.bp b/root.bp index 08f2ff887..7e22a550b 100644 --- a/root.bp +++ b/root.bp @@ -29,6 +29,7 @@ optional_subdirs = [ "prebuilts/clang/host/linux-x86", "prebuilts/ndk", "prebuilts/sdk", + "prebuilts/misc", "system/*", "system/hardware/interfaces", "system/tools/*",