Remove "flattened" apexes
Now soong doesn't build "flattened" apexes. Bug: 279835185 Test: m nothing (soong tests) Test: m && launch_cvd (cuttlefish) Change-Id: Id3c540ece1a15cecacc185da9aa17285edd2f493
This commit is contained in:
@@ -85,16 +85,12 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexBundleName, moduleDir st
|
||||
// conflicts between two apexes with the same apexName.
|
||||
|
||||
moduleNames := []string{}
|
||||
apexType := a.properties.ApexType
|
||||
// To avoid creating duplicate build rules, run this function only when primaryApexType is true
|
||||
// to install symbol files in $(PRODUCT_OUT}/apex.
|
||||
// And if apexType is flattened, run this function to install files in $(PRODUCT_OUT}/system/apex.
|
||||
if !a.primaryApexType && apexType != flattenedApex {
|
||||
if !a.primaryApexType {
|
||||
return moduleNames
|
||||
}
|
||||
|
||||
seenDataOutPaths := make(map[string]bool)
|
||||
|
||||
for _, fi := range a.filesInfo {
|
||||
linkToSystemLib := a.linkToSystemLib && fi.transitiveDep && fi.availableToPlatform()
|
||||
moduleName := a.fullModuleName(apexBundleName, linkToSystemLib, &fi)
|
||||
@@ -131,33 +127,13 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexBundleName, moduleDir st
|
||||
}
|
||||
// /apex/<apexBundleName>/{lib|framework|...}
|
||||
pathForSymbol := filepath.Join("$(PRODUCT_OUT)", "apex", apexBundleName, fi.installDir)
|
||||
var modulePath string
|
||||
if apexType == flattenedApex {
|
||||
// /system/apex/<apexBundleName>/{lib|framework|...}
|
||||
modulePath = filepath.Join(a.installDir.String(), apexBundleName, fi.installDir)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", modulePath)
|
||||
if a.primaryApexType {
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_SYMBOL_PATH :=", pathForSymbol)
|
||||
}
|
||||
android.AndroidMkEmitAssignList(w, "LOCAL_MODULE_SYMLINKS", fi.symlinks)
|
||||
newDataPaths := []android.DataPath{}
|
||||
for _, path := range fi.dataPaths {
|
||||
dataOutPath := modulePath + ":" + path.SrcPath.Rel()
|
||||
if ok := seenDataOutPaths[dataOutPath]; !ok {
|
||||
newDataPaths = append(newDataPaths, path)
|
||||
seenDataOutPaths[dataOutPath] = true
|
||||
}
|
||||
}
|
||||
android.AndroidMkEmitAssignList(w, "LOCAL_TEST_DATA", android.AndroidMkDataPaths(newDataPaths))
|
||||
} else {
|
||||
modulePath = pathForSymbol
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", modulePath)
|
||||
modulePath := pathForSymbol
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", modulePath)
|
||||
|
||||
// For non-flattend APEXes, the merged notice file is attached to the APEX itself.
|
||||
// We don't need to have notice file for the individual modules in it. Otherwise,
|
||||
// we will have duplicated notice entries.
|
||||
fmt.Fprintln(w, "LOCAL_NO_NOTICE_FILE := true")
|
||||
}
|
||||
// For non-flattend APEXes, the merged notice file is attached to the APEX itself.
|
||||
// We don't need to have notice file for the individual modules in it. Otherwise,
|
||||
// we will have duplicated notice entries.
|
||||
fmt.Fprintln(w, "LOCAL_NO_NOTICE_FILE := true")
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_INSTALLED_MODULE :=", filepath.Join(modulePath, fi.stem()))
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_INSTALL_PAIRS :=", fi.builtFile.String()+":"+filepath.Join(modulePath, fi.stem()))
|
||||
fmt.Fprintln(w, "LOCAL_PREBUILT_MODULE_FILE :=", fi.builtFile.String())
|
||||
@@ -257,31 +233,6 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexBundleName, moduleDir st
|
||||
fmt.Fprintln(w, "include $(BUILD_SYSTEM)/soong_cc_rust_prebuilt.mk")
|
||||
default:
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", fi.stem())
|
||||
if fi.builtFile == a.manifestPbOut && apexType == flattenedApex {
|
||||
if a.primaryApexType {
|
||||
// To install companion files (init_rc, vintf_fragments)
|
||||
// Copy some common properties of apexBundle to apex_manifest
|
||||
commonProperties := []string{
|
||||
"LOCAL_FULL_INIT_RC", "LOCAL_FULL_VINTF_FRAGMENTS",
|
||||
}
|
||||
for _, name := range commonProperties {
|
||||
if value, ok := apexAndroidMkData.Entries.EntryMap[name]; ok {
|
||||
android.AndroidMkEmitAssignList(w, name, value)
|
||||
}
|
||||
}
|
||||
|
||||
// Make apex_manifest.pb module for this APEX to override all other
|
||||
// modules in the APEXes being overridden by this APEX
|
||||
var patterns []string
|
||||
for _, o := range a.overridableProperties.Overrides {
|
||||
patterns = append(patterns, "%."+o+a.suffix)
|
||||
}
|
||||
android.AndroidMkEmitAssignList(w, "LOCAL_OVERRIDES_MODULES", patterns)
|
||||
}
|
||||
|
||||
// File_contexts of flattened APEXes should be merged into file_contexts.bin
|
||||
fmt.Fprintln(w, "LOCAL_FILE_CONTEXTS :=", a.fileContexts)
|
||||
}
|
||||
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
||||
}
|
||||
|
||||
@@ -320,73 +271,62 @@ func (a *apexBundle) androidMkForType() android.AndroidMkData {
|
||||
moduleNames = a.androidMkForFiles(w, name, moduleDir, data)
|
||||
}
|
||||
|
||||
if apexType == flattenedApex {
|
||||
// Only image APEXes can be flattened.
|
||||
fmt.Fprintln(w, "\ninclude $(CLEAR_VARS) # apex.apexBundle.flat")
|
||||
fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE :=", name+a.suffix)
|
||||
data.Entries.WriteLicenseVariables(w)
|
||||
a.writeRequiredModules(w, moduleNames)
|
||||
fmt.Fprintln(w, "include $(BUILD_PHONY_PACKAGE)")
|
||||
|
||||
} else {
|
||||
fmt.Fprintln(w, "\ninclude $(CLEAR_VARS) # apex.apexBundle")
|
||||
fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE :=", name+a.suffix)
|
||||
data.Entries.WriteLicenseVariables(w)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_CLASS := ETC") // do we need a new class?
|
||||
fmt.Fprintln(w, "LOCAL_PREBUILT_MODULE_FILE :=", a.outputFile.String())
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", a.installDir.String())
|
||||
stemSuffix := apexType.suffix()
|
||||
if a.isCompressed {
|
||||
stemSuffix = imageCapexSuffix
|
||||
}
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", name+stemSuffix)
|
||||
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !a.installable())
|
||||
if a.installable() {
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_INSTALLED_MODULE :=", a.installedFile.String())
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_INSTALL_PAIRS :=", a.outputFile.String()+":"+a.installedFile.String())
|
||||
}
|
||||
|
||||
// Because apex writes .mk with Custom(), we need to write manually some common properties
|
||||
// which are available via data.Entries
|
||||
commonProperties := []string{
|
||||
"LOCAL_FULL_INIT_RC", "LOCAL_FULL_VINTF_FRAGMENTS",
|
||||
"LOCAL_PROPRIETARY_MODULE", "LOCAL_VENDOR_MODULE", "LOCAL_ODM_MODULE", "LOCAL_PRODUCT_MODULE", "LOCAL_SYSTEM_EXT_MODULE",
|
||||
"LOCAL_MODULE_OWNER",
|
||||
}
|
||||
for _, name := range commonProperties {
|
||||
if value, ok := data.Entries.EntryMap[name]; ok {
|
||||
android.AndroidMkEmitAssignList(w, name, value)
|
||||
}
|
||||
}
|
||||
|
||||
android.AndroidMkEmitAssignList(w, "LOCAL_OVERRIDES_MODULES", a.overridableProperties.Overrides)
|
||||
a.writeRequiredModules(w, moduleNames)
|
||||
|
||||
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
||||
|
||||
if apexType == imageApex {
|
||||
fmt.Fprintln(w, "ALL_MODULES.$(my_register_name).BUNDLE :=", a.bundleModuleFile.String())
|
||||
}
|
||||
android.AndroidMkEmitAssignList(w, "ALL_MODULES.$(my_register_name).LINT_REPORTS", a.lintReports.Strings())
|
||||
|
||||
if a.installedFilesFile != nil {
|
||||
goal := "checkbuild"
|
||||
distFile := name + "-installed-files.txt"
|
||||
fmt.Fprintln(w, ".PHONY:", goal)
|
||||
fmt.Fprintf(w, "$(call dist-for-goals,%s,%s:%s)\n",
|
||||
goal, a.installedFilesFile.String(), distFile)
|
||||
fmt.Fprintf(w, "$(call declare-0p-target,%s)\n", a.installedFilesFile.String())
|
||||
}
|
||||
for _, dist := range data.Entries.GetDistForGoals(a) {
|
||||
fmt.Fprintf(w, dist)
|
||||
}
|
||||
|
||||
distCoverageFiles(w, "ndk_apis_usedby_apex", a.nativeApisUsedByModuleFile.String())
|
||||
distCoverageFiles(w, "ndk_apis_backedby_apex", a.nativeApisBackedByModuleFile.String())
|
||||
distCoverageFiles(w, "java_apis_used_by_apex", a.javaApisUsedByModuleFile.String())
|
||||
fmt.Fprintln(w, "\ninclude $(CLEAR_VARS) # apex.apexBundle")
|
||||
fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE :=", name+a.suffix)
|
||||
data.Entries.WriteLicenseVariables(w)
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_CLASS := ETC") // do we need a new class?
|
||||
fmt.Fprintln(w, "LOCAL_PREBUILT_MODULE_FILE :=", a.outputFile.String())
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_PATH :=", a.installDir.String())
|
||||
stemSuffix := apexType.suffix()
|
||||
if a.isCompressed {
|
||||
stemSuffix = imageCapexSuffix
|
||||
}
|
||||
fmt.Fprintln(w, "LOCAL_MODULE_STEM :=", name+stemSuffix)
|
||||
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE :=", !a.installable())
|
||||
if a.installable() {
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_INSTALLED_MODULE :=", a.installedFile.String())
|
||||
fmt.Fprintln(w, "LOCAL_SOONG_INSTALL_PAIRS :=", a.outputFile.String()+":"+a.installedFile.String())
|
||||
}
|
||||
|
||||
// Because apex writes .mk with Custom(), we need to write manually some common properties
|
||||
// which are available via data.Entries
|
||||
commonProperties := []string{
|
||||
"LOCAL_FULL_INIT_RC", "LOCAL_FULL_VINTF_FRAGMENTS",
|
||||
"LOCAL_PROPRIETARY_MODULE", "LOCAL_VENDOR_MODULE", "LOCAL_ODM_MODULE", "LOCAL_PRODUCT_MODULE", "LOCAL_SYSTEM_EXT_MODULE",
|
||||
"LOCAL_MODULE_OWNER",
|
||||
}
|
||||
for _, name := range commonProperties {
|
||||
if value, ok := data.Entries.EntryMap[name]; ok {
|
||||
android.AndroidMkEmitAssignList(w, name, value)
|
||||
}
|
||||
}
|
||||
|
||||
android.AndroidMkEmitAssignList(w, "LOCAL_OVERRIDES_MODULES", a.overridableProperties.Overrides)
|
||||
a.writeRequiredModules(w, moduleNames)
|
||||
|
||||
fmt.Fprintln(w, "include $(BUILD_PREBUILT)")
|
||||
|
||||
if apexType == imageApex {
|
||||
fmt.Fprintln(w, "ALL_MODULES.$(my_register_name).BUNDLE :=", a.bundleModuleFile.String())
|
||||
}
|
||||
android.AndroidMkEmitAssignList(w, "ALL_MODULES.$(my_register_name).LINT_REPORTS", a.lintReports.Strings())
|
||||
|
||||
if a.installedFilesFile != nil {
|
||||
goal := "checkbuild"
|
||||
distFile := name + "-installed-files.txt"
|
||||
fmt.Fprintln(w, ".PHONY:", goal)
|
||||
fmt.Fprintf(w, "$(call dist-for-goals,%s,%s:%s)\n",
|
||||
goal, a.installedFilesFile.String(), distFile)
|
||||
fmt.Fprintf(w, "$(call declare-0p-target,%s)\n", a.installedFilesFile.String())
|
||||
}
|
||||
for _, dist := range data.Entries.GetDistForGoals(a) {
|
||||
fmt.Fprintf(w, dist)
|
||||
}
|
||||
|
||||
distCoverageFiles(w, "ndk_apis_usedby_apex", a.nativeApisUsedByModuleFile.String())
|
||||
distCoverageFiles(w, "ndk_apis_backedby_apex", a.nativeApisBackedByModuleFile.String())
|
||||
distCoverageFiles(w, "java_apis_used_by_apex", a.javaApisUsedByModuleFile.String())
|
||||
}}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user