APEX respects relative_install_path
am: b7c24df220
Change-Id: I78a018e6116ddb88025b98d66f442ce36776a4c0
This commit is contained in:
commit
2121073534
|
@ -540,6 +540,7 @@ func getCopyManifestForNativeLibrary(cc *cc.Module, handleSpecialLibs bool) (fil
|
|||
case "lib64":
|
||||
dirInApex = "lib64"
|
||||
}
|
||||
dirInApex = filepath.Join(dirInApex, cc.RelativeInstallPath())
|
||||
if !cc.Arch().Native {
|
||||
dirInApex = filepath.Join(dirInApex, cc.Arch().ArchType.String())
|
||||
}
|
||||
|
@ -564,6 +565,8 @@ func getCopyManifestForNativeLibrary(cc *cc.Module, handleSpecialLibs bool) (fil
|
|||
}
|
||||
|
||||
func getCopyManifestForExecutable(cc *cc.Module) (fileToCopy android.Path, dirInApex string) {
|
||||
// TODO(b/123721777) respect relative_install_path also for binaries
|
||||
// dirInApex = filepath.Join("bin", cc.RelativeInstallPath())
|
||||
dirInApex = "bin"
|
||||
fileToCopy = cc.OutputFile().Path()
|
||||
return
|
||||
|
|
|
@ -615,7 +615,10 @@ func TestFilesInSubDir(t *testing.T) {
|
|||
apex {
|
||||
name: "myapex",
|
||||
key: "myapex.key",
|
||||
native_shared_libs: ["mylib"],
|
||||
binaries: ["mybin"],
|
||||
prebuilts: ["myetc"],
|
||||
compile_multilib: "both",
|
||||
}
|
||||
|
||||
apex_key {
|
||||
|
@ -629,15 +632,43 @@ func TestFilesInSubDir(t *testing.T) {
|
|||
src: "myprebuilt",
|
||||
sub_dir: "foo/bar",
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "mylib",
|
||||
srcs: ["mylib.cpp"],
|
||||
relative_install_path: "foo/bar",
|
||||
system_shared_libs: [],
|
||||
stl: "none",
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "mybin",
|
||||
srcs: ["mylib.cpp"],
|
||||
relative_install_path: "foo/bar",
|
||||
system_shared_libs: [],
|
||||
static_executable: true,
|
||||
stl: "none",
|
||||
}
|
||||
`)
|
||||
|
||||
generateFsRule := ctx.ModuleForTests("myapex", "android_common_myapex").Rule("generateFsConfig")
|
||||
dirs := strings.Split(generateFsRule.Args["exec_paths"], " ")
|
||||
|
||||
// Ensure that etc, etc/foo, and etc/foo/bar are all listed
|
||||
// Ensure that the subdirectories are all listed
|
||||
ensureListContains(t, dirs, "etc")
|
||||
ensureListContains(t, dirs, "etc/foo")
|
||||
ensureListContains(t, dirs, "etc/foo/bar")
|
||||
ensureListContains(t, dirs, "lib64")
|
||||
ensureListContains(t, dirs, "lib64/foo")
|
||||
ensureListContains(t, dirs, "lib64/foo/bar")
|
||||
ensureListContains(t, dirs, "lib")
|
||||
ensureListContains(t, dirs, "lib/foo")
|
||||
ensureListContains(t, dirs, "lib/foo/bar")
|
||||
|
||||
// TODO(b/123721777) respect relative path for binaries
|
||||
// ensureListContains(t, dirs, "bin")
|
||||
// ensureListContains(t, dirs, "bin/foo")
|
||||
// ensureListContains(t, dirs, "bin/foo/bar")
|
||||
}
|
||||
|
||||
func TestUseVendor(t *testing.T) {
|
||||
|
|
8
cc/cc.go
8
cc/cc.go
|
@ -315,6 +315,7 @@ type installer interface {
|
|||
inData() bool
|
||||
inSanitizerDir() bool
|
||||
hostToolPath() android.OptionalPath
|
||||
relativeInstallPath() string
|
||||
}
|
||||
|
||||
type dependencyTag struct {
|
||||
|
@ -413,6 +414,13 @@ func (c *Module) UnstrippedOutputFile() android.Path {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *Module) RelativeInstallPath() string {
|
||||
if c.installer != nil {
|
||||
return c.installer.relativeInstallPath()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (c *Module) Init() android.Module {
|
||||
c.AddProperties(&c.Properties, &c.VendorProperties)
|
||||
if c.compiler != nil {
|
||||
|
|
|
@ -73,7 +73,7 @@ func (installer *baseInstaller) installDir(ctx ModuleContext) android.OutputPath
|
|||
dir = filepath.Join(dir, "vendor")
|
||||
}
|
||||
return android.PathForModuleInstall(ctx, dir, installer.subDir,
|
||||
String(installer.Properties.Relative_install_path), installer.relative)
|
||||
installer.relativeInstallPath(), installer.relative)
|
||||
}
|
||||
|
||||
func (installer *baseInstaller) install(ctx ModuleContext, file android.Path) {
|
||||
|
@ -91,3 +91,7 @@ func (installer *baseInstaller) inSanitizerDir() bool {
|
|||
func (installer *baseInstaller) hostToolPath() android.OptionalPath {
|
||||
return android.OptionalPath{}
|
||||
}
|
||||
|
||||
func (installer *baseInstaller) relativeInstallPath() string {
|
||||
return String(installer.Properties.Relative_install_path)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue