you could check how it's done in gradle plugin
# kobalt
c
you could check how it's done in gradle plugin