package Ġdev . an at ol ii . gradle . cpp . android . nd k Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ const Ġval Ġlocal Properties FileName Ġ= Ġ" local . properties " Ċ const Ġval Ġn dk Dir PropertyName Ġ= Ġ" nd k . dir " Ċ const Ġval Ġsdk Dir PropertyName Ġ= Ġ" sdk . dir " Ċ const Ġval Ġandroid N dk Home EnvironmentVariable Name Ġ= Ġ" ANDROID _ N DK _ HOME " Ċ const Ġval Ġandroid Sdk Home EnvironmentVariable Name Ġ= Ġ" ANDROID _ HOME " Ċ Ċ fun ĠProject . find N dk Directory (): ĠFile ? Ġ= Ġfind In Local Properties ( nd k Dir PropertyName ) ĊĠĠĠĠĠĠĠ Ġ?: ĠSystem . getenv ( android N dk Home EnvironmentVariable Name )?. let Ġ{ ĠFile ( it ) Ġ} ?. take If Ġ{ Ġit . exists () Ġ} Ċ Ċ fun ĠProject . find Sdk Directory (): ĠFile ? Ġ= Ġfind In Local Properties ( sdk Dir PropertyName ) ĊĠĠĠĠĠĠĠ Ġ?: ĠSystem . getenv ( android Sdk Home EnvironmentVariable Name )?. let Ġ{ ĠFile ( it ) Ġ} ?. take If Ġ{ Ġit . exists () Ġ} Ċ Ċ private Ġfun ĠProject . find In Local Properties ( property : ĠString ): ĠFile ? Ġ= ĠFile ( rootDir , Ġlocal Properties FileName ) ĊĠĠĠĠĠĠĠ Ġ. take If Ġ{ Ġit . exists () Ġ&& Ġit . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġ? . buffered Reader () ĊĠĠĠĠĠĠĠ Ġ? . use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProperties (). also Ġ{ Ġit . load ( reader ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ?. getProperty ( property ) ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠFile ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ? . take If Ġ{ Ġit . exists () Ġ} ĊĊĊ