import Ġcom . android . build . gradle . Library Extension Ċ import Ġorg . gradle . api . Java Version Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ // ĠAndroid Ċ Ċ fun ĠProject . android Lib ( extra Conf : Ġ( Library Extension . () Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġextensions . getBy Type ( Library Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Android () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Conf ?. invoke ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġkotlin Compile () Ċ } Ċ Ċ fun ĠProject . android For Multi platform Lib () Ġ{ ĊĠĠĠ Ġextensions . getBy Type ( Library Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Android () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ByName (" main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest . src File (" src / android Main / Android Manifest . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dirs (" src / android Main / kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres . src Dirs (" src / android Main / res ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ByName (" android Test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dirs (" src / android Test / kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres . src Dirs (" src / android Test / res ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . kotlin Compile () Ġ{ ĊĠĠĠ Ġtasks . with Type ( Kotlin Compile :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠLibrary Extension . configure Android ( ĊĠĠĠ Ġcustom Conf : Ġ( Library Extension . () Ġ-> ĠUnit )? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġcompile Sdk Ġ= ĠVersions . compile Sdk ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Ġ= ĠVersions . min Sdk ĊĠĠĠĠĠĠĠ Ġtarget Sdk Ġ= ĠVersions . target Sdk ĊĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android x . test . runner . Android JUnit Runner " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Options . unit Tests . is Include Android Resources Ġ= Ġtrue ĊĊĠĠĠ Ġcustom Conf ?. invoke ( this ) Ċ }