aboutsummaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2016-09-28 16:18:03 -0700
committerDan Willemsen <dwillemsen@google.com>2016-09-28 17:38:02 -0700
commit4aa75ca244ef7d0150978af626c0478fa784e93d (patch)
tree654bb95f64779a467729af32356c5678a8bb9ece /cc
parent024c32e9870a2a7d7704967eeb7764686cd69aab (diff)
downloadbuild_soong-4aa75ca244ef7d0150978af626c0478fa784e93d.tar.gz
build_soong-4aa75ca244ef7d0150978af626c0478fa784e93d.tar.bz2
build_soong-4aa75ca244ef7d0150978af626c0478fa784e93d.zip
Expose HostToolPath on the cc module to fix genrule.tool
Bug: 31742855 Test: Use `tool` in a genrule, ensure it runs properly. Change-Id: Ib9ff35125edd66cdba8ede4f28aa6b753de0689b
Diffstat (limited to 'cc')
-rw-r--r--cc/binary.go16
-rw-r--r--cc/cc.go8
-rw-r--r--cc/installer.go4
3 files changed, 22 insertions, 6 deletions
diff --git a/cc/binary.go b/cc/binary.go
index 6ad71c62..8afce094 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -69,7 +69,7 @@ type binaryDecorator struct {
Properties BinaryLinkerProperties
- hostToolPath android.OptionalPath
+ toolPath android.OptionalPath
}
var _ linker = (*binaryDecorator)(nil)
@@ -256,9 +256,6 @@ func (binary *binaryDecorator) link(ctx ModuleContext,
fileName := binary.getStem(ctx) + flags.Toolchain.ExecutableSuffix()
outputFile := android.PathForModuleOut(ctx, fileName)
ret := outputFile
- if ctx.Os().Class == android.Host {
- binary.hostToolPath = android.OptionalPathForPath(outputFile)
- }
var linkerDeps android.Paths
@@ -291,6 +288,13 @@ func (binary *binaryDecorator) link(ctx ModuleContext,
return ret
}
-func (binary *binaryDecorator) HostToolPath() android.OptionalPath {
- return binary.hostToolPath
+func (binary *binaryDecorator) install(ctx ModuleContext, file android.Path) {
+ binary.baseInstaller.install(ctx, file)
+ if ctx.Os().Class == android.Host {
+ binary.toolPath = android.OptionalPathForPath(binary.baseInstaller.path)
+ }
+}
+
+func (binary *binaryDecorator) hostToolPath() android.OptionalPath {
+ return binary.toolPath
}
diff --git a/cc/cc.go b/cc/cc.go
index 5b4dfc6e..d04f8433 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -181,6 +181,7 @@ type installer interface {
installerProps() []interface{}
install(ctx ModuleContext, path android.Path)
inData() bool
+ hostToolPath() android.OptionalPath
}
type dependencyTag struct {
@@ -845,6 +846,13 @@ func (c *Module) InstallInData() bool {
return c.installer.inData()
}
+func (c *Module) HostToolPath() android.OptionalPath {
+ if c.installer == nil {
+ return android.OptionalPath{}
+ }
+ return c.installer.hostToolPath()
+}
+
//
// Defaults
//
diff --git a/cc/installer.go b/cc/installer.go
index fa8fc321..8ce95410 100644
--- a/cc/installer.go
+++ b/cc/installer.go
@@ -80,3 +80,7 @@ func (installer *baseInstaller) install(ctx ModuleContext, file android.Path) {
func (installer *baseInstaller) inData() bool {
return installer.location == InstallInData
}
+
+func (installer *baseInstaller) hostToolPath() android.OptionalPath {
+ return android.OptionalPath{}
+}