aboutsummaryrefslogtreecommitdiff
path: root/gradle/src
AgeCommit message (Collapse)Author
2013-01-04Fix wrong name on property due to multi-project change.Xavier Ducrohet
Change-Id: I6d26ec7a46bb16b983451ca242a0897adca08544
2013-01-04Move BuildTypeDsl out of BuildTypeFactory to workaround some groovy bug.Xavier Ducrohet
As an inner class it prevented access to its parent in a closure. See http://jira.codehaus.org/browse/GROOVY-5875 Change-Id: I29e5563173f8c5fec795cbd145ae02c941b0f47b
2013-01-04Add options to the test reporting.Xavier Ducrohet
Support for customized results and report location. Queries the IDevice to construct a name. Copied the flavorlib samples to flavorlibWithFailedTests and removed the failing tests from flavorlib as it's still useful to have as a project with no failing test. Change-Id: Iea3f2ab0828ab93c2ace3ed41b4a5dda7554bbe3
2013-01-04Refactor some class from internal in subpackages.Xavier Ducrohet
It was starting to be a mess in there. Change-Id: I49807fabd070326e31dd26c6e7535e50aeb0a033
2013-01-03Improve on-device test result reporting.Xavier Ducrohet
Use ddmlib to run and gather the test results. The library provides a test runner that can read the output of the tests running on the device and generate Junit compatible XML result reports. This is then fed to gradle's report generator to make a standard report. Also change the run test task to also do the install/uninstall so that we can run tests on all connected devices in parallel. The existing install/uninstall tasks can probably be removed. Change-Id: I8d3baa848923a399de78dbdc7fc25d5548f56be2
2013-01-02Add crunch support to the ResourceManager.Xavier Ducrohet
This relies on a newer version of aapt that is able to do single file crunch. All crunching is done through a thread controlled by an executor. Change-Id: I578f970660f152031ed1a4f4074382fcf4d7b2b8
2012-12-21Add task on gradle plugin to run android tests on a device.Xavier Ducrohet
This is not final as the on-device errors are not properly processed. When it's final it'll get added to the check task. This also fixes some issue with installing/uninstalling due to the incremental changes that went in today. Change-Id: I280a1b8c4cfd4daae99fd68e4c93e52f9b3a9c0e
2012-12-21Fix build tests under Windows.Raphael Moll
Change-Id: I27bce90c5a8b05bc149b4a3d8a9a113d74b050e8
2012-12-21Keystore objects.Scott Barta
Replaces keystore attributes on build types and flavors with a SigningKeystore object that can be accessed by reference from those types. Eliminates the debugSigning attribute in favor of a default debug keystore that's automatically configured for all projects. Change-Id: Icbfc66487e26068ae6edff8395ebc29d0d28f46c
2012-12-20Prepare support for device tests.Xavier Ducrohet
This refactors the name and location of the build test, and creates a new tasks to run tests that require devices. Change-Id: Iddcfaae9c3d7a29bbb686adfe41201f3cecee78b
2012-12-20Fix some things found by static analysis.Xavier Ducrohet
Change-Id: I4f9307db0607bb00258ab75d0afb446d472f04c9
2012-12-20Fix misc issues from the 2 previous changes.Xavier Ducrohet
Change-Id: I4d384d3c5aa2af67cbdd1f68433104e279de3c07
2012-12-19Incremental resource merger support.Xavier Ducrohet
First a ChangeManager (and associated classes) that detects changed files across build runs. This is to be replaced by Gradle once this information is given to the tasks. Then, a rewrite of ResourceMerger and ResourceSet to allow saving a post run state, and reloading it on the next run, to allow for incremental updates of the merged resource folder by only updating the resources that changed, were removed or were added. Finally a change to the BaseTask to support incremental tasks and provide some default support that actual tasks can use or not. The BaseTask will do some first checks to figure out if incremental runs are supported by the class or by the current state, and call one of two methods to do either full run or incremental run. The MergerResourceTask is changed to use this, and its incremental method does a bit more checking and reverts to full run when it cannot do an incremental run. Finally a bunch of tests to ensure this works fine. Change-Id: I3808e2d57aa45882eaf1030e16b092ecd58d9729
2012-12-11Merge "Add support for multiple res folders in all source sets."Xavier Ducrohet
2012-12-11Add support for multiple res folders in all source sets.Xavier Ducrohet
Change-Id: I01fc363072b4407f70863899c80620fb22044b1f
2012-12-11Merge "Adds versionNameSuffix to build type"Scott Barta
2012-12-11Adds versionNameSuffix to build typeScott Barta
Adds support for a versionNameSuffix attribute to the build type which works like packageNameSuffix -- it is appended to the version name as derived from the manifest and overridden by the flavors. Change-Id: Ib303f30d2253bbd2367664b826d8dc93f5f3731e
2012-12-11Move to Gradle 1.3Xavier Ducrohet
- Update the wrapper and wrapper scripts to force 1.3 - add gradle version detection to the android plugins to make them fail if the version of gradle is not right. - Ensure the test projects are built with the right version. Change-Id: Ibd2d970f9bdf98acbca54847eb493b3379532d99
2012-12-10Merge "Use the ResourceMerger to handle overlay."Xavier Ducrohet
2012-12-10Use the ResourceMerger to handle overlay.Xavier Ducrohet
This creates a merged res folder that is then fed to aapt. Right now the merged folder does not have its image crunched, nor is it incremental. This means the build will be slower (previously crunching was incremental). Next step is to change aapt to be able to crunch single images and then make the merging itself incremental. Details: The processImage task is replaced by mergeResourceTask. It is also used for library project that had to merge their resources before bundling, so the previous copy task is removed and the merge is done directly in the bundle folder. The API for AndroidBuilder is changed to reflect those changes. processResource now only takes one res folder which is meant to be the merged one. The getResourceInputs on VariantConfig is changed to return a list of ResourceSets (except not actual ResourceSet since this would load the resources, so instead a list of list of files). Also changed build.gradle for the gradle plugin to have the integration test first deploy the plugin locally in order to use the right one. Change-Id: Ide96f733be835d94518b831baee7ee77b9a61dec
2012-12-10Allow using ANDROID_HOME to point to SDK when running gradle check.Xavier Ducrohet
Change-Id: I12988556a427ca24e8765e02310836c724e6e5dd
2012-12-07Two simple test projects to detect overlay issues.Xavier Ducrohet
Also add support to build them during the plugin integration tests and check the output. Change-Id: I882f47f4c79d1b44c3e95b2df0f044d91508a3eb
2012-11-12Move test projects into integration-testXavier Ducrohet
This allows to run these long running tests, which also require a full SDK to be run separately from the normal unit tests. Change-Id: I2c8a359d63b15126128467223fba541ee5cf6b9d
2012-11-12Add test project for api in library projects.Xavier Ducrohet
Also tweak the API a bit. Change-Id: I6cb10b4d770f9054f269d600d41a24b7e2fdc2e1
2012-11-12Add test that builds all the test projects.Xavier Ducrohet
Change-Id: I8686052470b71f9f61f83da360a205a2f04d5271
2012-11-09Continue support for build variant API.Xavier Ducrohet
Change-Id: Iec8b33ae0410932aca14ef75f56afe8aff01efdf
2012-10-24Add API to query build variants.Xavier Ducrohet
Also add some tests for it. Change-Id: Ibaad3dd385004c9c514aa71215526a775cbc9aaf
2012-10-22Add some basic test of the plugin.Xavier Ducrohet
Change-Id: Ib4b00ac416a43ac0ea37b86dedabd7c012becf22
2012-10-12Refactor the gradle plugin.Xavier Ducrohet
Move tasks under their own package, and move some stuff under internal. Change-Id: I23778b650dbefef882dcab786728de5336a84c46
2012-10-12Fix issue from last refactoring.Xavier Ducrohet
Change-Id: I307e83395aee2be4d1cd4334b15abeb974ddf5ea
2012-10-12Minor refactoring.Xavier Ducrohet
Rename TextSymbolProvier -> SymbolFileProvider Also make AndroidDependency implement ManifestDependency instead of ManifestProvider so that they can be passed to AndroidBuilder.processManifest() Change-Id: I94af6f5a45dd1a3b5130bef58a73f21c486f2987
2012-10-11Massive changes related to DSL and task inputs.Xavier Ducrohet
Use an instantiator to create DSL-ready instances. Still use a DSL overlay for a few cases where we need to receive an array of values. Stop using the full ProductFlavor and BuildType as inputs This was too broad as most tasks barely use a few values from these as actual inputs. Moved those inputs to the Tasks themselves and changed the AndroidBuilder to receive them (see below). Changed AndroidBuilder to not know VariantConfig anymore All inputs for build steps are passed to their respective methods. This ensure that the caller knows all the inputs and can, if needed, cache them to detect changes to trigger rebuilds. Gradle uses this by putting annotations on the Task fields. Extracted some interfaces from AndroidDependency Some tasks use a subset of AndroidDependency so the extracted interfaces allow the tasks to receive a custom implementation of those limited interfaces to let the caller deal with caching the needed values. Split the manifest task into two. One of project/lib and the other one for test projects as they have different inputs. Change-Id: I5163765fd817b8994ff4a2a973820f78c60894bd
2012-10-10Change the bundled library extenstion to aar.Xavier Ducrohet
Change-Id: Idd136dab16a0f8f798e2c09830d0f4d77824a22c
2012-10-09Update DependencyChecker to run in the per-variant prepare task.Xavier Ducrohet
Change-Id: I2c3e4d16ee9efeb916e46428b11d2e55b8c56e00
2012-10-09Merge "Add support for --core-library option for dx."Xavier Ducrohet
2012-10-08Add local jars to the dependencies.Xavier Ducrohet
Change-Id: Id0cf604cb17d95043d4e0286f81c2c97e86ae44f
2012-10-08Change android source set to match the default foldersXavier Ducrohet
resources -> res javaResources -> resources Change-Id: Ib46106f0a0f365c310ae6e19ab79394caeaca7b0
2012-10-08Per-lib prepare task.Xavier Ducrohet
each Android library dependency is assigned its own task to ensure the library is unzipped. This task is set to depend on the build dependencies of the configuration(s) that brought it in the dependency graph. The Prepare task for each variant is set to depend on all the prepareLibTask needed by the dependency graph. Change-Id: I17829eac949c12df706d2328441fc90f9c64701d
2012-10-05Support compile config for flavors and build types.Xavier Ducrohet
Read dependency graph and create list of JarDependency and AndroidDependency for each configuration. Set Jars and AndroidDependency on each VariantConfig object. Add a AndroidDependency report task (called androidDependency) The prepareDependenciesTask will prepare the same artifact multiple time if it's used by different variants and they are all built. This will be fixed in the next patch. Change-Id: I4f11565c3629a54f022ecc82f81d4900ef2bd0c9
2012-10-04Use custom SourceSet instead of default Java ones.Xavier Ducrohet
Fixed a couple of path-related issue to make it work on Windows. Replaced "customized" test app with "migrated" that uses the folder structure of older projects and reconfigure it through the source sets. Change-Id: Ibb1e81ef7272c3ca8e766c17b5a105d69be98c51
2012-10-03Refactoring of the plugin/extension classesXavier Ducrohet
Mostly removed "android" from the class names. There is now: - BasePlugin / BaseExtension - AppPlugin / AppExtension - LibraryPlugin / LibraryExtension Also renamed: - AndroidLogger -> LoggerWrapper - BaseAndroidTask -> BaseTask Change-Id: I9d5dfc4b3a2d3de0bc62243a81a183d89e212ebc
2012-09-28Better detection of dependency conflicts.Xavier Ducrohet
Change-Id: I5983d819049f3aca33c343d08e527a6c4db2c4bb
2012-09-26Only package libraries that have been processed.Xavier Ducrohet
Before dex would be given the whole classpath of the JavaCompile task. Now it gets the list of AndroidDependency and JarDependency that has been build from looking at the compile dependency graph. This allows us to filter some artifacts, like the android.jar artifact and its dependencies. Change-Id: I90cd911451a0df0df2873eda152a69eda715d239
2012-09-26Generate smaller R classes for libraries.Xavier Ducrohet
Using the new --output-text-symbols from aapt the build system now generates the R class for libraries manually based on the symbols exported by the libraries and the final values computed by aapt when using all the resource folders. Because only R.java is concerned, the Manifest class is now included in the library jar file. Also added a new test apps that uses instrumentation to verify the build system. Change-Id: I0e9ba124cfba729f4ab8021b440b1ac70c5d1b80
2012-09-26Check version of android.jar coming from repositories.Xavier Ducrohet
If a dependency brings in android.jar from a repository, its version is checked against the project build target. Ultimately we should also test it against the min sdk version. Change-Id: I6c83449dcb82947cfebc284f75840fc9cb9d035a
2012-09-26Exclude any part of the Android API from the dependency graph.Adam Murdoch
This only excludes a subset, as I'm not entirely sure what needs to be excluded. Change-Id: I82c9b6641e0954cabf2e361ce9033ff818fded94
2012-09-26Reworked dependency graph traversalAdam Murdoch
This ensures that all transitive dependencies are visited, so that the AndroidDependency and JarDependency information attached to VariantConfiguration is correct. Change-Id: Ib1074fb8f18231799cb7ff68762d1bbba11f25ef
2012-09-26Upgraded to use Gradle 1.2.Adam Murdoch
Change-Id: Ie5996f617a4e1b370167e8635a78909f16672f6e
2012-09-24Add support for --core-library option for dx.Xavier Ducrohet
Change-Id: I28084b92e73a59c2105d26af37c8662953dec4c3
2012-09-24Make local.properties belong to rootDir.Xavier Ducrohet
This allows multi-project setup to have a single local.prop file located at the root folder instead of one per sub project. Change-Id: Ie815488fdf2e07cad5f348496d2d263fe633894d