Merge "Revert "Change Python in Soong to support device side build.""
This commit is contained in:
commit
6ff00ed273
6 changed files with 16 additions and 57 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
|
||||||
}
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue