aboutsummaryrefslogtreecommitdiffstats
path: root/python
Commit message (Collapse)AuthorAgeFilesLines
* Add HostToolPath() for Python binaryNan Zhang2017-12-061-0/+8
| | | | | | | So in the genrule, Python binary module can be used as tool. Test: manually write a test genrule. Change-Id: Idfd3af4c1002dd608e1bdffa203e01c802f1bf21
* Revert "Revert "Change Python in Soong to support device side build.""Nan Zhang2017-12-016-16/+57
| | | | | | | | This reverts commit 0a32e5936b4c87bc705d06fa2d4f6fed1f58d602. Reason for revert: <libsqlite was missing for darwin_x86_64 before> Change-Id: I2e13e849a503a705ffad425df292380f2f73954e
* Revert "Change Python in Soong to support device side build."Nan Zhang2017-12-016-57/+16
| | | | | | | | This reverts commit 3bba05962dc4329c6e3d28544775db591574ba7b. Reason for revert: <revert mac builds> Change-Id: I25f1380573d69f7e111287624a2d4a3d95fdd86b
* Change Python in Soong to support device side build.Nan Zhang2017-11-306-16/+57
| | | | | | | | | | | | | | | | | | 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
* Change bool, and string properties to *bool, and *string for java,Nan Zhang2017-11-082-12/+15
| | | | | | | | python, and genrule. Test: m -j checkbuild Bug: b/68853585 Change-Id: Ic9a8083818e920dc399a4b00841e2aa496f70faa
* Add support for test_suites for python_binary_host and python_test_hostNan Zhang2017-11-072-0/+18
| | | | | | Test: manually add this property, and then check Android-aosp_arm.mk Bug: b/35394669 Change-Id: Iddaf677839714daf4f8913ff4bf9e944d38c18db
* Convert Visit*Deps from blueprint.Module to android.ModuleColin Cross2017-10-242-4/+2
| | | | | | | | Also adds checks that the dependencies are android.Modules and are not disabled. Test: m checkbuild Change-Id: I05e945f38915d49cd3c0ab72a86576949bc7eff2
* Move ModuleContext.ModuleBuild to ModuleContext.BuildColin Cross2017-10-241-3/+3
| | | | | | | | | | | | Now that android.ModuleContext does not include blueprint.ModuleContext we can rename android.ModuleContext.ModuleBuild to android.ModuleContext.Build without colliding with blueprint.ModuleContext.Build. Leave ModuleBuild as a wrapper around Build for now to avoid having to update all the users outside build/soong simultaneously. Test: m checkbuild Change-Id: I18eb8cc04faf002049a11d9aac97e9732ff5d638
* Let tests override environmentColin Cross2017-10-101-1/+1
| | | | | | | | Pass an environment to TestConfig that will be used for all Config.Getenv calls. Test: none Change-Id: I683cd9c9e0db61c9bfd2adb27fca78f558f225c4
* Use `python2.7` instead of `python2`Dan Willemsen2017-09-251-1/+1
| | | | | | | Ubuntu has both aliases, but Mac only declares python2.7, not python2. Test: `m sepolicy_tests` on internal master Change-Id: Ia2b5d2d95195f307befbc1893a465752f14b8a7b
* Add support for python_defaults modulesNan Zhang2017-09-053-5/+88
| | | | | Test: python_test.go Change-Id: I2077414a5b06da5e660a1b48bfdb2eb926fb702f
* <Hermetic> Replace Soong Python bootstrap process with embeddedNan Zhang2017-09-057-236/+370
| | | | | | | | | | | | | | | | | | | | launcher. For Python2, we bundle embedded launcher as bootstrapper within every .par file. This feature is only enabled for linux_x86_64 for now. We provide a user flag: hermetic_enabled within bp file. By default, Pyhon2 still use classic bootstrapping way to construct .par file and relys on host interpreter. Once embedded_launcher is enabled, launcher will be used to bootstrap .par file and execute user program. For Python3, the launcher will be ready soon, and for now it still relys on classic bootstrapping. Test: Real example is used to test. Bug: b/63018041 Change-Id: I28deba413d8ad3af407595e46f77d663e79a3705
* Make binaries executableColin Cross2017-08-311-1/+2
| | | | | | | | | Split InstallFileName into InstallExecutable that does chmod +x after copying the file. Also remove InstallFile and rename InstallFileName to InstallFile. Test: m -j checkbuild Change-Id: Id41ad4eafe521f6cd5d8cc250b7747ecb3da8dfc
* Remove error from AndroidMkDataProvider.AndroidMkColin Cross2017-08-111-2/+4
| | | | | | | | It's never anything except nil, and it unnecessarily complicates the implementations. Test: m -j checkbuild Change-Id: I3e3b7251f32ffa84dbdfd0448faf248c306ca808
* Remove error from AndroidMkData.ExtraColin Cross2017-08-111-2/+1
| | | | | | | | It's never anything except nil, and it unnecessarily complicates the implementations. Test: m -j checkbuild Change-Id: I8a117a86aa39aeb07d9d8d0686ef869c52784f19
* Add integration testing infrastructureColin Cross2017-07-141-23/+8
| | | | | | | | | | | | | | | | | | | | | Fix mutator registration for tests to allow different tests in the same package to register different mutators. Allow tests to track the resulting ModuleBuildParams objects to use in assertions, and provide helpers for getting them. For example: config := android.TestConfig(buildDir) ctx := android.NewTestContext() ctx.RegisterModuleType(...) ctx.MockFileSystem(...) ctx.ParseBlueprintsFile("Android.bp") ctx.PrepareBuildActions(config) ctx.Register() // Get the Inputs value passed to the javac rule for the foo module inputs := ctx.ModuleForTests("foo".Rule("javac").Inputs Test: java_test.go Change-Id: I10c82967f5f3586d2c176f169906b571ed82fc73
* Refactor factoriesColin Cross2017-06-305-17/+17
| | | | | | | | | Change module factories from returning a blueprint.Module and a list of property structs to returning an android.Module, which holds the list of property structs. Test: build.ninja identical except for Factory: comment lines Change-Id: Ica1d823f009db812c518f271a386fbff39c9766f
* Fix the issue that /tmp/soong_python_test* isn't being removed.Nan Zhang2017-06-121-3/+3
| | | | | | Bug: 62499851 Test: go test Change-Id: I84bd66cd1410dd9fc6add3ba5626d8ec4fe702d7
* Add python_test_host module.Nan Zhang2017-05-177-60/+223
| | | | | | bug: 31676493 Test: created py_test modules in real folder. and ran 'mma'. Change-Id: I22aa2fad74b11e4a31ea7a4c4a4f0ea64cd3fc94
* Fix the issue "\n" didn't get interpreted properly.Nan Zhang2017-05-161-1/+1
| | | | | | | | | | Added params to WriteFile rule that allow users to turn on the specific 'echo' options, such as "enable the interpretation of backslash escapes". Bug: b/38261000 Test: tested with real data files. Change-Id: I5145056b5c2522a3a72b9436055ec95d2fbd94c0
* Prettify soong ninja build descriptionsColin Cross2017-05-101-7/+8
| | | | | | | | | | | | | | | | | Descriptions currently look like: [ 0% 4/29328] cc out-soong/.intermediates/external/clang/lib/Sema/libclangSema/android_arm_armv7-a-neon_denver_static_core/obj/external/clang/lib/Sema/SemaCodeComplete.o This is not very helpful - most of the characters are used to show the output path, which contains useful information like target architecture, but also contains most of the path to the source files twice, and less useful information like the exact variant name used by soong. Make the descriptions look like: [ 0% 3/29329] //external/clang/lib/Sema:libclangSema clang++ SemaTemplateInstantiate.cpp This is //path/to/module:modulename tool relative/path/to/source/file Test: builds, looks pretty Change-Id: I3087aa7d4eb1860ef6239d77407b8b35445616d7
* Supported python build in host side.Nan Zhang2017-05-056-0/+1419
The base module handles all the common functionalites, such as version compatibilty check, version variations split, source file format check, source/data file duplicate check. The library/binary module focuses on how to generate binary build actions, such as setting up stub script, zipping, filling in __init__.py in runfiles dir tree. Bug: b/31676493 Test: go test under python package Change-Id: I06608369f350f7195873d459e1c8d1bdb811e77e