Change Python in Soong to support device side build.
Add python_test to generate executables for both host and device side.
And change python_library_host to python_library.
installation for python device test will be under
target/product/generic_arm[64]/data/nativetest[64].
Bug: b/69114465
Test: m clean && m -j
Device Test:
adb root; adb push nan_devicetest /data;
adb shell; ./nan_devicetest
print(sys.path)
['/data/nan_devicetest/runfiles', '/data/nan_devicetest', '/data/nan_devicetest/internal', '/data/nan_devicetest/internal/stdlib']
Change-Id: If8317070a3aa1b6dab2e84b8df2d037f495d7247
diff --git a/python/test.go b/python/test.go
index de2b13e..825e63c 100644
--- a/python/test.go
+++ b/python/test.go
@@ -22,6 +22,7 @@
func init() {
android.RegisterModuleType("python_test_host", PythonTestHostFactory)
+ android.RegisterModuleType("python_test", PythonTestFactory)
}
type testDecorator struct {
@@ -29,13 +30,18 @@
}
func (test *testDecorator) install(ctx android.ModuleContext, file android.Path) {
- test.binaryDecorator.baseInstaller.install(ctx, file)
+ test.binaryDecorator.pythonInstaller.dir = "nativetest"
+ test.binaryDecorator.pythonInstaller.dir64 = "nativetest64"
+
+ test.binaryDecorator.pythonInstaller.relative = ctx.ModuleName()
+
+ test.binaryDecorator.pythonInstaller.install(ctx, file)
}
func NewTest(hod android.HostOrDeviceSupported) *Module {
module, binary := NewBinary(hod)
- binary.baseInstaller = NewPythonInstaller("nativetest")
+ binary.pythonInstaller = NewPythonInstaller("nativetest", "nativetest64")
test := &testDecorator{binaryDecorator: binary}
@@ -50,3 +56,10 @@
return module.Init()
}
+
+func PythonTestFactory() android.Module {
+ module := NewTest(android.HostAndDeviceSupported)
+ module.multilib = android.MultilibBoth
+
+ return module.Init()
+}