/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠR ick ĠBus ar ow Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// 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 Ġbenchmark Ċ Ċ import Ġjava . io . File Ċ import Ġjava . util . Locale Ċ Ċ fun Ġcreate H ilt Project ( rootDir : ĠFile , Ġmodule Names : ĠList < String >) Ġ{ ĊĊĠ Ġmodule Names . forEach Ġ{ ĠmoduleName Ġ-> ĊĊĠĠĠ Ġval Ġmodule Root Ġ= ĠFile ( File ( rootDir , Ġ" libs "), ĠmoduleName ). path ĊĊĠĠĠ Ġh ilt Library Build File ( module Root ). write () ĊĊĠĠĠ Ġval ĠpackageName Ġ= Ġ" h ilt . benchmark .$ moduleName " ĊĊĠĠĠ Ġmanifest File ( module Root , ĠpackageName ). write () ĊĊĠĠĠ Ġval Ġpackage Root Ġ= Ġ"$ module Root / src / main / java / h ilt / benchmark /$ moduleName " ĊĊĠĠĠ Ġval Ġclass Prefix Ġ= ĠmoduleName . capitalize ( Locale . US ) ĊĊĠĠĠ Ġh ilt ViewModel File ( package Root , Ġclass Prefix , ĠpackageName ). write () ĊĠĠĠ Ġh ilt Fragment File ( package Root , Ġclass Prefix , ĠpackageName ). write () ĊĠ Ġ} ĊĊĠ Ġval Ġapp Module Root Ġ= ĠFile ( rootDir , Ġ" h ilt - app "). path ĊĠ Ġval Ġapp PackageName Ġ= Ġ" h ilt . benchmark . app " ĊĊĠ Ġh ilt App Build File ( module Names , Ġapp Module Root ). write () ĊĠ Ġmanifest File ( app Module Root , Ġapp PackageName ). write () ĊĠ Ġh ilt App File ( app Module Root , Ġapp PackageName ). write () Ċ } Ċ Ċ internal Ġfun Ġh ilt ViewModel File ( ĊĠ Ġpackage Root : ĠString , ĊĠ Ġclass Prefix : ĠString , ĊĠ ĠpackageName : ĠString Ċ ): ĠKotlin File Ġ{ ĊĊĠ Ġval ĠviewModel Name Ġ= Ġ"${ class Prefix } ViewModel " ĊĊĠ Ġreturn ĠKotlin File ( ĊĠĠĠ Ġdirectory Ġ= Ġpackage Root , ĊĠĠĠ Ġname Ġ= ĠviewModel Name , ĊĠĠĠ Ġcontent Ġ= Ġ""" package Ġ$ packageName ĊĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠ Ġ| import Ġandroidx . lifecycle . ViewModel ĊĠĠĠĠĠĠĠĠĠ Ġ| import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel ĊĠĠĠĠĠĠĠĠĠ Ġ| import Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠ Ġ| @ H ilt ViewModel ĊĠĠĠĠĠĠĠĠĠ Ġ| class Ġ$ viewModel Name Ġ@ Inject Ġconstructor () Ġ: ĠViewModel () ĊĠĠĠĠĠĠĠ Ġ| """. trim Margin () ĊĠ Ġ) Ċ } Ċ Ċ internal Ġfun Ġh ilt Fragment File ( ĊĠ Ġpackage Root : ĠString , ĊĠ Ġclass Prefix : ĠString , ĊĠ ĠpackageName : ĠString Ċ ): ĠKotlin File Ġ{ ĊĊĠ Ġval Ġfragment Name Ġ= Ġ"${ class Prefix } Fragment " ĊĊĠ Ġreturn ĠKotlin File ( ĊĠĠĠ Ġdirectory Ġ= Ġpackage Root , ĊĠĠĠ Ġname Ġ= Ġfragment Name , ĊĠĠĠ Ġcontent Ġ= Ġ""" package Ġ$ packageName ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| import Ġandroid . app . Application ĊĠĠĠĠĠĠĠ Ġ| import Ġandroidx . fragment . app . Fragment ĊĠĠĠĠĠĠĠ Ġ| import Ġdagger . h ilt . android . Android EntryPoint ĊĠĠĠĠĠĠĠ Ġ| import Ġjavax . inject . Inject ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| @ Android EntryPoint ĊĠĠĠĠĠĠĠ Ġ| class Ġ$ fragment Name Ġ: ĠFragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ// Ġjust Ġneed Ġsomething Ġto Ġinject , ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ// Ġso Ġthat ĠH ilt Ġdoesn 't Ġget Ġto Ġskip Ġgenerating ĠMember Inject ors ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ@ Inject Ġlateinit Ġvar Ġapp : ĠApplication ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| """. trim Margin () ĊĠ Ġ) Ċ } Ċ Ċ internal Ġfun Ġh ilt Library Build File ( ĊĠ Ġmodule Root : ĠString Ċ ): ĠBuild File Ġ{ ĊĊĠ Ġreturn ĠBuild File ( ĊĠĠĠ Ġdirectory Ġ= Ġmodule Root , ĊĠĠĠ Ġcontent Ġ= Ġ""" plugins { ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġid (" com . android . library ") ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġkotlin (" android ") ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġkotlin (" k apt ") ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġid (" d agger . h ilt . android . plugin ") ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| k apt Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġcorrect Error Types Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġuse Build Cache Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| android Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġcompile Sdk Ġ= Ġ 3 1 ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġmin Sdk Ġ= Ġ 2 1 ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġtarget Sdk Ġ= Ġ 3 1 ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ} ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| dependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġk apt ( libs . google . h ilt . compiler ) ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġapi ( libs . google . h ilt . library ) ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġapi ( libs . android x . fragment . k tx ) ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġapi ( libs . android x . lifecycle . viewModel . k tx ) ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| """. trim Margin () ĊĠ Ġ) Ċ } Ċ Ċ internal Ġfun Ġh ilt App File ( module Root : ĠString , ĠpackageName : ĠString ): ĠKotlin File Ġ{ ĊĠ Ġval Ġpackage Root Ġ= Ġ"$ module Root / src / main / java / h ilt / benchmark / app " ĊĊĠ Ġreturn ĠKotlin File ( ĊĠĠĠ Ġdirectory Ġ= Ġpackage Root , ĊĠĠĠ Ġname Ġ= Ġ" App ", ĊĠĠĠ Ġcontent Ġ= Ġ""" package Ġ$ packageName ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| import Ġandroid . app . Application ĊĠĠĠĠĠĠĠ Ġ| import Ġdagger . h ilt . android . H ilt Android App ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| @ H ilt Android App ĊĠĠĠĠĠĠĠ Ġ| class ĠApp : ĠApplication () ĊĠĠĠĠĠĠĠ Ġ| """. trim Margin () ĊĠ Ġ) Ċ } Ċ Ċ internal Ġfun Ġh ilt App Build File ( ĊĠ Ġmodule Names : ĠList < String >, ĊĠ Ġmodule Root : ĠString Ċ ): ĠBuild File Ġ{ ĊĊĠ Ġval Ġproject Deps Ġ= Ġmodule Names . join ToString ("\ n Ġ Ġ") Ġ{ Ġname Ġ-> ĊĠĠĠ Ġ" api ( project ( path Ġ= Ġ\ ": libs :$ name \" )) " ĊĠ Ġ} ĊĊĠ Ġreturn ĠBuild File ( ĊĠĠĠ Ġdirectory Ġ= Ġmodule Root , ĊĠĠĠ Ġcontent Ġ= Ġ""" plugins { ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġid (" com . android . library ") ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġkotlin (" android ") ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġkotlin (" k apt ") ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġid (" d agger . h ilt . android . plugin ") ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| k apt Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġcorrect Error Types Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġuse Build Cache Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| android Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġcompile Sdk Ġ= Ġ 3 1 ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġmin Sdk Ġ= Ġ 2 1 ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġtarget Sdk Ġ= Ġ 3 1 ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ} ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| dependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġk apt ( libs . google . h ilt . compiler ) ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġk apt ( libs . android x . h ilt . compiler ) ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġapi ( libs . google . h ilt . library ) ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġapi ( libs . android x . fragment . k tx ) ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġapi ( libs . android x . lifecycle . viewModel . k tx ) ĊĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ$ project Deps ĊĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠ Ġ| """. trim Margin () ĊĠ Ġ) Ċ } Ċ