blob: b30d1edfddb70e76fd9d5d00804b9c17fbb87c92 [file] [log] [blame]
Chris Banese17c5192016-06-01 13:36:05 +01001/////////////////////////////
2//
Jeff Gastoncfc647a2018-01-29 17:19:41 -05003// Buildscript utils
4//
5/////////////////////////////
6
7
8// Calling includeProject(name, filePath) is shorthand for:
9//
10// include(name)
11// project(name).projectDir = new File(filePath)
12//
13// Note that <name> directly controls the Gradle project name, and also indirectly sets:
14// the project name in the IDE
15// the Maven artifactId
16//
17def includeProject(name, filePath) {
Aurimas Liutikas15dadc52018-02-13 10:17:58 -080018 settings.include(name)
Jeff Gastoncfc647a2018-01-29 17:19:41 -050019
Aurimas Liutikas15dadc52018-02-13 10:17:58 -080020 def file
21 if (filePath instanceof String) {
22 file = new File(filePath)
23 } else {
24 file = filePath
25 }
26 project(name).projectDir = file
Jeff Gastoncfc647a2018-01-29 17:19:41 -050027}
28
29
Jeff Gastoncfc647a2018-01-29 17:19:41 -050030/////////////////////////////
31//
Chris Banese17c5192016-06-01 13:36:05 +010032// Libraries
33//
34/////////////////////////////
35
Ian Lake6e53bd192018-08-31 10:59:49 -070036includeProject(":activity", "activity")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -070037includeProject(":annotation", "annotations")
Sergey Vasilinets220084f2018-09-05 15:42:14 -070038includeProject(":animation", "animation")
39includeProject(":animation:testing", "animation/testing")
Doris Liub17dea42018-08-21 10:57:11 -070040includeProject(":animation:integration-tests:testapp", "animation/integration-tests/testapp")
Aurimas Liutikascaf98452018-06-06 16:16:44 -070041includeProject(":appcompat", "appcompat")
Jake Wharton0d4f1a22018-07-24 16:00:42 -040042includeProject(":arch:core-common", "arch/core-common")
43includeProject(":arch:core-testing", "arch/core-testing")
44includeProject(":arch:core-runtime", "arch/core-runtime")
Aurimas Liutikas9064fa42018-02-13 15:17:37 -080045includeProject(":asynclayoutinflater", "asynclayoutinflater")
Chris Craik55d0f2d2018-06-27 13:55:20 -070046includeProject(":benchmark", "benchmark")
Kevin Chyn3d0c9702018-04-05 17:28:33 -070047includeProject(":biometric", "biometric")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -070048includeProject(":browser", "browser")
Roberto Pereze2ce75f2018-07-27 13:14:34 -070049includeProject(":car", "car/core")
50includeProject(":car-cluster", "car/cluster")
Anthony Chen6c090632018-09-07 16:24:50 -070051includeProject(":car-moderator", "car/moderator")
Jake Whartone94ca662018-03-09 09:50:16 -050052includeProject(":cardview", "cardview")
Jake Wharton3f4d91b2018-03-08 12:23:52 -050053includeProject(":collection", "collection")
Jake Whartonb9b8af242018-03-15 16:54:55 -040054includeProject(":collection-ktx", "collection/ktx")
Sergey Vasilinetsc546c842018-09-20 15:14:42 -070055includeProject(":concurrent:concurrent-futures", "concurrent/futures")
Filip Pavlis48058842018-05-03 17:49:59 +010056includeProject(":contentpager", "content")
Aurimas Liutikasd4219a72018-02-08 16:00:17 -080057includeProject(":coordinatorlayout", "coordinatorlayout")
Aurimas Liutikas64ac1552018-08-13 16:08:09 -070058includeProject(":core", "core")
Jake Wharton6889aa52018-03-28 16:04:32 -040059includeProject(":core-ktx", "core/ktx")
Aurimas Liutikasfa72a482018-02-21 11:48:48 -080060includeProject(":cursoradapter", "cursoradapter")
Aurimas Liutikas2ffc5792018-02-09 17:17:47 -080061includeProject(":customview", "customview")
Aurimas Liutikas9d274e12018-02-13 17:57:56 -080062includeProject(":documentfile", "documentfile")
Aurimas Liutikas629ed7f2018-02-12 14:47:46 -080063includeProject(":drawerlayout", "drawerlayout")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -070064includeProject(":dynamicanimation", "dynamic-animation")
65includeProject(":emoji", "emoji/core")
66includeProject(":emoji-bundled", "emoji/bundled")
67includeProject(":emoji-appcompat", "emoji/appcompat")
Aurimas Liutikas15dadc52018-02-13 10:17:58 -080068includeProject(":exifinterface", "exifinterface")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -070069includeProject(":fragment", "fragment")
70includeProject(":fragment-ktx", "fragment/ktx")
Jake Whartone94ca662018-03-09 09:50:16 -050071includeProject(":gridlayout", "gridlayout")
Chong Zhang7cabcac2018-01-25 16:18:44 -080072includeProject(":heifwriter", "heifwriter")
Aurimas Liutikas368a8e52018-02-13 09:55:20 -080073includeProject(":interpolator", "interpolator")
Jeff Gastona2208ae2018-01-29 17:48:21 -050074includeProject(":jetifier-core", "jetifier/jetifier/core")
Filip Pavlis4a360e32018-03-23 18:42:42 +000075includeProject(":jetifier-processor", "jetifier/jetifier/processor")
Jeff Gastona2208ae2018-01-29 17:48:21 -050076includeProject(":jetifier-gradle-plugin", "jetifier/jetifier/gradle-plugin")
77includeProject(":jetifier-standalone", "jetifier/jetifier/standalone")
78includeProject(":jetifier-preprocessor", "jetifier/jetifier/preprocessor")
Aurimas Liutikasac5fe7c2018-03-06 14:40:53 -080079includeProject(":leanback", "leanback")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -070080includeProject(":leanback-preference", "leanback-preference")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -070081includeProject(":lifecycle:integration-tests:testapp", "lifecycle/integration-tests/testapp")
82includeProject(":lifecycle:lifecycle-common", "lifecycle/common")
83includeProject(":lifecycle:lifecycle-common-java8", "lifecycle/common-java8")
84includeProject(":lifecycle:lifecycle-compiler", "lifecycle/compiler")
85includeProject(":lifecycle:lifecycle-extensions", "lifecycle/extensions")
86includeProject(":lifecycle:lifecycle-livedata-core", "lifecycle/livedata-core")
Sergey Vasilinets2d6355b2018-08-02 22:42:05 -070087includeProject(":lifecycle:lifecycle-livedata-core-ktx", "lifecycle/livedata-core/ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -070088includeProject(":lifecycle:lifecycle-livedata", "lifecycle/livedata")
Sergey Vasilinetsafeb0b72018-09-28 11:35:47 +010089includeProject(":lifecycle:lifecycle-livedata-ktx", "lifecycle/livedata/ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -070090includeProject(":lifecycle:lifecycle-process", "lifecycle/process")
91includeProject(":lifecycle:lifecycle-reactivestreams", "lifecycle/reactivestreams")
Ian Lake3fde41c2018-05-07 09:11:44 -070092includeProject(":lifecycle:lifecycle-reactivestreams-ktx", "lifecycle/reactivestreams/ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -070093includeProject(":lifecycle:lifecycle-runtime", "lifecycle/runtime")
Sergey Vasilinets8c82dde2018-07-23 13:31:57 -070094includeProject(":lifecycle:lifecycle-savedstate-core", "lifecycle/savedstate-core")
95includeProject(":lifecycle:lifecycle-savedstate-fragment", "lifecycle/savedstate-fragment")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -070096includeProject(":lifecycle:lifecycle-service", "lifecycle/service")
97includeProject(":lifecycle:lifecycle-viewmodel", "lifecycle/viewmodel")
Ian Lakeab564892018-05-07 08:32:17 -070098includeProject(":lifecycle:lifecycle-viewmodel-ktx", "lifecycle/viewmodel/ktx")
Sergey Vasilinets86b16e22018-07-23 13:42:25 -070099includeProject(":lifecycle:lifecycle-viewmodel-savedstate", "lifecycle/viewmodel-savedstate")
100includeProject(":lifecycle:lifecycle-viewmodel-fragment","lifecycle/viewmodel-fragment")
Ian Lake2e772972018-02-16 16:22:47 -0800101includeProject(":loader", "loader")
Aurimas Liutikas9c9c4642018-02-13 18:26:36 -0800102includeProject(":localbroadcastmanager", "localbroadcastmanager")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -0700103includeProject(":media", "media")
Aurimas Liutikas6b7a4992018-06-06 16:07:02 -0700104includeProject(":media2", "media2")
Andrew Lewis51999562018-07-24 11:03:01 +0100105includeProject(":media2-exoplayer", "media2/media2-exoplayer")
Jin Seok Park3aa13ea2018-04-09 17:18:07 +0900106includeProject(":media-widget", "media-widget")
Jake Whartone94ca662018-03-09 09:50:16 -0500107includeProject(":mediarouter", "mediarouter")
Ian Lakebef57532018-08-17 16:14:13 -0700108includeProject(":navigation:navigation-benchmark", "navigation/benchmark")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700109includeProject(":navigation:navigation-common", "navigation/common")
110includeProject(":navigation:navigation-common-ktx", "navigation/common/ktx")
111includeProject(":navigation:navigation-runtime", "navigation/runtime/")
112includeProject(":navigation:navigation-runtime-ktx", "navigation/runtime/ktx")
113includeProject(":navigation:navigation-testing", "navigation/testing")
114includeProject(":navigation:navigation-testing-ktx", "navigation/testing/ktx")
115includeProject(":navigation:navigation-fragment", "navigation/fragment")
116includeProject(":navigation:navigation-fragment-ktx", "navigation/fragment/ktx")
117includeProject(":navigation:navigation-ui", "navigation/ui")
118includeProject(":navigation:navigation-ui-ktx", "navigation/ui/ktx")
119includeProject(":navigation:navigation-integration-tests:testapp", "navigation/integration-tests/testapp")
120includeProject(":navigation:navigation-safe-args-generator", "navigation/safe-args-generator")
121includeProject(":navigation:navigation-safe-args-gradle-plugin", "navigation/safe-args-gradle-plugin")
122includeProject(":paging:integration-tests:testapp", "paging/integration-tests/testapp")
123includeProject(":paging:paging-common", "paging/common")
Chris Craik51f6bc22018-05-23 18:11:26 -0700124includeProject(":paging:paging-common-ktx", "paging/common/ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700125includeProject(":paging:paging-runtime", "paging/runtime")
Chris Craik51f6bc22018-05-23 18:11:26 -0700126includeProject(":paging:paging-runtime-ktx", "paging/runtime/ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700127includeProject(":paging:paging-rxjava2", "paging/rxjava2")
Chris Craik51f6bc22018-05-23 18:11:26 -0700128includeProject(":paging:paging-rxjava2-ktx", "paging/rxjava2/ktx")
Jake Whartone94ca662018-03-09 09:50:16 -0500129includeProject(":palette", "palette")
Jake Whartonb9b8af242018-03-15 16:54:55 -0400130includeProject(":palette-ktx", "palette/ktx")
Aurimas Liutikasac5fe7c2018-03-06 14:40:53 -0800131includeProject(":percentlayout", "percent")
Jake Whartone94ca662018-03-09 09:50:16 -0500132includeProject(":preference", "preference")
Jake Whartonc70fa8c2018-05-29 11:03:00 -0400133includeProject(":preference-ktx", "preference/ktx")
Aurimas Liutikasa00210b2018-02-13 18:40:38 -0800134includeProject(":print", "print")
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800135includeProject(":recommendation", "recommendation")
Chris Craik88ee7a92018-07-24 10:01:37 -0700136includeProject(":recyclerview", "recyclerview/recyclerview")
137includeProject(":recyclerview:recyclerview-benchmark", "recyclerview/benchmark")
Jake Wharton442c02b2018-07-25 09:16:40 -0400138includeProject(":recyclerview-selection", "recyclerview/selection")
Daniel Santiago Rivera038e6742018-07-13 15:18:42 -0700139includeProject(":room:integration-tests:autovaluetestapp", "room/integration-tests/autovaluetestapp")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700140includeProject(":room:integration-tests:testapp", "room/integration-tests/testapp")
141includeProject(":room:integration-tests:kotlintestapp", "room/integration-tests/kotlintestapp")
142includeProject(":room:room-common", "room/common")
143includeProject(":room:room-compiler", "room/compiler")
144includeProject(":room:room-guava", "room/guava")
145includeProject(":room:room-migration", "room/migration")
146includeProject(":room:room-runtime", "room/runtime")
147includeProject(":room:room-rxjava2", "room/rxjava2")
148includeProject(":room:room-testing", "room/testing")
Jason Monk41c9f812018-08-03 19:33:21 -0400149includeProject(":remotecallback-processor", "remotecallback/processor")
150includeProject(":remotecallback", "remotecallback")
Jason Monk9d826882018-05-17 11:22:14 -0400151includeProject(":versionedparcelable-annotation", "versionedparcelable/annotation")
152includeProject(":versionedparcelable", "versionedparcelable")
Aurimas Liutikas4d33d5f2018-04-10 11:09:27 -0700153includeProject(":slice-core", "slices/core")
154includeProject(":slice-view", "slices/view")
155includeProject(":slice-builders", "slices/builders")
Jason Monkb2e03512018-06-01 14:11:26 -0400156includeProject(":slice-test", "slices/test")
Doug Sigelbaum7f8b0002018-05-10 13:53:19 -0700157includeProject(":slice-builders-ktx", "slices/builders/ktx")
Jason Monk6d56f3b2018-07-30 15:13:56 -0400158includeProject(":slice-benchmark", "slices/benchmark")
Aurimas Liutikas0888e162018-02-12 14:59:46 -0800159includeProject(":slidingpanelayout", "slidingpanelayout")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700160includeProject(":sqlite:sqlite", "persistence/db")
Jake Whartonf09c2272018-05-04 15:31:19 -0400161includeProject(":sqlite:sqlite-ktx", "persistence/db/ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700162includeProject(":sqlite:sqlite-framework", "persistence/db-framework")
Aurimas Liutikas368a8e52018-02-13 09:55:20 -0800163includeProject(":swiperefreshlayout", "swiperefreshlayout")
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800164includeProject(":textclassifier", "textclassifier")
Tony Makfa6e6d22018-06-06 16:42:13 +0100165includeProject(":textclassifier:integration-tests:testapp", "textclassifier/integration-tests/testapp")
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800166includeProject(":transition", "transition")
Aurimas Liutikasb7b47a12018-03-14 17:10:10 -0700167includeProject(":tvprovider", "tv-provider")
168includeProject(":vectordrawable", "graphics/drawable/static")
169includeProject(":vectordrawable-animated", "graphics/drawable/animated")
Aurimas Liutikasf1efe442018-02-08 14:21:20 -0800170includeProject(":viewpager", "viewpager")
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800171includeProject(":viewpager2", "viewpager2")
172includeProject(":wear", "wear")
173includeProject(":webkit", "webkit")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700174includeProject(":work:work-runtime", "work/workmanager")
Jake Whartonf09c2272018-05-04 15:31:19 -0400175includeProject(":work:work-runtime-ktx", "work/workmanager-ktx")
Aurimas Liutikas4a107ca2018-04-26 13:41:59 -0700176includeProject(":work:work-firebase", "work/workmanager-firebase")
177includeProject(":work:work-testing", "work/workmanager-test")
178includeProject(":work:integration-tests:testapp", "work/integration-tests/testapp")
Gustav Sennton18f68e72017-12-15 12:00:40 +0000179
Chris Banese17c5192016-06-01 13:36:05 +0100180/////////////////////////////
181//
Jake Wharton65c15e1c2018-03-08 12:56:46 -0500182// Legacy
183//
184/////////////////////////////
185
186includeProject(":legacy-support-core-ui", "legacy/core-ui")
187includeProject(":legacy-support-core-utils", "legacy/core-utils")
188includeProject(":legacy-support-v4", "legacy/v4")
189includeProject(":legacy-support-v13", "legacy/v13")
190includeProject(":legacy-preference-v14", "legacy/preference-v14")
191
192/////////////////////////////
193//
Chris Banese17c5192016-06-01 13:36:05 +0100194// Samples
195//
196/////////////////////////////
197
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500198File samplesRoot = new File(rootDir, "samples")
Chris Banese17c5192016-06-01 13:36:05 +0100199
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800200includeProject(":support-animation-demos", new File(samplesRoot, "SupportAnimationDemos"))
201includeProject(":support-app-navigation", new File(samplesRoot, "SupportAppNavigation"))
Kevin Chyn3d0c9702018-04-05 17:28:33 -0700202includeProject(":support-biometric-demos", new File(samplesRoot, "BiometricDemos"))
Aurimas Liutikasf27b1ff2018-03-06 22:38:27 +0000203includeProject(":support-car-demos", new File(samplesRoot, "SupportCarDemos"))
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500204includeProject(":support-content-demos", new File(samplesRoot, "SupportContentDemos"))
Aurimas Liutikasf27b1ff2018-03-06 22:38:27 +0000205includeProject(":support-design-demos", new File(samplesRoot, "SupportDesignDemos"))
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800206includeProject(":support-emoji-demos", new File(samplesRoot, "SupportEmojiDemos"))
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500207includeProject(":support-leanback-demos", new File(samplesRoot, "SupportLeanbackDemos"))
Insun Kangbc048d02018-04-13 03:41:13 +0900208includeProject(":support-media-demos", new File(samplesRoot, "SupportMediaDemos"))
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500209includeProject(":support-percent-demos", new File(samplesRoot, "SupportPercentDemos"))
210includeProject(":support-preference-demos", new File(samplesRoot, "SupportPreferenceDemos"))
Jason Monk41c9f812018-08-03 19:33:21 -0400211includeProject(":support-remotecallback-demos", new File(samplesRoot, "SupportRemoteCallbackDemos"))
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800212includeProject(":support-slices-demos", new File(samplesRoot, "SupportSliceDemos"))
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500213includeProject(":support-transition-demos", new File(samplesRoot, "SupportTransitionDemos"))
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800214includeProject(":support-vector-drawable-demos", new File(samplesRoot, "SupportVectorDrawableDemos"))
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500215includeProject(":support-v4-demos", new File(samplesRoot, "Support4Demos"))
216includeProject(":support-v7-demos", new File(samplesRoot, "Support7Demos"))
217includeProject(":support-v13-demos", new File(samplesRoot, "Support13Demos"))
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500218includeProject(":support-wear-demos", new File(samplesRoot, "SupportWearDemos"))
Aurimas Liutikas15dadc52018-02-13 10:17:58 -0800219includeProject(":viewpager2-demos", new File(samplesRoot, "ViewPager2Demos"))
Jason Monkb2c45792017-12-14 17:30:21 -0500220
Alan Viverettecc5197e2016-06-13 12:45:07 -0400221/////////////////////////////
222//
Aurimas Liutikas6d20a522017-03-10 17:13:03 -0800223// Testing libraries
224//
225/////////////////////////////
226
Aurimas Liutikas67171c82018-02-27 13:10:25 -0800227includeProject(":internal-testutils", "testutils")
Jake Whartonbf04c312018-03-09 13:50:42 -0500228includeProject(":internal-testutils-ktx", "testutils-ktx")
Aurimas Liutikas6d20a522017-03-10 17:13:03 -0800229
230/////////////////////////////
231//
Hyundo Moonda9ee6b2017-07-21 14:32:12 +0900232// Applications and libraries for tests
Hyundo Moon72e64db2017-07-20 14:09:13 +0900233//
234/////////////////////////////
235
Jake Wharton0efa1d52018-03-09 11:37:18 -0500236includeProject(":support-media-compat-test-client", "media/version-compat-tests/current/client")
237includeProject(":support-media-compat-test-client-previous", "media/version-compat-tests/previous/client")
238includeProject(":support-media-compat-test-service", "media/version-compat-tests/current/service")
239includeProject(":support-media-compat-test-service-previous", "media/version-compat-tests/previous/service")
240includeProject(":support-media-compat-test-lib", "media/version-compat-tests/lib")
Hyundo Moonda9ee6b2017-07-21 14:32:12 +0900241
Hyundo Moon72e64db2017-07-20 14:09:13 +0900242/////////////////////////////
243//
Alan Viverettecc5197e2016-06-13 12:45:07 -0400244// External
245//
246/////////////////////////////
247
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500248apply(from: "include-composite-deps.gradle")
249File externalRoot = new File(rootDir, "../../external")
Alan Viverettecc5197e2016-06-13 12:45:07 -0400250
Jeff Gastoncfc647a2018-01-29 17:19:41 -0500251includeProject(":noto-emoji-compat", new File(externalRoot, "noto-fonts/emoji-compat"))
Gustav Senntonf9916c32018-02-14 14:27:45 +0000252includeProject(":webview-support-interfaces", new File(externalRoot, "webview_support_interfaces"))
Siyamed Sinir75b91312017-04-21 19:10:41 -0700253
Sergey Vasilinetscb306422018-05-22 14:39:17 -0700254// fake project which is used for docs generation from prebuilts
255// we need real android project to generate R.java, aidl etc files that mentioned in sources
256if (!startParameter.projectProperties.containsKey('android.injected.invoked.from.ide')) {
257 // we don't need it in ide, so we don't configure it there
258 includeProject(":docs-fake", "docs-fake")
259}
Yigit Boyarbe6fc8b2018-08-15 17:00:31 -0700260
261// dumb test project that has a test for each size to ensure that at least one test is run
262// for each size and test runner is happy when there is nothing to test.
263includeProject(":dumb-tests", "dumb-tests")
264