Revert "Use cp instead of install for ndk_headers"

This reverts commit 1202729cb2.

Reason for revert: Breaks aosp-main/ndk builds

Change-Id: I453792f7f974dc336d5f6775adfc5899b8d34d7b
This commit is contained in:
Spandan Das
2024-04-04 17:11:43 +00:00
committed by Gerrit Code Review
parent 1202729cb2
commit c299c3f913
4 changed files with 22 additions and 16 deletions

View File

@@ -1831,13 +1831,17 @@ func pathForInstall(ctx PathContext, os OsType, arch ArchType, partition string,
return base.Join(ctx, pathComponents...) return base.Join(ctx, pathComponents...)
} }
func PathForNdkInstall(ctx PathContext, paths ...string) OutputPath { func pathForNdkOrSdkInstall(ctx PathContext, prefix string, paths []string) InstallPath {
return PathForOutput(ctx, append([]string{"ndk"}, paths...)...) base := pathForPartitionInstallDir(ctx, "", prefix, false)
return base.Join(ctx, paths...)
}
func PathForNdkInstall(ctx PathContext, paths ...string) InstallPath {
return pathForNdkOrSdkInstall(ctx, "ndk", paths)
} }
func PathForMainlineSdksInstall(ctx PathContext, paths ...string) InstallPath { func PathForMainlineSdksInstall(ctx PathContext, paths ...string) InstallPath {
base := pathForPartitionInstallDir(ctx, "", "mainline-sdks", false) return pathForNdkOrSdkInstall(ctx, "mainline-sdks", paths)
return base.Join(ctx, paths...)
} }
func InstallPathToOnDevicePath(ctx PathContext, path InstallPath) string { func InstallPathToOnDevicePath(ctx PathContext, path InstallPath) string {

View File

@@ -15,6 +15,7 @@
package cc package cc
import ( import (
"fmt"
"path/filepath" "path/filepath"
"android/soong/android" "android/soong/android"
@@ -44,7 +45,7 @@ func init() {
} }
// Returns the NDK base include path for use with sdk_version current. Usable with -I. // Returns the NDK base include path for use with sdk_version current. Usable with -I.
func getCurrentIncludePath(ctx android.ModuleContext) android.OutputPath { func getCurrentIncludePath(ctx android.ModuleContext) android.InstallPath {
return getNdkSysrootBase(ctx).Join(ctx, "usr/include") return getNdkSysrootBase(ctx).Join(ctx, "usr/include")
} }
@@ -86,7 +87,7 @@ type headerModule struct {
} }
func getHeaderInstallDir(ctx android.ModuleContext, header android.Path, from string, func getHeaderInstallDir(ctx android.ModuleContext, header android.Path, from string,
to string) android.OutputPath { to string) android.InstallPath {
// Output path is the sysroot base + "usr/include" + to directory + directory component // Output path is the sysroot base + "usr/include" + to directory + directory component
// of the file without the leading from directory stripped. // of the file without the leading from directory stripped.
// //
@@ -128,12 +129,13 @@ func (m *headerModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
for _, header := range m.srcPaths { for _, header := range m.srcPaths {
installDir := getHeaderInstallDir(ctx, header, String(m.properties.From), installDir := getHeaderInstallDir(ctx, header, String(m.properties.From),
String(m.properties.To)) String(m.properties.To))
installedPath := ctx.InstallFile(installDir, header.Base(), header)
installPath := installDir.Join(ctx, header.Base()) installPath := installDir.Join(ctx, header.Base())
ctx.Build(pctx, android.BuildParams{ if installPath != installedPath {
Rule: android.Cp, panic(fmt.Sprintf(
Input: header, "expected header install path (%q) not equal to actual install path %q",
Output: installPath, installPath, installedPath))
}) }
m.installPaths = append(m.installPaths, installPath) m.installPaths = append(m.installPaths, installPath)
} }

View File

@@ -518,19 +518,19 @@ func (stub *stubDecorator) nativeCoverage() bool {
// Returns the install path for unversioned NDK libraries (currently only static // Returns the install path for unversioned NDK libraries (currently only static
// libraries). // libraries).
func getUnversionedLibraryInstallPath(ctx ModuleContext) android.OutputPath { func getUnversionedLibraryInstallPath(ctx ModuleContext) android.InstallPath {
return getNdkSysrootBase(ctx).Join(ctx, "usr/lib", config.NDKTriple(ctx.toolchain())) return getNdkSysrootBase(ctx).Join(ctx, "usr/lib", config.NDKTriple(ctx.toolchain()))
} }
// Returns the install path for versioned NDK libraries. These are most often // Returns the install path for versioned NDK libraries. These are most often
// stubs, but the same paths are used for CRT objects. // stubs, but the same paths are used for CRT objects.
func getVersionedLibraryInstallPath(ctx ModuleContext, apiLevel android.ApiLevel) android.OutputPath { func getVersionedLibraryInstallPath(ctx ModuleContext, apiLevel android.ApiLevel) android.InstallPath {
return getUnversionedLibraryInstallPath(ctx).Join(ctx, apiLevel.String()) return getUnversionedLibraryInstallPath(ctx).Join(ctx, apiLevel.String())
} }
func (stub *stubDecorator) install(ctx ModuleContext, path android.Path) { func (stub *stubDecorator) install(ctx ModuleContext, path android.Path) {
installDir := getVersionedLibraryInstallPath(ctx, stub.apiLevel) installDir := getVersionedLibraryInstallPath(ctx, stub.apiLevel)
stub.installPath = installDir.Join(ctx, path.Base()) stub.installPath = ctx.InstallFile(installDir, path.Base(), path)
} }
func newStubLibrary() *Module { func newStubLibrary() *Module {

View File

@@ -69,12 +69,12 @@ func RegisterNdkModuleTypes(ctx android.RegistrationContext) {
ctx.RegisterParallelSingletonType("ndk", NdkSingleton) ctx.RegisterParallelSingletonType("ndk", NdkSingleton)
} }
func getNdkInstallBase(ctx android.PathContext) android.OutputPath { func getNdkInstallBase(ctx android.PathContext) android.InstallPath {
return android.PathForNdkInstall(ctx) return android.PathForNdkInstall(ctx)
} }
// Returns the main install directory for the NDK sysroot. Usable with --sysroot. // Returns the main install directory for the NDK sysroot. Usable with --sysroot.
func getNdkSysrootBase(ctx android.PathContext) android.OutputPath { func getNdkSysrootBase(ctx android.PathContext) android.InstallPath {
return getNdkInstallBase(ctx).Join(ctx, "sysroot") return getNdkInstallBase(ctx).Join(ctx, "sysroot")
} }