/* ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġ- Ġ 2 0 2 2 ĠB ui js ĠSoftware Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġdev . bui js . kl utter . core . tasks . adapter . flutter ĊĊ Ċ import Ġdev . bui js . kl utter . core .* Ċ import Ġdev . bui js . kl utter . core . Kl utter Printer Ċ import Ġorg . gradle . api . logging . Logging Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġ@ author ĠG illi an ĠB ui js Ċ Ġ*/ Ċ internal Ġclass ĠAndroid Root Build Gradle Generator ( ĊĠĠĠ Ġprivate Ġval Ġandroid : ĠAndroid , Ċ ): ĠK l utter File Generator () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate () Ġ= Ġwriter (). write () ĊĊĠĠĠ Ġoverride Ġfun Ġprinter () Ġ= ĠAndroid Root Build Gradle Printer () ĊĊĠĠĠ Ġoverride Ġfun Ġwriter () Ġ= ĠAndroid Root Build Gradle Writer ( android . file . resolve (" build . gradle "), Ġprinter (). print ()) Ċ Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠG illi an ĠB ui js Ċ Ġ*/ Ċ internal Ġclass ĠAndroid Root Build Gradle Printer : ĠK l utter Printer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġprint (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdollar Ġ= Ġ"$ " ĊĠĠĠĠĠĠĠ Ġreturn Ġ""" ĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| // ĠAutogenerated Ġby ĠK l utter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| // ĠDo Ġnot Ġedit Ġdirectly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| // ĠSee : Ġhttps :// bui js . dev / kl utter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| build script Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġdef Ġkl utter Gradle File Ġ= Ġnew ĠFile ("$ d ollar { project Dir }/ ../ kl utter . gradle ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġif Ġ(! kl utter Gradle File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġthrow Ġnew ĠGradle Exception (" File Ġnot Ġfound Ġ${ d ollar } kl utter Gradle File ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġapply Ġfrom : Ġ"${ d ollar } kl utter Gradle File " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġgoogle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġmaven Ġ{ Ġurl Ġ= Ġuri (" https :// re psy . io / mvn / bui js - dev / kl utter ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġclasspath Ġ" com . android . tools . build : gradle :$ d ollar { project . ext [" android Gradle Version "] }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġclasspath Ġ" org . jetbrains . kotlin : kotlin - gradle - plugin :$ d ollar { project . ext [" kotlin Version "] }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġclasspath Ġ" dev . bui js . kl utter : core :$ d ollar { project . ext [" kl utter Version "] }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| all projects Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġgoogle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġmaven Ġ{ Ġurl Ġ= Ġuri (" https :// re psy . io / mvn / bui js - dev / kl utter ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| root Project . build Dir Ġ= Ġ'../ build ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| sub projects Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġproject . build Dir Ġ= Ġ"$ d ollar { root Project . build Dir }/ $ d ollar { project . name }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| sub projects Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġproject . evaluation Dep ends On (': app ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| task Ġclean ( type : ĠDelete ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġdelete Ġroot Project . build Dir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ@ author ĠG illi an ĠB ui js Ċ Ġ*/ Ċ internal Ġclass ĠAndroid Root Build Gradle Writer ( val Ġfile : ĠFile , Ġval Ġcontent : ĠString ): ĠK l utter Writer Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLogging . getLogger ( Android Root Build Gradle Writer :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġwrite () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif ( file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . delete (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . debug (" Deleted Ġbuild . gradle : Ġ$ file ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġlog . error (" Build . gradle Ġfile Ġin Ġandroid Ġfolder Ġnot Ġfound . ĠCreating Ġa Ġnew Ġfile !") ĊĊĠĠĠĠĠĠĠ Ġfile . createNew File (). also Ġ{ Ġlog . debug (" Created Ġnew Ġbuild . gradle : Ġ$ file ") Ġ} ĊĠĠĠĠĠĠĠ Ġfile . write Text ( content ). also Ġ{ Ġlog . debug (" Written Ġcontent Ġto Ġ$ file :\ r \ n $ content ") Ġ} ĊĠĠĠ Ġ} Ċ Ċ }