plugins Ġ{ ĊĠĠĠ Ġkotlin (" jvm ") ĊĠĠĠ Ġ` java - gradle - plugin ` Ċ } Ċ Ċ apply < pw . bin om . plugins . Bin om Publish Plugin >() Ċ kotlin . source Sets [" main "]. kotlin . src Dir ( project . build Dir . resolve (" gen ")) Ċ dependencies Ġ{ ĊĠĠĠ Ġapi ( kotlin (" stdlib ")) ĊĠĠĠ Ġapi ( kotlin (" gradle - plugin ")) ĊĠĠĠ Ġapi ( gradle Api ()) Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġcompile Kotlin Ġby Ġgetting ĊĠĠĠ Ġval Ġgenerate Version Ġ= Ġcreate (" generate Version ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource Dir Ġ= Ġproject . build Dir . resolve (" gen / pw / bin om / lexer ") ĊĠĠĠĠĠĠĠ Ġsource Dir . mkdir s () ĊĠĠĠĠĠĠĠ Ġval Ġversion Source Ġ= Ġsource Dir . resolve (" version . kt ") ĊĠĠĠĠĠĠĠ Ġoutputs . files ( version Source ) ĊĠĠĠĠĠĠĠ Ġinputs . property (" version ", Ġproject . version ) ĊĊĠĠĠĠĠĠĠ Ġversion Source . write Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" package Ġpw . bin om . lexer ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ċ const Ġval ĠL EX ER _ VERSION Ġ= Ġ"${ project . version }" Ċ const Ġval ĠL EX ER _ GROUP Ġ= Ġ"${ project . group }" Ċ """ ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompile Kotlin . depends On ( generate Version ) Ċ } Ċ Ċ gradle Plugin Ġ{ ĊĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate (" lexer ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" pw . bin om . static - lexer " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation Class Ġ= Ġ" pw . bin om . lexer . Lexer Plugin " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Bin om ĠStatic ĠLex er ĠGenerator " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ apply < pw . bin om . plugins . Docs Plugin >() Ċ