Fix python_binary_host module in mixed build.

Test: USE_BAZEL_ANALYSIS=1 m genfunctosyscallnrs
Test: USE_BAZEL_ANALYSIS=1 m func_to_syscall_nrs
Test: USE_BAZEL_ANALYSIS=1 m libseccomp_policy
Bug: 201094425, 197135289

Change-Id: Ibc8b99a92149410c8a879b7a4facf6c8961a7b9f
diff --git a/python/installer.go b/python/installer.go
index 396f036..515cc47 100644
--- a/python/installer.go
+++ b/python/installer.go
@@ -36,12 +36,14 @@
 	path android.InstallPath
 
 	androidMkSharedLibs []string
+	module              *Module
 }
 
-func NewPythonInstaller(dir, dir64 string) *pythonInstaller {
+func NewPythonInstaller(dir, dir64 string, module *Module) *pythonInstaller {
 	return &pythonInstaller{
-		dir:   dir,
-		dir64: dir64,
+		dir:    dir,
+		dir64:  dir64,
+		module: module,
 	}
 }
 
@@ -59,7 +61,14 @@
 }
 
 func (installer *pythonInstaller) install(ctx android.ModuleContext, file android.Path) {
-	installer.path = ctx.InstallFile(installer.installDir(ctx), file.Base(), file)
+	if ctx.ModuleType() == "python_binary_host" && installer.module.MixedBuildsEnabled(ctx) {
+		label := installer.module.BazelModuleBase.GetBazelLabel(ctx, installer.module)
+		binary, _ := ctx.Config().BazelContext.GetPythonBinary(label, android.GetConfigKey(ctx))
+		bazelBinaryOutPath := android.PathForBazelOut(ctx, binary)
+		installer.path = ctx.InstallFile(installer.installDir(ctx), bazelBinaryOutPath.Base(), bazelBinaryOutPath)
+	} else {
+		installer.path = ctx.InstallFile(installer.installDir(ctx), file.Base(), file)
+	}
 }
 
 func (installer *pythonInstaller) setAndroidMkSharedLibs(sharedLibs []string) {