import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Kotlin Native Target Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Kotlin Native Target Preset Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Native Build Type Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġgoogle () ĊĠĠĠ Ġj center () ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġmaven (" https :// dl . bin tray . com / kotlin / kotlin - dev ") ĊĠĠĠ Ġmaven (" https :// dl . bin tray . com / kotlin / kotlin - e ap ") Ċ } Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġkotlin (" multi platform ") ĊĠĠĠ Ġid (" com . android . application ") Ġversion (" 3 . 6 . 0 ") Ċ } Ċ Ċ val Ġapp Dir Ġ= Ġbuild Dir . resolve (" Poly hedron ") Ċ val Ġlibs Dir Ġ= Ġapp Dir . resolve (" libs ") Ċ // ĠSet Ġto Ġtrue Ġto Ġbuild Ġonly Ġfor Ġthe Ġsimulator . Ċ val Ġsimulator Only Ġ= Ġtrue Ċ Ċ val Ġandroid Pre sets Ġ= Ġmap Of ( ĊĠĠĠ Ġ" arm 3 2 " Ġto Ġ(" android Native Arm 3 2 " Ġto Ġ"$ libs Dir / ar me abi - v 7 a "), ĊĠĠĠ Ġ" arm 6 4 " Ġto Ġ(" android Native Arm 6 4 " Ġto Ġ"$ libs Dir / arm 6 4 - v 8 a "), ĊĠĠĠ Ġ" x 8 6 " Ġto Ġ(" android Native X 8 6 " Ġto Ġ"$ libs Dir / x 8 6 "), ĊĠĠĠ Ġ" x 6 4 " Ġto Ġ(" android Native X 6 4 " Ġto Ġ"$ libs Dir / x 8 6 _ 6 4 ") Ċ ) Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Version ( 2 8 ) ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= Ġ" com . jetbrains . kon an _ activity 2 " ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( 9 ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( 2 8 ) ĊĊĠĠĠĠĠĠĠ Ġn dk Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabi Filters (" ar me abi - v 7 a ", Ġ" arm 6 4 - v 8 a ", Ġ" x 8 6 ", Ġ" x 8 6 _ 6 4 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Root (" src / x 8 6 Main ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ni Lib s . src Dir ( libs Dir ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ kotlin Ġ{ ĊĠĠĠ Ġandroid Pre sets . forEach Ġ{ Ġ( target Name , Ġpreset Info ) Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġ( pre setName , Ġ_) Ġ= Ġpreset Info ĊĠĠĠĠĠĠĠ Ġval Ġpreset Ġ= Ġkotlin . presets [ pre setName ] Ġas ĠKotlin Native Target Preset ĊĠĠĠĠĠĠĠ Ġtarget From Preset ( preset , Ġtarget Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinaries Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecutable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry Point Ġ= Ġ" sample . android native . main " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations [" main "]. c inter ops Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbmp format Ġby Ġcreating ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġandroid () ĊĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx 8 6 Main Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġif Ġ(! simulator Only ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġx 6 4 Main Ġby Ġgetting ĊĠĠĠĠĠĠĠĠĠ Ġval Ġarm 3 2 Main Ġby Ġgetting ĊĠĠĠĠĠĠĠĠĠ Ġval Ġarm 6 4 Main Ġby Ġgetting ĊĠĠĠĠĠĠĠĠĠ Ġarm 3 2 Main . depends On ( x 8 6 Main ) ĊĠĠĠĠĠĠĠĠĠ Ġarm 6 4 Main . depends On ( x 8 6 Main ) ĊĠĠĠĠĠĠĠĠĠ Ġx 6 4 Main . depends On ( x 8 6 Main ) ĊĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠDisable Ġgenerating ĠKotlin Ġmetadata . Ċ tasks . compile Kotlin Metadata Ġ{ ĊĠĠĠ Ġenabled Ġ= Ġfalse Ċ } Ċ Ċ after Evaluate Ġ{ ĊĠĠĠ Ġandroid Pre sets . forEach Ġ{ Ġ( target Name , Ġpreset Info ) Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġkotlin . targets [ target Name ] Ġas ĠKotlin Native Target ĊĠĠĠĠĠĠĠ Ġval Ġ(_, Ġlib Dir ) Ġ= Ġpreset Info ĊĊĠĠĠĠĠĠĠ ĠNative Build Type . values (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexecutable Ġ= Ġtarget . binaries . get Executable ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Task Ġ= Ġexecutable . link Task ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinary File Ġ= Ġexecutable . outputFile ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlink Task . do Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( binary File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinto ( lib Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrename Ġ{ Ġ" lib poly . so " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . pre Build Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( link Task ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ