import Ġco . touch lab . kotlin xcode sync . Sync Extension Ċ import Ġcom . android . build . gradle . Base Extension Ċ import Ġorg . gradle . api . Named Domain Object Container Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Extension Aware Ċ import Ġorg . gradle . api . publish . Publishing Extension Ċ import Ġorg . gradle . api . publish . maven . Maven Publication Ċ import Ġorg . gradle . api . publish . maven . tasks . Publish To Maven Repository Ċ import Ġorg . gradle . kotlin . dsl . extra Ċ import Ġorg . gradle . kotlin . dsl . getBy Type Ċ import Ġorg . gradle . kotlin . dsl . with Type Ċ import Ġorg . jetbrains . kotlin . gradle . dsl . Kotlin Multi platform Extension Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Source Set Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Target Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Kotlin Android Target Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Kotlin Multi platform Plugin Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Kotlin Native Target Ċ import Ġorg . jetbrains . kotlin . gradle . targets . js . Kotlin Js Target Ċ import Ġorg . jetbrains . kotlin . gradle . targets . jvm . Kotlin Jvm Target Ċ Ċ enum Ġclass ĠBuild Type Ġ{ ĊĠĠĠ ĠALL , ĠMET ADATA , ĠNON _ NATIVE , ĠAND ROID , ĠJVM , ĠJS , ĠLIN UX , ĠIOS , ĠMAC _ OS Ċ } Ċ Ċ val ĠExtension Aware . build Type : ĠBuild Type ĊĠĠĠ Ġget () Ġ= ĊĠĠĠĠĠĠĠ Ġfind (" build _ type ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let ( Build Type :: valueOf ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠBuild Type . ALL Ċ Ċ private Ġfun ĠExtension Aware . find ( key : ĠString ) Ġ= ĊĠĠĠ Ġif Ġ( extra . has ( key )) Ġextra . get ( key ) Ġelse Ġnull Ċ Ċ interface ĠBuild Target Ġ{ ĊĊĠĠĠ Ġinterface ĠNon Native Ġ: ĠBuild Target ĊĊĠĠĠ Ġinterface ĠNative Ġ: ĠBuild Target ĊĊĠĠĠ Ġinterface ĠDar win Ġ: ĠNative ĊĊĠĠĠ Ġinterface ĠI os Ġ: ĠDar win ĊĊĠĠĠ Ġinterface ĠLinux Ġ: ĠNative ĊĊĠĠĠ Ġobject ĠAndroid Ġ: ĠNon Native ĊĠĠĠ Ġobject ĠJ vm Ġ: ĠNon Native ĊĠĠĠ Ġobject ĠJs Ġ: ĠNon Native ĊĠĠĠ Ġobject ĠI os X 6 4 Ġ: ĠI os ĊĠĠĠ Ġobject ĠI os Arm 6 4 Ġ: ĠI os ĊĠĠĠ Ġobject ĠMac Os X 6 4 Ġ: ĠDar win ĊĠĠĠ Ġobject ĠLinux X 6 4 Ġ: ĠLinux Ċ } Ċ Ċ private Ġval ĠALL _ BUILD _ TARGET S Ġ= ĊĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠ ĠBuild Target . Android , ĊĠĠĠĠĠĠĠ ĠBuild Target . Jvm , ĊĠĠĠĠĠĠĠ ĠBuild Target . Js , ĊĠĠĠĠĠĠĠ ĠBuild Target . I os X 6 4 , ĊĠĠĠĠĠĠĠ ĠBuild Target . I os Arm 6 4 , ĊĠĠĠĠĠĠĠ ĠBuild Target . Mac Os X 6 4 , ĊĠĠĠĠĠĠĠ ĠBuild Target . Linux X 6 4 ĊĠĠĠ Ġ) Ċ Ċ private Ġval ĠBUILD _ TYPE _ TO _ BUILD _ TARGET S : ĠMap < Build Type , ĠSet < Build Target >> Ġ= ĊĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠ ĠBuild Type . ALL Ġto ĠALL _ BUILD _ TARGET S , ĊĠĠĠĠĠĠĠ ĠBuild Type . METADATA Ġto ĠALL _ BUILD _ TARGET S , ĊĠĠĠĠĠĠĠ ĠBuild Type . NON _ NATIVE Ġto Ġset Of ( Build Target . Android , ĠBuild Target . Jvm , ĠBuild Target . Js ), ĊĠĠĠĠĠĠĠ ĠBuild Type . ANDROID Ġto Ġset Of ( Build Target . Android ), ĊĠĠĠĠĠĠĠ ĠBuild Type . JVM Ġto Ġset Of ( Build Target . Jvm ), ĊĠĠĠĠĠĠĠ ĠBuild Type . JS Ġto Ġset Of ( Build Target . Js ), ĊĠĠĠĠĠĠĠ ĠBuild Type . LINUX Ġto Ġset Of ( Build Target . Linux X 6 4 ), ĊĠĠĠĠĠĠĠ ĠBuild Type . IOS Ġto Ġset Of ( Build Target . I os X 6 4 , ĠBuild Target . I os Arm 6 4 ), ĊĠĠĠĠĠĠĠ ĠBuild Type . MAC _ OS Ġto Ġset Of ( Build Target . Mac Os X 6 4 ) ĊĠĠĠ Ġ) Ċ Ċ val ĠBuild Type . build Targets : ĠSet < Build Target > Ġget () Ġ= Ġrequire NotNull ( BUILD _ TYPE _ TO _ BUILD _ TARGET S [ this ]) Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ var ĠExtension Aware . build Targets : ĠSet < Build Target > ĊĠĠĠ Ġget () Ġ= Ġif Ġ( extra . has (" project _ build _ targets ")) Ġextra [" project _ build _ targets "] Ġas ĠSet < Build Target > Ġelse ĠALL _ BUILD _ TARGET S ĊĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra [" project _ build _ targets "] Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠBuild Target > ĠExtension Aware . is Build Target Available (): ĠBoolean Ġ= ĊĠĠĠ Ġbuild Type . build Targets . any Ġ{ Ġit Ġis ĠT Ġ} Ġ&& Ġbuild Targets . any Ġ{ Ġit Ġis ĠT Ġ} Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠBuild Target > ĠExtension Aware . do If Build Target Available ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is Build Target Available < T >()) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠProject . is Any Target Available : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġbuild Type . build Targets . any Ġ{ Ġit Ġin Ġbuild Targets Ġ} Ċ Ċ fun ĠProject . setup Multi platform () Ġ{ ĊĠĠĠ Ġif Ġ(! is Any Target Available ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdo If Build Target Available < Build Target . Android > Ġ{ ĊĠĠĠĠĠĠĠ Ġplugins . apply (" com . android . library ") ĊĊĠĠĠĠĠĠĠ Ġsetup Android Sdk Versions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġplugins . apply (" kotlin - multi platform ") ĊĊĠĠĠ Ġkotlin Compat Ġ{ ĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . Js > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnodejs () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbrowser () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Kotlin Task . kotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Info Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Map Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Map Embed Sources Ġ= Ġ" always " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Kind Ġ= Ġ" umd " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Ġ= Ġ" call " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . Android > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublish Library Variants (" release ", Ġ" debug ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . Jvm > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . Linux X 6 4 > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinux X 6 4 () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . I os X 6 4 > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġios X 6 4 () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . I os Arm 6 4 > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġios Arm 6 4 () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdo If Build Target Available < Build Target . Mac Os X 6 4 > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmac os X 6 4 () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Settings . use Experimental Annotation (" com . ark iv an ov . mv ik otlin . core . instance keeper . Experimental Instance Keeper Api ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommon Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Std Lib . Common ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommon Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Test . Common ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Test Annotations . Common ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs Native Common Main . depends On ( common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs Native Common Test . depends On ( common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Native Common Main . depends On ( common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Native Common Test . depends On ( common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Js Common Main . depends On ( common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Js Common Test . depends On ( common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Common Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Native Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Js Common Main ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Std Lib . J dk 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Common Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Native Common Test ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Js Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Test . J unit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Main . depends On ( jvm Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Test . depends On ( jvm Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Main . depends On ( jvm Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Test . depends On ( jvm Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( js Native Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Js Common Main ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Std Lib . Js ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( js Native Common Test ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Js Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( Deps . Jet brains . Kotlin . Test . Js ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnative Common Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( js Native Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Native Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnative Common Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( js Native Common Test ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( jvm Native Common Test ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinux X 6 4 Main . depends On ( native Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinux X 6 4 Test . depends On ( native Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdar win Common Main . depends On ( native Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdar win Common Test . depends On ( native Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġios Common Main . depends On ( darwin Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġios Common Test . depends On ( darwin Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġios X 6 4 Main . depends On ( ios Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġios X 6 4 Test . depends On ( ios Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġios Arm 6 4 Main . depends On ( ios Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġios Arm 6 4 Test . depends On ( ios Common Test ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmac os X 6 4 Main . depends On ( darwin Common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmac os X 6 4 Test . depends On ( darwin Common Test ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . setup Publication () Ġ{ ĊĠĠĠ Ġplugins . apply (" maven - publish ") ĊĊĠĠĠ Ġgroup Ġ= Ġ" com . ark iv an ov . mv ik otlin " ĊĠĠĠ Ġversion Ġ= Ġproperty (" mv ik otlin . version ") Ġas ĠString ĊĊĠĠĠ Ġval ĠuserId Ġ= Ġ" ark iv an ov " ĊĠĠĠ Ġval ĠuserName Ġ= Ġ" Ar kad ii ĠI van ov " ĊĠĠĠ Ġval Ġuser Email Ġ= Ġ" ark ann 1 9 8 5 @ gmail . com " ĊĠĠĠ Ġval Ġgithub Url Ġ= Ġ" https :// github . com / ark iv an ov / M VI Kotlin " ĊĠĠĠ Ġval Ġgithub Sc m Url Ġ= Ġ" scm : git : git :// github . com / ark iv an ov / M VI Kotlin . git " ĊĠĠĠ Ġval Ġis Metadata Build Type Ġ= Ġbuild Type Ġ=== ĠBuild Type . METADATA ĊĠĠĠ Ġval Ġmetadata Publication Names Ġ= Ġset Of ( Kotlin Multi platform Plugin . METADATA _ TARGET _ NAME , Ġ" kotlin Multi platform ") ĊĊĠĠĠ Ġextensions . getBy Type < Publishing Extension >(). run Ġ{ ĊĠĠĠĠĠĠĠ Ġpublications . with Type < Maven Publication >(). all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas Node (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" name ", Ġ" M VI Kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" description ", Ġ" Kotlin ĠMulti platform ĠM VI Ġframework ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" url ", Ġgithub Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" The ĠApache ĠLicense , ĠVersion Ġ 2 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . apache . org / licenses / LICENSE - 2 . 0 . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ( user Email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( github Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set ( github Sc m Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set ( github Sc m Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġafter Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . with Type < Publish To Maven Repository >(). forEach Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . enabled Ġ= Ġ( task . publication . name Ġin Ġmetadata Publication Names ) Ġ== Ġis Metadata Build Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" https :// api . bin tray . com / maven / ark iv an ov / maven / mv ik otlin /; publish = 0 ; override = 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠuserId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġfind Property (" bin tray _ api _ key ") ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . setup Android Sdk Versions () Ġ{ ĊĠĠĠ Ġandroid Compat Ġ{ ĊĠĠĠĠĠĠĠ Ġcompile Sdk Version ( 2 9 ) ĊĊĠĠĠĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Sdk Version ( 2 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin Sdk Version ( 1 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . js Compat (): ĠKotlin Js Target ? Ġ= Ġfind Target ByName (" js ") Ċ Ċ fun ĠKotlin Multi platform Extension . js Compat ( block : ĠKotlin Js Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġjs Compat ()?. apply ( block ) Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . android Compat (): ĠKotlin Android Target ? Ġ= Ġfind Target ByName (" android ") Ċ Ċ fun ĠKotlin Multi platform Extension . android Compat ( block : ĠKotlin Android Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġandroid Compat ()?. apply ( block ) Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . jvm Compat (): ĠKotlin Jvm Target ? Ġ= Ġfind Target ByName (" jvm ") Ċ Ċ fun ĠKotlin Multi platform Extension . jvm Compat ( block : ĠKotlin Jvm Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Compat ()?. apply ( block ) Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . linux X 6 4 Compat (): ĠKotlin Native Target ? Ġ= Ġfind Target ByName (" linux X 6 4 ") Ċ Ċ fun ĠKotlin Multi platform Extension . linux X 6 4 Compat ( block : ĠKotlin Native Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġlinux X 6 4 Compat ()?. also ( block ) Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . ios X 6 4 Compat (): ĠKotlin Native Target ? Ġ= Ġfind Target ByName (" ios X 6 4 ") Ċ Ċ fun ĠKotlin Multi platform Extension . ios X 6 4 Compat ( block : ĠKotlin Native Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios X 6 4 Compat ()?. apply ( block ) Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . ios Arm 6 4 Compat (): ĠKotlin Native Target ? Ġ= Ġfind Target ByName (" ios Arm 6 4 ") Ċ Ċ fun ĠKotlin Multi platform Extension . ios Arm 6 4 Compat ( block : ĠKotlin Native Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios Arm 6 4 Compat ()?. apply ( block ) Ċ } Ċ Ċ fun ĠKotlin Multi platform Extension . macos X 6 4 Compat (): ĠKotlin Native Target ? Ġ= Ġfind Target ByName (" macos X 6 4 ") Ċ Ċ fun ĠKotlin Multi platform Extension . macos X 6 4 Compat ( block : ĠKotlin Native Target . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġmac os X 6 4 Compat ()?. also ( block ) Ċ } Ċ Ċ private Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠKotlin Target > ĠKotlin Multi platform Extension . find Target ByName ( name : ĠString ): ĠT ? Ġ= ĊĠĠĠ Ġtargets . find ByName ( name ) Ġas ĠT ? Ċ Ċ fun ĠProject . android Compat ( block : ĠBase Extension . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is Build Target Available < Build Target . Android >()) Ġ{ ĊĠĠĠĠĠĠĠ Ġextensions . getBy Type < Base Extension >(). block () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . kotlin Compat ( block : ĠKotlin Multi platform Extension . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( is Any Target Available ) Ġ{ ĊĠĠĠĠĠĠĠ Ġextensions . getBy Type < Kotlin Multi platform Extension >(). block () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . setup Xcode Sync () Ġ{ ĊĠĠĠ Ġplugins . apply (" co . touch lab . kotlin xcode sync ") ĊĊĠĠĠ Ġextensions . getBy Type < Sync Extension >(). run Ġ{ ĊĠĠĠĠĠĠĠ Ġproject Path Ġ= Ġ"../ todo - app - ios / todo - app - ios . xcode proj " ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" todo - app - ios " ĊĠĠĠ Ġ} Ċ } Ċ Ċ type alias ĠSource Sets Ġ= ĠNamed Domain Object Container < Kotlin Source Set > Ċ Ċ fun ĠKotlin Multi platform Extension . source Sets ( block : ĠSource Sets . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġsource Sets . block () Ċ } Ċ Ċ private Ġfun ĠSource Sets . get OrCreate ( name : ĠString ): ĠKotlin Source Set Ġ= Ġfind ByName ( name ) Ġ?: Ġcreate ( name ) Ċ Ċ // Ġcommon Ċ Ċ val ĠSource Sets . common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" common Main ") Ċ Ċ fun ĠSource Sets . common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġcommon Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" common Test ") Ċ Ċ fun ĠSource Sets . common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġcommon Test . apply ( block ) Ċ } Ċ Ċ // Ġjs Native Common Ċ Ċ val ĠSource Sets . js Native Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" js Native Common Main ") Ċ Ċ fun ĠSource Sets . js Native Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġjs Native Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . js Native Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" js Native Common Test ") Ċ Ċ fun ĠSource Sets . js Native Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġjs Native Common Test . apply ( block ) Ċ } Ċ Ċ // Ġj vm Native Common Ċ Ċ val ĠSource Sets . jvm Native Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Native Common Main ") Ċ Ċ fun ĠSource Sets . jvm Native Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Native Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . jvm Native Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Native Common Test ") Ċ Ċ fun ĠSource Sets . jvm Native Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Native Common Test . apply ( block ) Ċ } Ċ Ċ // Ġj vm Js Common Ċ Ċ val ĠSource Sets . jvm Js Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Js Common Main ") Ċ Ċ fun ĠSource Sets . jvm Js Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Js Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . jvm Js Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Js Common Test ") Ċ Ċ fun ĠSource Sets . jvm Js Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Js Common Test . apply ( block ) Ċ } Ċ Ċ // Ġj vm Common Ċ Ċ val ĠSource Sets . jvm Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Common Main ") Ċ Ċ fun ĠSource Sets . jvm Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . jvm Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Common Test ") Ċ Ċ fun ĠSource Sets . jvm Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Common Test . apply ( block ) Ċ } Ċ Ċ // Ġj vm Ċ Ċ val ĠSource Sets . jvm Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Main ") Ċ Ċ fun ĠSource Sets . jvm Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . jvm Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" jvm Test ") Ċ Ċ fun ĠSource Sets . jvm Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġj vm Test . apply ( block ) Ċ } Ċ Ċ // Ġandroid Ċ Ċ val ĠSource Sets . android Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" android Main ") Ċ Ċ fun ĠSource Sets . android Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġandroid Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . android Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" android Test ") Ċ Ċ fun ĠSource Sets . android Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġandroid Test . apply ( block ) Ċ } Ċ Ċ // Ġjs Ċ Ċ val ĠSource Sets . js Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" js Main ") Ċ Ċ fun ĠSource Sets . js Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġjs Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . js Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" js Test ") Ċ Ċ fun ĠSource Sets . js Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġjs Test . apply ( block ) Ċ } Ċ Ċ // Ġnative Common Ċ Ċ val ĠSource Sets . native Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" native Common Main ") Ċ Ċ fun ĠSource Sets . native Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġnative Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . native Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" native Common Test ") Ċ Ċ fun ĠSource Sets . native Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġnative Common Test . apply ( block ) Ċ } Ċ Ċ // Ġlinux X 6 4 Ċ Ċ val ĠSource Sets . linux X 6 4 Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" linux X 6 4 Main ") Ċ Ċ fun ĠSource Sets . linux X 6 4 Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġlinux X 6 4 Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . linux X 6 4 Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" linux X 6 4 Test ") Ċ Ċ fun ĠSource Sets . linux X 6 4 Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġlinux X 6 4 Test . apply ( block ) Ċ } Ċ Ċ // Ġdar win Common Ċ Ċ val ĠSource Sets . darwin Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" darwin Common Main ") Ċ Ċ fun ĠSource Sets . darwin Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġdar win Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . darwin Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" darwin Common Test ") Ċ Ċ fun ĠSource Sets . darwin Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġdar win Common Test . apply ( block ) Ċ } Ċ Ċ // Ġios Common Ċ Ċ val ĠSource Sets . ios Common Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" ios Common Main ") Ċ Ċ fun ĠSource Sets . ios Common Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios Common Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . ios Common Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" ios Common Test ") Ċ Ċ fun ĠSource Sets . ios Common Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios Common Test . apply ( block ) Ċ } Ċ Ċ // Ġios X 6 4 Ċ Ċ val ĠSource Sets . ios X 6 4 Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" ios X 6 4 Main ") Ċ Ċ fun ĠSource Sets . ios X 6 4 Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios X 6 4 Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . ios X 6 4 Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" ios X 6 4 Test ") Ċ Ċ fun ĠSource Sets . ios X 6 4 Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios X 6 4 Test . apply ( block ) Ċ } Ċ Ċ // Ġios Arm 6 4 Ċ Ċ val ĠSource Sets . ios Arm 6 4 Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" ios Arm 6 4 Main ") Ċ Ċ fun ĠSource Sets . ios Arm 6 4 Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios Arm 6 4 Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . ios Arm 6 4 Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" ios Arm 6 4 Test ") Ċ Ċ fun ĠSource Sets . ios Arm 6 4 Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġios Arm 6 4 Test . apply ( block ) Ċ } Ċ Ċ // Ġmac os X 6 4 Ċ Ċ val ĠSource Sets . macos X 6 4 Main : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" macos X 6 4 Main ") Ċ Ċ fun ĠSource Sets . macos X 6 4 Main ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġmac os X 6 4 Main . apply ( block ) Ċ } Ċ Ċ val ĠSource Sets . macos X 6 4 Test : ĠKotlin Source Set Ġget () Ġ= Ġget OrCreate (" macos X 6 4 Test ") Ċ Ċ fun ĠSource Sets . macos X 6 4 Test ( block : ĠKotlin Source Set . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġmac os X 6 4 Test . apply ( block ) Ċ } Ċ