diff options
author | Dan Willemsen <dwillemsen@google.com> | 2016-09-28 16:18:03 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2016-09-28 17:38:02 -0700 |
commit | 4aa75ca244ef7d0150978af626c0478fa784e93d (patch) | |
tree | 654bb95f64779a467729af32356c5678a8bb9ece /cc | |
parent | 024c32e9870a2a7d7704967eeb7764686cd69aab (diff) | |
download | build_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.go | 16 | ||||
-rw-r--r-- | cc/cc.go | 8 | ||||
-rw-r--r-- | cc/installer.go | 4 |
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 } @@ -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{} +} |