package Ġorg . jetbrains Ċ Ċ import Ġkotlinx . validation . Api Validation Extension Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . kotlin . dsl . configure Ċ Ċ internal Ġobject ĠBinary Compatibility Config Ġ{ ĊĠĠĠ Ġval Ġignored Public ations Ġ= Ġset Of (" kotlin Analysis Int elli J ", Ġ" kotlin Analysis ", Ġ" kotlin Analysis Compiler ") ĊĠĠĠ Ġval Ġignored Sub projects Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠ Ġ" search - component ", ĊĠĠĠĠĠĠĠ Ġ" compiler - dependency ", ĊĠĠĠĠĠĠĠ Ġ" intellij - dependency ", ĊĠĠĠĠĠĠĠ Ġ" kotlin - analysis ", ĊĠĠĠĠĠĠĠ Ġ" frontend " ĊĠĠĠ Ġ) Ċ } Ċ Ċ internal Ġfun ĠProject . register Binary Compatibility Check ( publication Name : ĠString ) Ġ{ ĊĠĠĠ Ġpublication Name . take If Ġ{ ĊĠĠĠĠĠĠĠ Ġit Ġ! in ĠBinary Compatibility Config . ignored Public ations ĊĠĠĠ Ġ} ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tasks . find ByName (" api Build ") Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins . apply ( kotlin x . validation . Binary Compatibility Validator Plugin :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure < Api Validation Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignored Projects . addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBinary Compatibility Config . ignored Sub projects . intersect ( all projects . map Ġ{ Ġit . name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }