package Ġcom . github . lam ba 9 2 . firebase multi platform . build Ċ Ċ import Ġcom . github . lam ba 9 2 . gradle . utils .* Ċ import Ġcom . jfrog . bin tray . gradle . Bin tray Plugin Ċ import Ġorg . gradle . api . Java Version Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . publish . maven . Maven Publication Ċ import Ġorg . gradle . api . publish . maven . plugins . Maven Publish Plugin Ċ import Ġorg . gradle . api . tasks . Sync Ċ import Ġorg . gradle . kotlin . dsl .* Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Multi platform Plugin Wrapper Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Kotlin Native Target Ċ import Ġorg . jetbrains . kotlin . gradle . targets . js . npm . tasks . Kotlin Package Json Task Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . C Interop Process Ċ import Ġjava . io . File Ċ Ċ @ Suppress (" unused ") Ċ class ĠFirebase Multi platform Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ): ĠUnit Ġ= Ġwith ( target ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġapply < Kotlin Multi platform Plugin Wrapper >() ĊĠĠĠĠĠĠĠ Ġapply < Maven Publish Plugin >() ĊĠĠĠĠĠĠĠ Ġapply < Bin tray Plugin >() ĊĠĠĠĠĠĠĠ Ġapply < Android Library Plugin >() ĊĊĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven (" https :// kotlin . bin tray . com / kotlin x ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven (" https :// dl . bin tray . com / lam ba 9 2 / com . github . lam ba 9 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven (" https :// dl . bin tray . com / kotlin / kotlin - e ap ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġandroid Library Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Sdk Version ( 2 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Tools Version (" 3 0 . 0 . 0 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Sdk Version ( 1 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġalign Sources For Kotlin Multi platform Plugin ( target ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġf Name Ġ= Ġproject . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. capitalize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. prefix IfNot (" Firebase ") ĊĊĠĠĠĠĠĠĠ Ġval Ġgenerate Def File Task Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask < Generate Def For Framework >(" generate ${ f Name } Def File ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( extract Firebase I os Zip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Framework Dir Ġ= ĠFile ( extract Firebase I os Zip . destination Dir , Ġ"$ f Name . framework ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframework Ġ= Ġroot Framework Dir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlibrary Paths Ġ= ĠlistOf ( root Framework Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Libraries Ġ= ĠlistOf ( File ( root Framework Dir , Ġf Name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName Ġ= Ġ" com . google . firebase " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= Ġfile ("$ build Dir / interop / def /$ f Name . def ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Static Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġkotlin Multi platform Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublish Library Variants (" release ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnodejs () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ+= ĠlistOf ("- X ir - produce - js ", Ġ"- X generate - dts ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Kind Ġ= Ġ" common js " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Publication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjs Package Json : ĠKotlin Package Json Task Ġby Ġtasks ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( js Package Json . package Json ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Target Ġ= Ġios Arm 6 4 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġother Targets Ġ= ĠlistOf ( ios X 6 4 ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy Main Target Sources Ġby Ġtasks . creating ( Sync :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" native Ġsource Ġcopy " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( main Target . comp il ations [" main "]. default Source Set . kotlin . source Directories ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinto ("$ build Dir / generated / native Copy ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġother Targets . map Ġ{ Ġit . comp il ations [" main "] Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Source Set . kotlin . src Dir ( copy Main Target Sources . destination Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Kotlin Task . depends On ( copy Main Target Sources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options . free Compiler Args Ġ+= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- module - name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . github . lam ba 9 2 . firebase - multi platform -${ project . name }- c interop " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc inter ops Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( project . name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef File Ġ= Ġgenerate Def File Task . output ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Dirs ( file ("${ generate Def File Task . framework . absolute Path }/ Headers ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompiler Opts ("- F ${ generate Def File Task . framework . parent File . absolute Path }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable End or sed Lib s Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . with Type < C Interop Process > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( generate Def File Task ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġafter Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublishing . publications . with Type < Maven Publication > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! artifactId . startsWith ( root Project . name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġ"${ root Project . name }- $ artifactId " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepare For Publication () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ