The problem is that if you want to target any Geany from before 1.24 where it didn't provide a gtkcompat.h and you use any macros from it, then you have to assume GTK+ >2.16 because gtkcompat.h defines macros that transparently provides GTK+ >2.16 functionality for where that version isn't available. If the gtkcompat.h isn't available and plugins are using macros from it, they implicitly depend on GTK+ >2.16.