diff --git a/cc/binary.go b/cc/binary.go index 6ad71c624..8afce0941 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 5b4dfc6e1..d04f84331 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 fa8fc3212..8ce954101 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{} +}