/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . android . build . api . dsl Ċ Ċ import Ġorg . gradle . api . Inc ub ating Ċ Ċ /** Ċ Ġ* ĠDSL Ġobject Ġfor Ġper - variant Ġn dk - build Ġoptions , Ġsuch Ġas Ġn dk - build Ġarguments Ġand Ġcompiler Ġflags . Ċ Ġ* Ċ Ġ* ĠTo Ġlearn Ġmore Ġabout Ġthe Ġn dk - build Ġtoolchain , Ġread Ġthe Ġofficial ĠN DK Ġdocumentation Ġabout Ċ Ġ* Ġ[ Building ĠYour ĠProject ]( https :// developer . android . com / nd k / guides / build . html ). Ċ Ġ*/ Ċ @ Inc ub ating Ċ interface ĠExternal Native N dk Build Options Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġarguments Ġfor Ġn dk - build . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġproperties Ġyou Ġcan Ġconfigure Ġare Ġthe Ġsame Ġas Ġthose Ġavailable Ġin Ġyour ĊĠĠĠĠ Ġ* Ġ[ Android . mk ]( https :// developer . android . com / nd k / guides / android _ mk . html ) Ġand ĊĠĠĠĠ Ġ* Ġ[ Application . mk ]( https :// developer . android . com / nd k / guides / application _ mk . html ) ĊĠĠĠĠ Ġ* Ġscripts . ĠThe Ġfollowing Ġsample Ġspecifies Ġthe Ġ` Application . mk ` Ġfor Ġthe Ġn dk - build Ġproject : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġyou Ġconfigure . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠP asses Ġan Ġoptional Ġargument Ġto Ġn dk - build . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ" N DK _ MODULE _ PATH += ../../ third _ party / modules " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġarguments : ĠMutable List < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġarguments Ġfor Ġn dk - build . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġproperties Ġyou Ġcan Ġconfigure Ġare Ġthe Ġsame Ġas Ġthose Ġavailable Ġin Ġyour ĊĠĠĠĠ Ġ* Ġ[ Android . mk ]( https :// developer . android . com / nd k / guides / android _ mk . html ) Ġand ĊĠĠĠĠ Ġ* Ġ[ Application . mk ]( https :// developer . android . com / nd k / guides / application _ mk . html ) ĊĠĠĠĠ Ġ* Ġscripts . ĠThe Ġfollowing Ġsample Ġspecifies Ġthe Ġ` Application . mk ` Ġfor Ġthe Ġn dk - build Ġproject : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġyou Ġconfigure . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠP asses Ġan Ġoptional Ġargument Ġto Ġn dk - build . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ" N DK _ MODULE _ PATH += ../../ third _ party / modules " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġarguments ( var arg Ġarguments : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġflags Ġfor Ġthe ĠC Ġcompiler . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġfollowing Ġsample Ġenables Ġformat Ġmacro Ġconstants : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġin Ġyour Ġbuild Ġconfiguration . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġan Ġoptional Ġflag Ġfor Ġthe ĠC Ġcompiler . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Flags Ġ"- D __ ST DC _ FORMAT _ MAC ROS " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġc Flags : ĠMutable List < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġflags Ġfor Ġthe ĠC Ġcompiler . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġfollowing Ġsample Ġenables Ġformat Ġmacro Ġconstants : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġin Ġyour Ġbuild Ġconfiguration . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġan Ġoptional Ġflag Ġfor Ġthe ĠC Ġcompiler . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Flags Ġ"- D __ ST DC _ FORMAT _ MAC ROS " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġc Flags ( var arg Ġc Flags : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġflags Ġfor Ġthe ĠC ++ Ġcompiler . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġfollowing Ġsample Ġenables ĠRT TI Ġ( Run Time ĠType ĠInformation ) Ġsupport Ġand ĠC ++ Ġexceptions : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġin Ġyour Ġbuild Ġconfiguration . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġoptional Ġflags Ġfor Ġthe ĠC ++ Ġcompiler . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcpp Flags Ġ"- f exceptions ", Ġ"- f rtti " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcpp Flags : ĠMutable List < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġflags Ġfor Ġthe ĠC ++ Ġcompiler . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġfollowing Ġsample Ġenables ĠRT TI Ġ( Run Time ĠType ĠInformation ) Ġsupport Ġand ĠC ++ Ġexceptions : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġin Ġyour Ġbuild Ġconfiguration . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSets Ġoptional Ġflags Ġfor Ġthe ĠC ++ Ġcompiler . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcpp Flags Ġ"- f exceptions ", Ġ"- f rtti " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcpp Flags ( var arg Ġcpp Flags : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġthe ĠApplication ĠBinary ĠInterfaces Ġ( ABI ) Ġthat ĠGradle Ġshould Ġbuild Ġoutputs Ġfor . ĠThe ĊĠĠĠĠ Ġ* ĠAB Is Ġthat ĠGradle Ġpackages Ġinto Ġyour ĠA PK Ġare Ġdetermined Ġby ĊĠĠĠĠ Ġ* Ġ[ android . default Config . nd k . abi Filter ][ N dk . abi Filters ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn Ġmost Ġcases , Ġyou Ġneed Ġto Ġspecify ĠAB Is Ġusing Ġonly ĊĠĠĠĠ Ġ* Ġ[ android . default Config . nd k . abi Filter ][ N dk . abi Filters ], Ġbecause Ġit Ġtells ĠGradle Ġwhich ĠAB Is Ġto ĊĠĠĠĠ Ġ* Ġboth Ġbuild Ġand Ġpackage Ġinto Ġyour ĠA PK . ĠHowever , Ġif Ġyou Ġwant Ġto Ġcontrol Ġwhat ĠGradle Ġshould ĊĠĠĠĠ Ġ* Ġbuild , Ġindependently Ġof Ġwhat Ġyou Ġwant Ġit Ġto Ġpackage Ġinto Ġyour ĠA PK , Ġconfigure Ġthis Ġproperty ĊĠĠĠĠ Ġ* Ġwith Ġthe ĠAB Is Ġyou Ġwant ĠGradle Ġto Ġbuild . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġfurther Ġreduce Ġthe Ġsize Ġof Ġyour ĠA PK , Ġconsider ĊĠĠĠĠ Ġ* Ġ[ configuring Ġmultiple ĠA PK s Ġbased Ġon ĠABI ]( https :// developer . android . com / studio / build / configure - apk - splits . html # configure - abi - split ) âĢĶ instead ĊĠĠĠĠ Ġ* Ġof Ġcreating Ġone Ġlarge ĠA PK Ġwith Ġall Ġversions Ġof Ġyour Ġnative Ġlibraries , ĠGradle Ġcreates Ġa ĊĠĠĠĠ Ġ* Ġseparate ĠA PK Ġfor Ġeach ĠABI Ġyou Ġwant Ġto Ġsupport Ġand Ġonly Ġpackages Ġthe Ġfiles Ġeach ĠABI Ġneeds . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġabi Filters : ĠMutable Set < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġthe ĠApplication ĠBinary ĠInterfaces Ġ( ABI ) Ġthat ĠGradle Ġshould Ġbuild Ġoutputs Ġfor . ĠThe ĊĠĠĠĠ Ġ* ĠAB Is Ġthat ĠGradle Ġpackages Ġinto Ġyour ĠA PK Ġare Ġdetermined Ġby ĊĠĠĠĠ Ġ* Ġ[ android . default Config . nd k . abi Filter ][ N dk . abi Filters ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn Ġmost Ġcases , Ġyou Ġneed Ġto Ġspecify ĠAB Is Ġusing Ġonly ĊĠĠĠĠ Ġ* Ġ[ android . default Config . nd k . abi Filter ][ N dk . abi Filters ], Ġbecause Ġit Ġtells ĠGradle Ġwhich ĠAB Is Ġto ĊĠĠĠĠ Ġ* Ġboth Ġbuild Ġand Ġpackage Ġinto Ġyour ĠA PK . ĠHowever , Ġif Ġyou Ġwant Ġto Ġcontrol Ġwhat ĠGradle Ġshould ĊĠĠĠĠ Ġ* Ġbuild , Ġindependently Ġof Ġwhat Ġyou Ġwant Ġit Ġto Ġpackage Ġinto Ġyour ĠA PK , Ġconfigure Ġthis Ġproperty ĊĠĠĠĠ Ġ* Ġwith Ġthe ĠAB Is Ġyou Ġwant ĠGradle Ġto Ġbuild . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġfurther Ġreduce Ġthe Ġsize Ġof Ġyour ĠA PK , Ġconsider ĊĠĠĠĠ Ġ* Ġ[ configuring Ġmultiple ĠA PK s Ġbased Ġon ĠABI ]( https :// developer . android . com / studio / build / configure - apk - splits . html # configure - abi - split ) âĢĶ instead ĊĠĠĠĠ Ġ* Ġof Ġcreating Ġone Ġlarge ĠA PK Ġwith Ġall Ġversions Ġof Ġyour Ġnative Ġlibraries , ĠGradle Ġcreates Ġa ĊĠĠĠĠ Ġ* Ġseparate ĠA PK Ġfor Ġeach ĠABI Ġyou Ġwant Ġto Ġsupport Ġand Ġonly Ġpackages Ġthe Ġfiles Ġeach ĠABI Ġneeds . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthis Ġproperty Ġis Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġabi Filters ( var arg Ġabi Filters : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġthe Ġlibrary Ġand Ġexecutable Ġtargets Ġfrom Ġyour Ġn dk - build Ġproject Ġthat ĠGradle Ġshould ĊĠĠĠĠ Ġ* Ġbuild . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġexample , Ġif Ġyour Ġn dk - build Ġproject Ġdefines Ġmultiple Ġlibraries Ġand Ġexecut ables , Ġyou Ġcan ĊĠĠĠĠ Ġ* Ġtell ĠGradle Ġto Ġbuild Ġonly Ġa Ġsubset Ġof Ġthose Ġoutputs Ġas Ġfollows : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġin Ġyour Ġbuild Ġconfiguration . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġtells ĠGradle Ġto Ġbuild Ġonly Ġthe Ġ" lib example - one . so " Ġand ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ" my - exec ut ible - two " Ġtargets Ġfrom Ġthe Ġlinked Ġn dk - build Ġproject . ĠIf Ġyou Ġdon 't ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġconfigure Ġthis Ġproperty , ĠGradle Ġbuilds Ġall Ġexecut ables Ġand Ġshared Ġobject ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlibraries Ġthat Ġyou Ġdefine Ġin Ġyour Ġn dk - build Ġproject . ĠHowever , Ġby Ġdefault , ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGradle Ġpackages Ġonly Ġthe Ġshared Ġlibraries Ġin Ġyour ĠA PK . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtargets Ġ" lib example - one . so ", ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠYou Ġneed Ġto Ġconfigure Ġthis Ġexecutable Ġand Ġits Ġsources Ġin Ġyour ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAndroid . mk Ġfile Ġlike Ġyou Ġwould Ġany Ġother Ġlibrary , Ġexcept Ġyou Ġmust ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġspecify Ġ" include Ġ$( BUILD _ EXECUT ABLE ) ". ĠBuilding Ġexecut ables Ġfrom ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġyour Ġnative Ġsources Ġis Ġoptional , Ġand Ġbuilding Ġnative Ġlibraries Ġto ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpackage Ġinto Ġyour ĠA PK Ġsatisfies Ġmost Ġproject Ġrequirements . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" my - exec ut ible - demo " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġyou Ġdon 't Ġconfigure Ġthis Ġproperty , ĠGradle Ġbuilds Ġall Ġexecut ables Ġand Ġshared Ġobject ĊĠĠĠĠ Ġ* Ġlibraries Ġthat Ġyou Ġdefine Ġin Ġyour Ġn dk - build Ġproject . ĠHowever , Ġby Ġdefault , ĠGradle Ġpackages ĊĠĠĠĠ Ġ* Ġonly Ġthe Ġshared Ġlibraries Ġin Ġyour ĠA PK . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġtargets : ĠMutable Set < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġthe Ġlibrary Ġand Ġexecutable Ġtargets Ġfrom Ġyour Ġn dk - build Ġproject Ġthat ĠGradle Ġshould ĊĠĠĠĠ Ġ* Ġbuild . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġexample , Ġif Ġyour Ġn dk - build Ġproject Ġdefines Ġmultiple Ġlibraries Ġand Ġexecut ables , Ġyou Ġcan ĊĠĠĠĠ Ġ* Ġtell ĠGradle Ġto Ġbuild Ġonly Ġa Ġsubset Ġof Ġthose Ġoutputs Ġas Ġfollows : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġandroid Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// ĠSimilar Ġto Ġother Ġproperties Ġin Ġthe Ġdefault Config Ġblock , Ġyou Ġcan Ġoverride ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ// Ġthese Ġproperties Ġfor Ġeach Ġproduct Ġflavor Ġin Ġyour Ġbuild Ġconfiguration . ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġexternal Native Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġn dk Build Ġ{ ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġfollowing Ġtells ĠGradle Ġto Ġbuild Ġonly Ġthe Ġ" lib example - one . so " Ġand ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ" my - exec ut ible - two " Ġtargets Ġfrom Ġthe Ġlinked Ġn dk - build Ġproject . ĠIf Ġyou Ġdon 't ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġconfigure Ġthis Ġproperty , ĠGradle Ġbuilds Ġall Ġexecut ables Ġand Ġshared Ġobject ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlibraries Ġthat Ġyou Ġdefine Ġin Ġyour Ġn dk - build Ġproject . ĠHowever , Ġby Ġdefault , ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGradle Ġpackages Ġonly Ġthe Ġshared Ġlibraries Ġin Ġyour ĠA PK . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtargets Ġ" lib example - one . so ", ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠYou Ġneed Ġto Ġconfigure Ġthis Ġexecutable Ġand Ġits Ġsources Ġin Ġyour ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAndroid . mk Ġfile Ġlike Ġyou Ġwould Ġany Ġother Ġlibrary , Ġexcept Ġyou Ġmust ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġspecify Ġ" include Ġ$( BUILD _ EXECUT ABLE ) ". ĠBuilding Ġexecut ables Ġfrom ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġyour Ġnative Ġsources Ġis Ġoptional , Ġand Ġbuilding Ġnative Ġlibraries Ġto ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpackage Ġinto Ġyour ĠA PK Ġsatisfies Ġmost Ġproject Ġrequirements . ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" my - exec ut ible - demo " ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġ} ĊĠĠĠĠ Ġ* Ġ} ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġyou Ġdon 't Ġconfigure Ġthis Ġproperty , ĠGradle Ġbuilds Ġall Ġexecut ables Ġand Ġshared Ġobject ĊĠĠĠĠ Ġ* Ġlibraries Ġthat Ġyou Ġdefine Ġin Ġyour Ġn dk - build Ġproject . ĠHowever , Ġby Ġdefault , ĠGradle Ġpackages ĊĠĠĠĠ Ġ* Ġonly Ġthe Ġshared Ġlibraries Ġin Ġyour ĠA PK . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtargets ( var arg Ġtargets : ĠString ) Ċ }