/* plugins Ġ{ ĊĠĠĠ Ġbase ĊĠĠĠ Ġ` cpp - library ` Ċ } Ċ Ċ library Ġ{ ĊĠĠĠ Ġ// val Ġshared Ġ= Ġcomponents . with Type ( Cpp Shared Library :: class ) ĊĠĠĠ Ġbinaries . configure Each { ĊĠĠĠĠĠĠĠ Ġbase { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarch ives Name . set (" jni Proc ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// dists Directory . set ( layout . build Directory . dir (" lib / main / release / ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcompile Task Ġ= Ġcompile Task . get () ĊĊĠĠĠĠĠĠĠ Ġcompile Task . source . set From ( file Tree (" src / main / cpp ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġjava Home Ġ= ĠSystem . getenv (" JAVA _ HOME ") ĊĠĠĠĠĠĠĠ Ġcompile Task . includes . from ("$ java Home / include ") ĊĊĠĠĠĠĠĠĠ Ġval Ġos Family Ġ= Ġtarget Platform . target Machine . operating System Family ĊĠĠĠĠĠĠĠ Ġwhen { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġos Family . is Mac Os -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . includes . from ("- I $ java Home / include / darwin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . compiler Args . add ("- I / Library / Developer / CommandLine Tools / SDK s / Mac OSX 1 0 . 1 5 . sdk / System / Library / Frameworks / Java VM . framework / Versions / A / Headers /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġos Family . is Linux Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . includes . from ("$ java Home / include / linux ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġos Family . is Windows Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Task . includes . from ("$ java Home / include / win 3 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/* println ( compile Task . as Dynamic Object ) Ġ*/ ĊĠĠĠĠĠĠĠ Ġwhen ( tool Chain ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVisual Cpp Ġ-> Ġcompile Task . compiler Args . addAll ( listOf ("/ TC ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠC lang , Ġis ĠG cc Compatible Tool Chain Ġ-> Ġcompile Task . compiler Args . addAll ( listOf ("- x ", Ġ" c ", Ġ"- std = c 1 1 ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /* configurations Ġ{ ĊĠĠĠ Ġcreate (" jni Proc "){ ĊĠĠĠĠĠĠĠ Ġis Can Be Resolved Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Can Be Cons umed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Trans itive Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġattributes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// attribute ( Category . CATEGORY _ ATTRIBUTE , Ġnamed ( Category . LIBRARY )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcreate (" jni Proc Debug "){ ĊĠĠĠĠĠĠĠ Ġis Can Be Resolved Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Can Be Cons umed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Trans itive Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġ// " jni Proc "( file Tree ( layout . build Directory . dir (" lib / main / release / stri pped "))) ĊĠĠĠ Ġ// " jni Proc Debug "( file Tree ( layout . build Directory . dir (" lib / main / debug "))) Ċ Ċ } Ċ Ċ artifacts Ġ{ ĊĠĠĠ Ġadd (" jni Proc ", Ġfile Tree ( layout . build Directory . dir (" lib / main / release / stri pped ")). dir ) ĊĠĠĠ Ġadd (" jni Proc Debug ", Ġfile Tree ( layout . build Directory . dir (" lib / main / release / stri pped ")). dir ) Ċ Ċ }*/ Ċ Ċ // Ġhttps :// github . com / gradle / native - samples / blob / master / cpp / pre built - binaries / build . gradle Ċ Ġ*/ Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" ange los - jni - library ") ĊĠĠĠ Ġ// ` ange los - jni - library ` Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġmaven Local () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġj ni Implementation ( project (": base ")) ĊĠĠĠ Ġtest Implementation (" junit : junit : 4 . 1 2 ") Ċ } Ċ Ċ library Ġ{ ĊĠĠĠ Ġbinaries . configure Each Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcompile Task Ġ= Ġcompile Task . get () ĊĠĠĠĠĠĠĠ Ġwhen ( tool Chain ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠVisual Cpp Ġ-> Ġcompile Task . compiler Args . addAll ( listOf ("/ TC ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠC lang , Ġis ĠG cc Compatible Tool Chain Ġ-> Ġcompile Task . compiler Args . addAll ( listOf ("- x ", Ġ" c ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . register (" prepare Kotlin Build Script Model ", ĠDefault Task :: class ) Ġ{ Ċ }