Add symlinks to sh_binary in soong
This allows us to change `logpersist.start` to `sh_binary` and unblocks breakpad symbol uploading Test: convert logpersist.start to sh_binary and verify symlinks are correct Change-Id: I1b86c512df73a336205ca35216445a08e43bb879
This commit is contained in:
@@ -48,6 +48,9 @@ type shBinaryProperties struct {
|
|||||||
|
|
||||||
// Whether this module is directly installable to one of the partitions. Default: true.
|
// Whether this module is directly installable to one of the partitions. Default: true.
|
||||||
Installable *bool
|
Installable *bool
|
||||||
|
|
||||||
|
// install symlinks to the binary
|
||||||
|
Symlinks []string `android:"arch_variant"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type TestProperties struct {
|
type TestProperties struct {
|
||||||
@@ -103,6 +106,10 @@ func (s *ShBinary) Installable() bool {
|
|||||||
return s.properties.Installable == nil || Bool(s.properties.Installable)
|
return s.properties.Installable == nil || Bool(s.properties.Installable)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *ShBinary) Symlinks() []string {
|
||||||
|
return s.properties.Symlinks
|
||||||
|
}
|
||||||
|
|
||||||
func (s *ShBinary) GenerateAndroidBuildActions(ctx ModuleContext) {
|
func (s *ShBinary) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||||
s.sourceFilePath = PathForModuleSrc(ctx, String(s.properties.Src))
|
s.sourceFilePath = PathForModuleSrc(ctx, String(s.properties.Src))
|
||||||
filename := String(s.properties.Filename)
|
filename := String(s.properties.Filename)
|
||||||
@@ -145,6 +152,9 @@ func (s *ShBinary) customAndroidMkEntries(entries *AndroidMkEntries) {
|
|||||||
entries.SetString("LOCAL_MODULE_RELATIVE_PATH", String(s.properties.Sub_dir))
|
entries.SetString("LOCAL_MODULE_RELATIVE_PATH", String(s.properties.Sub_dir))
|
||||||
entries.SetString("LOCAL_MODULE_SUFFIX", "")
|
entries.SetString("LOCAL_MODULE_SUFFIX", "")
|
||||||
entries.SetString("LOCAL_MODULE_STEM", s.outputFilePath.Rel())
|
entries.SetString("LOCAL_MODULE_STEM", s.outputFilePath.Rel())
|
||||||
|
if len(s.properties.Symlinks) > 0 {
|
||||||
|
entries.SetString("LOCAL_MODULE_SYMLINKS", strings.Join(s.properties.Symlinks, " "))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ShTest) GenerateAndroidBuildActions(ctx ModuleContext) {
|
func (s *ShTest) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||||
|
@@ -1035,7 +1035,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
return true
|
return true
|
||||||
} else if sh, ok := child.(*android.ShBinary); ok {
|
} else if sh, ok := child.(*android.ShBinary); ok {
|
||||||
fileToCopy, dirInApex := getCopyManifestForShBinary(sh)
|
fileToCopy, dirInApex := getCopyManifestForShBinary(sh)
|
||||||
filesInfo = append(filesInfo, apexFile{fileToCopy, depName, dirInApex, shBinary, sh, nil})
|
filesInfo = append(filesInfo, apexFile{fileToCopy, depName, dirInApex, shBinary, sh, sh.Symlinks()})
|
||||||
} else if py, ok := child.(*python.Module); ok && py.HostToolPath().Valid() {
|
} else if py, ok := child.(*python.Module); ok && py.HostToolPath().Valid() {
|
||||||
fileToCopy, dirInApex := getCopyManifestForPyBinary(py)
|
fileToCopy, dirInApex := getCopyManifestForPyBinary(py)
|
||||||
filesInfo = append(filesInfo, apexFile{fileToCopy, depName, dirInApex, pyBinary, py, nil})
|
filesInfo = append(filesInfo, apexFile{fileToCopy, depName, dirInApex, pyBinary, py, nil})
|
||||||
|
Reference in New Issue
Block a user