/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠTouch lab Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . library ") Ġversion Ġ" 4 . 1 . 2 " ĊĠĠĠ Ġkotlin (" multi platform ") Ċ } Ċ Ċ val ĠGROUP : ĠString Ġby Ġproject Ċ val ĠVERSION _ NAME : ĠString Ġby Ġproject Ċ Ċ group Ġ= ĠGROUP Ċ version Ġ= ĠVERSION _ NAME Ċ Ċ val Ġidea Active Ġ= ĠSystem . getProperty (" idea . active ") Ġ== Ġ" true " Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġgoogle () ĊĠĠĠ Ġmaven Central () Ċ } Ċ Ċ kotlin Ġ{ ĊĠĠĠ Ġandroid Ġ{ ĊĠĠĠĠĠĠĠ Ġpublish All Library Variants () ĊĠĠĠ Ġ} ĊĠĠĠ Ġj vm () ĊĠĠĠ Ġjs ( BOTH ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser () ĊĠĠĠĠĠĠĠ Ġnodejs () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdar win Targets Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" macos X 6 4 ", ĊĠĠĠĠĠĠĠ Ġ" ios Arm 3 2 ", ĊĠĠĠĠĠĠĠ Ġ" ios Arm 6 4 ", ĊĠĠĠĠĠĠĠ Ġ" ios X 6 4 ", ĊĠĠĠĠĠĠĠ Ġ" watch os Arm 3 2 ", ĊĠĠĠĠĠĠĠ Ġ" watch os Arm 6 4 ", ĊĠĠĠĠĠĠĠ Ġ" watch os X 8 6 ", ĊĠĠĠĠĠĠĠ Ġ" watch os X 6 4 ", ĊĠĠĠĠĠĠĠ Ġ" tv os Arm 6 4 ", ĊĠĠĠĠĠĠĠ Ġ" tv os X 6 4 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġnon Dar win Targets Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠ Ġif Ġ( idea Active ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmac os X 6 4 (" darwin ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġpresets . with Type < org . jetbrains . kotlin . gradle . plugin . mpp . Abstract Kotlin Native Target Preset <* >> (). forEach Ġ{ Ġpreset Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! darwin Targets . contains ( preset . name )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon Dar win Targets . add ( preset . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget From Preset ( preset ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġcommon Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib - common ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcommon Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - common ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - annotations - common ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġandroid Main Ġby Ġsource Sets . getting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġandroid Test Ġby Ġsource Sets . getting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - junit ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" android x . test : runner : 1 . 2 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" org . ro bo lectric : ro bo lectric : 4 . 3 . 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnative Main Ġ= Ġsource Sets . maybe Create (" native Main "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Main . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdar win Main Ġ= Ġsource Sets . maybe Create (" darwin Main "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( native Main ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġjs Main Ġ= Ġsource Sets . maybe Create (" js Main "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Main . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib - js ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġjs Test Ġ= Ġsource Sets . maybe Create (" js Test "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Test . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - js ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! idea Active ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdar win Targets . map Ġ{ Ġtargets . find ByName ( it ) Ġ}. filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . find ByName (" main ") ?. source ( darwin Main ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Sets . find ByName (" darwin Test ") ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . find ByName (" test ") ?. source ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon Dar win Targets . map Ġ{ Ġtargets . find ByName ( it ) Ġ}. filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . find ByName (" main ") ?. source ( native Main ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Sets . find ByName (" native Test ") ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . find ByName (" test ") ?. source ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġj vm Main Ġ= Ġsource Sets . maybe Create (" jvm Main "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Main . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġj vm Test Ġ= Ġsource Sets . maybe Create (" jvm Test "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Test . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - junit ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Version ( 2 9 ) ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( 1 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmain Ġby Ġsource Sets . getting Ġ{ ĊĠĠĠĠĠĠĠ Ġmanifest . src File (" src / android Main / Android Manifest . xml ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ apply ( from Ġ= Ġ"../ gradle / gradle - mvn - mpp - push . gradle ") Ċ