import Ġorg . jetbrains . kotlin . gradle . dsl .* Ċ import Ġorg . jetbrains . kotlin . gradle . plugin .* Ċ import Ġpl . m are k lang iew ic z . defaults .* Ċ import Ġpl . m are k lang iew ic z . deps .* Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġkotlin (" multi platform ") ĊĠĠĠ Ġid (" maven - publish ") ĊĠĠĠ Ġid (" signing ") Ċ } Ċ Ċ default Build Template For M pp Lib ( ĊĠĠĠ Ġdetails Ġ= Ġlibs . Rx Mock , ĊĠĠĠ Ġwith Js Ġ= Ġfalse , ĊĠĠĠ Ġwith Native Linux 6 4 Ġ= Ġfalse , Ċ ) Ċ Ċ kotlin Ġ{ ĊĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ") ĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġj vm Main Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( deps . rx java 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi ( deps . tuple k ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi ( deps . junit 5 ) Ġ// Ġfor Ġassert s Ġin Ġj vm Main ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġregion Ġ[ Kotlin ĠModule ĠBuild ĠTemplate ] Ċ Ċ fun ĠTask Collection < Task >. default Kotlin Compile Options ( ĊĠĠĠ Ġj vm Target Ver : ĠString Ġ= Ġvers . default Jvm , ĊĠĠĠ Ġrequires Opt In : ĠBoolean Ġ= Ġtrue Ċ ) Ġ= Ġwith Type < org . jetbrains . kotlin . gradle . tasks . Kotlin Compile >(). configure Each Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġj vm Target Ver ĊĠĠĠĠĠĠĠ Ġif Ġ( requires Opt In ) Ġfree Compiler Args Ġ= Ġfree Compiler Args Ġ+ Ġ"- X opt - in = kotlin . Requires Opt In " ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġend region Ġ[ Kotlin ĠModule ĠBuild ĠTemplate ] Ċ Ċ // Ġregion Ġ[ MP P ĠModule ĠBuild ĠTemplate ] Ċ Ċ /** ĠOnly Ġfor Ġvery Ġstandard Ġsmall Ġlibs . ĠIn Ġmost Ġcases Ġit 's Ġbetter Ġto Ġnot Ġuse Ġthis Ġfunction . Ġ*/ Ċ fun ĠProject . default Build Template For M pp Lib ( ĊĠĠĠ Ġdetails : ĠLib Details Ġ= Ġlibs . Unknown , ĊĠĠĠ Ġwith Jvm : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Js : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Native Linux 6 4 : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġwith Kotlin x Html : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġwith Compose Jb Dev Repo : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġwith Test JUnit 5 : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Test US pe k X : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġadd Common Main Dependencies : ĠKotlin Dependency Handler . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ Ġrepositories Ġ{ Ġdefault Repos ( with Kotlin x Html Ġ= Ġwith Kotlin x Html , Ġwith Compose Jb Dev Ġ= Ġwith Compose Jb Dev Repo ) Ġ} ĊĠĠĠ Ġdefault Group And Ver And Description ( details ) ĊĠĠĠ Ġkotlin Ġ{ Ġall Default ( ĊĠĠĠĠĠĠĠ Ġwith Jvm , ĊĠĠĠĠĠĠĠ Ġwith Js , ĊĠĠĠĠĠĠĠ Ġwith Native Linux 6 4 , ĊĠĠĠĠĠĠĠ Ġwith Kotlin x Html , ĊĠĠĠĠĠĠĠ Ġwith Test JUnit 5 , ĊĠĠĠĠĠĠĠ Ġwith Test US pe k X , ĊĠĠĠĠĠĠĠ Ġadd Common Main Dependencies ĊĠĠĠ Ġ) Ġ} ĊĠĠĠ Ġtasks . default Kotlin Compile Options () ĊĠĠĠ Ġtasks . default Tests Options ( on Jvm Use JUnit Platform Ġ= Ġwith Test JUnit 5 ) ĊĠĠĠ Ġif Ġ( plugins . has Plugin (" maven - publish ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Publishing ( details ) ĊĠĠĠĠĠĠĠ Ġif Ġ( plugins . has Plugin (" signing ")) Ġdefault Signing () ĊĠĠĠĠĠĠĠ Ġelse Ġprintln (" MP P ĠModule Ġ${ name }: Ġsigning Ġdisabled ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġprintln (" MP P ĠModule Ġ${ name }: Ġpublishing Ġ( and Ġsigning ) Ġdisabled ") Ċ } Ċ Ċ /** ĠOnly Ġfor Ġvery Ġstandard Ġsmall Ġlibs . ĠIn Ġmost Ġcases Ġit 's Ġbetter Ġto Ġnot Ġuse Ġthis Ġfunction . Ġ*/ Ċ @ Suppress (" UNUSED _ VARIABLE ") Ċ fun ĠKotlin Multi platform Extension . all Default ( ĊĠĠĠ Ġwith Jvm : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Js : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Native Linux 6 4 : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġwith Kotlin x Html : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġwith Test JUnit 5 : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Test US pe k X : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġadd Common Main Dependencies : ĠKotlin Dependency Handler . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( with Jvm ) Ġj vm () ĊĠĠĠ Ġif Ġ( with Js ) Ġjs Default () ĊĠĠĠ Ġif Ġ( with Native Linux 6 4 ) Ġlinux X 6 4 () ĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcommon Main Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( with Kotlin x Html ) Ġimplementation ( deps . kotlin x Html ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Common Main Dependencies () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcommon Test Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( with Test US pe k X ) Ġimplementation ( deps . us pe kx ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( with Jvm ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj vm Test Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( with Test JUnit 5 ) Ġimplementation ( deps . junit 5 engine ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( with Native Linux 6 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlinux X 6 4 Main Ġby Ġgetting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlinux X 6 4 Test Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠKotlin Multi platform Extension . js Default ( ĊĠĠĠ Ġwith Browser : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġwith Node : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġtest With Chrome : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġtest Head less : ĠBoolean Ġ= Ġtrue , Ċ ) Ġ{ ĊĠĠĠ Ġjs ( IR ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( with Browser ) Ġbrowser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K arma Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( test With Chrome Ġto Ġtest Head less ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġto Ġtrue Ġ-> Ġuse Chrome Head less () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġto Ġfalse Ġ-> Ġuse Chrome () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( with Node ) Ġnodejs () ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġend region Ġ[ MP P ĠModule ĠBuild ĠTemplate ]