/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . cargo . run config . build tool Ċ Ċ import Ġcom . intellij . execution . configurations . Run Configuration Ċ import Ġcom . intellij . execution . runners . Execution Environment Ċ import Ġcom . intellij . openapi . action System . DataContext Ċ import Ġcom . intellij . openapi . util . Key Ċ import Ġcom . intellij . openapi . util . text . StringUtil . un quote String Ċ import Ġcom . intellij . util . execution . Parameters List Util Ċ import Ġorg . rust . cargo . run config . build tool . Cargo Build Manager . get Build Configuration Ċ import Ġorg . rust . cargo . run config . command . Cargo Command Configuration Ċ import Ġorg . rust . cargo . toolchain . tools . Rust up . Companion . check Need Install Target Ċ Ċ class ĠC argo Build Task Provider Ġ: ĠRs Build Task Provider < Cargo Build Task Provider . Build Task >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠKey < Build Task > Ġ= ĠID ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Task ( run Configuration : ĠRun Configuration ): ĠBuild Task ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( run Configuration Ġis ĠC argo Command Configuration ) ĠBuild Task () Ġelse Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġexecute Task ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠData Context , ĊĠĠĠĠĠĠĠ Ġconfiguration : ĠRun Configuration , ĊĠĠĠĠĠĠĠ Ġenvironment : ĠExecution Environment , ĊĠĠĠĠĠĠĠ Ġtask : ĠBuild Task ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( configuration Ġ! is ĠC argo Command Configuration ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġbuild Configuration Ġ= Ġget Build Configuration ( configuration ) Ġ?: Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Directory Ġ= Ġbuild Configuration . working Directory Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġconfig Args Ġ= ĠParameters List Util . parse ( build Configuration . command ) ĊĠĠĠĠĠĠĠ Ġval Ġtarget Flag Idx Ġ= Ġconfig Args . indexOf First Ġ{ Ġit . startsWith ("-- target ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtarget Flag Ġ= Ġif Ġ( target Flag Idx Ġ!= Ġ- 1 ) Ġconfig Args [ target Flag Idx ] Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġtarget Triple Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Flag Ġ== Ġ"-- target " Ġ-> Ġconfig Args . get OrNull ( target Flag Idx Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Flag ?. startsWith ("-- target =") Ġ== Ġtrue Ġ-> Ġun quote String ( target Flag . substring After (" =" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target Triple Ġ!= Ġnull Ġ&& Ġcheck Need Install Target ( configuration . project , Ġproject Directory , Ġtarget Triple )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdo Execute Task ( build Configuration , Ġenvironment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuild Task Ġ: ĠRs Build Task Provider . Build Task < Build Task >( ID ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠID : ĠKey < Build Task > Ġ= ĠKey . create (" C ARG O . BUILD _ TASK _ PROVIDER ") ĊĠĠĠ Ġ} Ċ } Ċ