diff options
| author | 2023-03-20 11:05:16 +0000 | |
|---|---|---|
| committer | 2023-03-20 11:05:16 +0000 | |
| commit | 8ac7d7d01d78081f4f0e207d74172d6a6549432b (patch) | |
| tree | c0f4b351128ae4a1947933c6f5ea6b0f4b7e32a0 | |
| parent | 502da3987a488307ffab5b5b2cedc119892e40d6 (diff) | |
Revert "Export non-apex variants of modules to make"
This reverts commit 502da3987a488307ffab5b5b2cedc119892e40d6.
Reason for revert: b/274195633
```
In file included from out/soong/installs-aosp_cf_x86_pasan.mk:134984:
In file included from out/soong/Android-aosp_cf_x86_pasan.mk:981696:
In file included from build/make/core/soong_cc_rust_prebuilt.mk:76:
build/make/core/base_rules.mk:342: error: packages/modules/Uwb/service/uci/jni: MODULE.TARGET.SHARED_LIBRARIES.libuwb_uci_jni_rust already defined by packages/modules/Uwb/service/uci/jni.
```
Change-Id: Ic1ea6969e54c23a7d126eb0fb47ab6f2e44ee965
| -rw-r--r-- | android/androidmk.go | 2 | ||||
| -rw-r--r-- | android/apex.go | 2 | ||||
| -rw-r--r-- | android/module.go | 11 | ||||
| -rw-r--r-- | android/packaging_test.go | 44 | ||||
| -rw-r--r-- | cc/cc.go | 9 | ||||
| -rw-r--r-- | cc/installer.go | 4 | ||||
| -rw-r--r-- | cc/library.go | 11 | ||||
| -rw-r--r-- | cc/prebuilt.go | 2 | ||||
| -rw-r--r-- | java/androidmk.go | 6 |
9 files changed, 42 insertions, 49 deletions
diff --git a/android/androidmk.go b/android/androidmk.go index a7b69f668..aa411d116 100644 --- a/android/androidmk.go +++ b/android/androidmk.go @@ -560,8 +560,6 @@ func (a *AndroidMkEntries) fillInEntries(ctx fillInEntriesContext, mod blueprint a.SetPaths("LOCAL_SOONG_INSTALL_SYMLINKS", base.katiSymlinks.InstallPaths().Paths()) } - a.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", base.commonProperties.SkipInstall) - if am, ok := mod.(ApexModule); ok { a.SetBoolIfTrue("LOCAL_NOT_AVAILABLE_FOR_PLATFORM", am.NotAvailableForPlatform()) } diff --git a/android/apex.go b/android/apex.go index a0ac5b862..358818f47 100644 --- a/android/apex.go +++ b/android/apex.go @@ -603,7 +603,7 @@ func CreateApexVariations(mctx BottomUpMutatorContext, module ApexModule) []Modu // Do not install the module for platform, but still allow it to output // uninstallable AndroidMk entries in certain cases when they have side // effects. TODO(jiyong): move this routine to somewhere else - mod.SkipInstall() + mod.MakeUninstallable() } if !platformVariation { mctx.SetVariationProvider(mod, ApexInfoProvider, apexInfos[i-1]) diff --git a/android/module.go b/android/module.go index b45ed9530..773d77be0 100644 --- a/android/module.go +++ b/android/module.go @@ -505,8 +505,8 @@ type Module interface { PartitionTag(DeviceConfig) string HideFromMake() IsHideFromMake() bool - SkipInstall() IsSkipInstall() bool + MakeUninstallable() ReplacedByPrebuilt() IsReplacedByPrebuilt() bool ExportedToMake() bool @@ -1964,6 +1964,15 @@ func (m *ModuleBase) IsSkipInstall() bool { return m.commonProperties.SkipInstall } +// Similar to HideFromMake, but if the AndroidMk entry would set +// LOCAL_UNINSTALLABLE_MODULE then this variant may still output that entry +// rather than leaving it out altogether. That happens in cases where it would +// have other side effects, in particular when it adds a NOTICE file target, +// which other install targets might depend on. +func (m *ModuleBase) MakeUninstallable() { + m.HideFromMake() +} + func (m *ModuleBase) ReplacedByPrebuilt() { m.commonProperties.ReplacedByPrebuilt = true m.HideFromMake() diff --git a/android/packaging_test.go b/android/packaging_test.go index f32d1c396..91ac1f386 100644 --- a/android/packaging_test.go +++ b/android/packaging_test.go @@ -15,7 +15,6 @@ package android import ( - "strings" "testing" "github.com/google/blueprint" @@ -29,8 +28,6 @@ type componentTestModule struct { Deps []string Skip_install *bool } - - builtFile Path } // dep tag used in this test. All dependencies are considered as installable. @@ -51,21 +48,13 @@ func (m *componentTestModule) DepsMutator(ctx BottomUpMutatorContext) { } func (m *componentTestModule) GenerateAndroidBuildActions(ctx ModuleContext) { - m.builtFile = PathForModuleOut(ctx, m.Name()) + builtFile := PathForModuleOut(ctx, m.Name()) dir := ctx.Target().Arch.ArchType.Multilib installDir := PathForModuleInstall(ctx, dir) if proptools.Bool(m.props.Skip_install) { m.SkipInstall() } - ctx.InstallFile(installDir, m.Name(), m.builtFile) -} - -func (m *componentTestModule) AndroidMkEntries() []AndroidMkEntries { - return []AndroidMkEntries{ - { - OutputFile: OptionalPathForPath(m.builtFile), - }, - } + ctx.InstallFile(installDir, m.Name(), builtFile) } // Module that itself is a package @@ -262,35 +251,6 @@ func TestPackagingBaseMultiTarget(t *testing.T) { `, []string{"lib32/foo", "lib64/foo", "lib64/bar"}) } -func TestSkipInstallProducesLocalUninstallableModule(t *testing.T) { - result := GroupFixturePreparers( - PrepareForTestWithArchMutator, - FixtureRegisterWithContext(func(ctx RegistrationContext) { - ctx.RegisterModuleType("component", componentTestModuleFactory) - ctx.RegisterModuleType("package_module", packageTestModuleFactory) - }), - FixtureWithRootAndroidBp(` -component { - name: "foo", - skip_install: true, -} - -package_module { - name: "package", - deps: ["foo"], -} -`), - ).RunTest(t) - module := result.ModuleForTests("foo", "android_arm64_armv8-a").Module().(*componentTestModule) - entries := AndroidMkEntriesForTest(t, result.TestContext, module) - builder := &strings.Builder{} - entries[0].write(builder) - androidMkString := builder.String() - if !strings.Contains(androidMkString, "LOCAL_UNINSTALLABLE_MODULE := true") { - t.Errorf("Expected android mk entries to contain \"LOCAL_UNINSTALLABLE_MODULE := true\", got: \n%s", androidMkString) - } -} - func TestPackagingBaseSingleTarget(t *testing.T) { multiTarget := false runPackagingTest(t, multiTarget, @@ -609,6 +609,7 @@ type installer interface { inSanitizerDir() bool hostToolPath() android.OptionalPath relativeInstallPath() string + makeUninstallable(mod *Module) installInRoot() bool } @@ -3534,6 +3535,14 @@ func (c *Module) InstallInRecovery() bool { return c.InRecovery() } +func (c *Module) MakeUninstallable() { + if c.installer == nil { + c.ModuleBase.MakeUninstallable() + return + } + c.installer.makeUninstallable(c) +} + func (c *Module) HostToolPath() android.OptionalPath { if c.installer == nil { return android.OptionalPath{} diff --git a/cc/installer.go b/cc/installer.go index c3618b7c1..e2c0e7b8d 100644 --- a/cc/installer.go +++ b/cc/installer.go @@ -121,6 +121,10 @@ func (installer *baseInstaller) relativeInstallPath() string { return String(installer.Properties.Relative_install_path) } +func (installer *baseInstaller) makeUninstallable(mod *Module) { + mod.ModuleBase.MakeUninstallable() +} + func (installer *baseInstaller) installInRoot() bool { return Bool(installer.Properties.Install_in_root) } diff --git a/cc/library.go b/cc/library.go index 574c4c32a..27f06230b 100644 --- a/cc/library.go +++ b/cc/library.go @@ -2439,6 +2439,17 @@ func (library *libraryDecorator) installable() *bool { return nil } +func (library *libraryDecorator) makeUninstallable(mod *Module) { + if library.static() && library.buildStatic() && !library.buildStubs() { + // If we're asked to make a static library uninstallable we don't do + // anything since AndroidMkEntries always sets LOCAL_UNINSTALLABLE_MODULE + // for these entries. This is done to still get the make targets for NOTICE + // files from notice_files.mk, which other libraries might depend on. + return + } + mod.ModuleBase.MakeUninstallable() +} + func (library *libraryDecorator) getPartition() string { return library.path.Partition() } diff --git a/cc/prebuilt.go b/cc/prebuilt.go index c237d751f..5b7ba4346 100644 --- a/cc/prebuilt.go +++ b/cc/prebuilt.go @@ -214,7 +214,7 @@ func (p *prebuiltLibraryLinker) link(ctx ModuleContext, // without the prefix hack below. if p.hasStubsVariants() && !p.buildStubs() && !ctx.Host() && !strings.HasPrefix(ctx.baseModuleName(), "libclang_rt.") { - ctx.Module().SkipInstall() + ctx.Module().MakeUninstallable() } return outputFile diff --git a/java/androidmk.go b/java/androidmk.go index d73ff4616..a4dac80d4 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -76,6 +76,9 @@ func (library *Library) AndroidMkEntries() []android.AndroidMkEntries { entriesList = append(entriesList, dexpreoptEntries...) } entriesList = append(entriesList, android.AndroidMkEntries{Disabled: true}) + } else if !library.ApexModuleBase.AvailableFor(android.AvailableToPlatform) { + // Platform variant. If not available for the platform, we don't need Make module. + entriesList = append(entriesList, android.AndroidMkEntries{Disabled: true}) } else { entriesList = append(entriesList, android.AndroidMkEntries{ Class: "JAVA_LIBRARIES", @@ -91,8 +94,7 @@ func (library *Library) AndroidMkEntries() []android.AndroidMkEntries { entries.AddStrings("LOCAL_LOGTAGS_FILES", logtags...) } - if library.installFile == nil || !library.ApexModuleBase.AvailableFor(android.AvailableToPlatform) { - // If the ApexModule is not available for the platform, it shouldn't be installed. + if library.installFile == nil { entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", true) } if library.dexJarFile.IsSet() { |