Merge "Revert "Change Python in Soong to support device side build.""

This commit is contained in:
Nan Zhang 2017-12-01 06:26:40 +00:00 committed by Gerrit Code Review
commit 6ff00ed273
6 changed files with 16 additions and 57 deletions

View file

@ -39,7 +39,7 @@ func (p *Module) subAndroidMk(data *android.AndroidMkData, obj interface{}) {
} }
func (p *Module) AndroidMk() android.AndroidMkData { func (p *Module) AndroidMk() android.AndroidMkData {
ret := android.AndroidMkData{OutputFile: p.installSource} ret := android.AndroidMkData{}
p.subAndroidMk(&ret, p.installer) p.subAndroidMk(&ret, p.installer)
@ -55,7 +55,7 @@ func (p *binaryDecorator) AndroidMk(base *Module, ret *android.AndroidMkData) {
strings.Join(p.binaryProperties.Test_suites, " ")) strings.Join(p.binaryProperties.Test_suites, " "))
} }
}) })
base.subAndroidMk(ret, p.pythonInstaller) base.subAndroidMk(ret, p.baseInstaller)
} }
func (p *testDecorator) AndroidMk(base *Module, ret *android.AndroidMkData) { func (p *testDecorator) AndroidMk(base *Module, ret *android.AndroidMkData) {
@ -67,7 +67,7 @@ func (p *testDecorator) AndroidMk(base *Module, ret *android.AndroidMkData) {
strings.Join(p.binaryDecorator.binaryProperties.Test_suites, " ")) strings.Join(p.binaryDecorator.binaryProperties.Test_suites, " "))
} }
}) })
base.subAndroidMk(ret, p.binaryDecorator.pythonInstaller) base.subAndroidMk(ret, p.binaryDecorator.baseInstaller)
} }
func (installer *pythonInstaller) AndroidMk(base *Module, ret *android.AndroidMkData) { func (installer *pythonInstaller) AndroidMk(base *Module, ret *android.AndroidMkData) {

View file

@ -49,20 +49,24 @@ type BinaryProperties struct {
type binaryDecorator struct { type binaryDecorator struct {
binaryProperties BinaryProperties binaryProperties BinaryProperties
*pythonInstaller baseInstaller *pythonInstaller
} }
type IntermPathProvider interface { type IntermPathProvider interface {
IntermPathForModuleOut() android.OptionalPath IntermPathForModuleOut() android.OptionalPath
} }
func (binary *binaryDecorator) install(ctx android.ModuleContext, file android.Path) {
binary.baseInstaller.install(ctx, file)
}
var ( var (
stubTemplateHost = "build/soong/python/scripts/stub_template_host.txt" stubTemplateHost = "build/soong/python/scripts/stub_template_host.txt"
) )
func NewBinary(hod android.HostOrDeviceSupported) (*Module, *binaryDecorator) { func NewBinary(hod android.HostOrDeviceSupported) (*Module, *binaryDecorator) {
module := newModule(hod, android.MultilibFirst) module := newModule(hod, android.MultilibFirst)
decorator := &binaryDecorator{pythonInstaller: NewPythonInstaller("bin", "")} decorator := &binaryDecorator{baseInstaller: NewPythonInstaller("bin")}
module.bootstrapper = decorator module.bootstrapper = decorator
module.installer = decorator module.installer = decorator

View file

@ -15,47 +15,26 @@
package python package python
import ( import (
"path/filepath"
"android/soong/android" "android/soong/android"
) )
// This file handles installing python executables into their final location // This file handles installing python executables into their final location
type installLocation int
const (
InstallInData installLocation = iota
)
type pythonInstaller struct { type pythonInstaller struct {
dir string dir string
dir64 string
relative string
path android.OutputPath path android.OutputPath
} }
func NewPythonInstaller(dir, dir64 string) *pythonInstaller { func NewPythonInstaller(dir string) *pythonInstaller {
return &pythonInstaller{ return &pythonInstaller{
dir: dir, dir: dir,
dir64: dir64,
} }
} }
var _ installer = (*pythonInstaller)(nil) var _ installer = (*pythonInstaller)(nil)
func (installer *pythonInstaller) installDir(ctx android.ModuleContext) android.OutputPath {
dir := installer.dir
if ctx.Arch().ArchType.Multilib == "lib64" && installer.dir64 != "" {
dir = installer.dir64
}
if !ctx.Host() && !ctx.Arch().Native {
dir = filepath.Join(dir, ctx.Arch().ArchType.String())
}
return android.PathForModuleInstall(ctx, dir, installer.relative)
}
func (installer *pythonInstaller) install(ctx android.ModuleContext, file android.Path) { func (installer *pythonInstaller) install(ctx android.ModuleContext, file android.Path) {
installer.path = ctx.InstallFile(installer.installDir(ctx), file.Base(), file) installer.path = ctx.InstallFile(android.PathForModuleInstall(ctx, installer.dir),
file.Base(), file)
} }

View file

@ -22,7 +22,6 @@ import (
func init() { func init() {
android.RegisterModuleType("python_library_host", PythonLibraryHostFactory) android.RegisterModuleType("python_library_host", PythonLibraryHostFactory)
android.RegisterModuleType("python_library", PythonLibraryFactory)
} }
func PythonLibraryHostFactory() android.Module { func PythonLibraryHostFactory() android.Module {
@ -30,9 +29,3 @@ func PythonLibraryHostFactory() android.Module {
return module.Init() return module.Init()
} }
func PythonLibraryFactory() android.Module {
module := newModule(android.HostAndDeviceSupported, android.MultilibBoth)
return module.Init()
}

View file

@ -558,9 +558,5 @@ func fillInMap(ctx android.ModuleContext, m map[string]string,
return true return true
} }
func (p *Module) InstallInData() bool {
return true
}
var Bool = proptools.Bool var Bool = proptools.Bool
var String = proptools.String var String = proptools.String

View file

@ -22,7 +22,6 @@ import (
func init() { func init() {
android.RegisterModuleType("python_test_host", PythonTestHostFactory) android.RegisterModuleType("python_test_host", PythonTestHostFactory)
android.RegisterModuleType("python_test", PythonTestFactory)
} }
type testDecorator struct { type testDecorator struct {
@ -30,18 +29,13 @@ type testDecorator struct {
} }
func (test *testDecorator) install(ctx android.ModuleContext, file android.Path) { func (test *testDecorator) install(ctx android.ModuleContext, file android.Path) {
test.binaryDecorator.pythonInstaller.dir = "nativetest" test.binaryDecorator.baseInstaller.install(ctx, file)
test.binaryDecorator.pythonInstaller.dir64 = "nativetest64"
test.binaryDecorator.pythonInstaller.relative = ctx.ModuleName()
test.binaryDecorator.pythonInstaller.install(ctx, file)
} }
func NewTest(hod android.HostOrDeviceSupported) *Module { func NewTest(hod android.HostOrDeviceSupported) *Module {
module, binary := NewBinary(hod) module, binary := NewBinary(hod)
binary.pythonInstaller = NewPythonInstaller("nativetest", "nativetest64") binary.baseInstaller = NewPythonInstaller("nativetest")
test := &testDecorator{binaryDecorator: binary} test := &testDecorator{binaryDecorator: binary}
@ -56,10 +50,3 @@ func PythonTestHostFactory() android.Module {
return module.Init() return module.Init()
} }
func PythonTestFactory() android.Module {
module := NewTest(android.HostAndDeviceSupported)
module.multilib = android.MultilibBoth
return module.Init()
}