/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠExp edia , ĠInc Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . exp edi ag roup . graphql . plugin . gradle Ċ Ċ import Ġcom . android . build . gradle . App Extension Ċ import Ġcom . android . build . gradle . Base Extension Ċ import Ġcom . android . build . gradle . Library Extension Ċ import Ġcom . android . build . gradle . Tested Extension Ċ import Ġcom . android . build . gradle . api . Base Variant Ċ import Ġcom . exp edi ag roup . graphql . plugin . gradle . tasks . GraphQL Generate Client Task Ċ import Ġcom . exp edi ag roup . graphql . plugin . gradle . tasks . GraphQL Generate Test Client Task Ċ import Ġorg . gradle . api . Project Ċ Ċ // Ġis ol ating ĠAndroid Ġspecific Ġcode Ġthat Ġwill Ġbe Ġcondition ally Ġexecuted Ġonly Ġon ĠAndroid Ġprojects Ċ // Ġsee Ġhttps :// github . com / gradle / gradle / issues / 8 4 1 1 Ċ internal Ġfun Ġconfigure Android Compile Tasks ( project : ĠProject , Ġclient Generating Tasks : ĠList < GraphQL Generate Client Task >, Ġtest Client Generating Tasks : ĠList < GraphQL Generate Test Client Task >) Ġ{ ĊĠĠĠ Ġval Ġandroid Extension Ġ= Ġproject . extensions . findBy Type ( Base Extension :: class . java ) ĊĊĠĠĠ Ġval Ġ( variant Compile Names , Ġtest Variant Compile Names ) Ġ= Ġwhen Ġ( android Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠLibrary Extension Ġ-> Ġandroid Extension . library Variants . map Ġ{ Ġit . calculate Compile Task Name () Ġ} Ġto Ġfind Test Variants ( android Extension ). map Ġ{ Ġit . calculate Compile Task Name () Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠApp Extension Ġ-> Ġandroid Extension . application Variants . map Ġ{ Ġit . calculate Compile Task Name () Ġ} Ġto Ġfind Test Variants ( android Extension ). map Ġ{ Ġit . calculate Compile Task Name () Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠRuntimeException ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unsupported Ġconfiguration Ġ- Ġunable Ġto Ġdetermine Ġappropriate ĠAndroid Ġcompile ĠKotlin Ġtask . Ġgraphql - kotlin Ġplugin Ġonly Ġsupports ĠAndroid Ġlibraries Ġand Ġapplications " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( client Task Ġin Ġclient Generating Tasks ) Ġ{ ĊĠĠĠĠĠĠĠ Ġandroid Extension . source Sets . find ByName (" main ") ?. java ?. src Dir ( client Task . output Directory ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( variant Compile Name Ġin Ġvariant Compile Names ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . tasks . named ( variant Compile Name ). configure Ġ{ Ġcompile Task Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . depends On ( client Task ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( test Client Task Ġin Ġtest Client Generating Tasks ) Ġ{ ĊĠĠĠĠĠĠĠ Ġandroid Extension . source Sets . find ByName (" test ") ?. java ?. src Dir ( test Client Task . output Directory ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( test Variant Compile Name Ġin Ġtest Variant Compile Names ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . tasks . named ( test Variant Compile Name ). configure Ġ{ Ġcompile Task Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . depends On ( test Client Task ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġfind Test Variants ( extension : ĠTested Extension ): ĠSet < Base Variant > Ġ= ĊĠĠĠ Ġextension . test Variants Ġ+ Ġextension . unit Test Variants Ċ Ċ private Ġfun ĠBase Variant . calculate Compile Task Name () Ġ= Ġ" compile ${ this . name . capitalize ()} Kotlin " Ċ