Visibility of #define between sketch and library
You need a common place that the building of all the places can get the definition from.

That isn't the sketch. The sketch is one of the things that would have to look at that common place.

That can either be a single shared header that everything else (that needs it) includes, or it can be a -D flag added to the compilation command.

For instance, adding:

-DDEBUG=1


to your compilation command is the same as adding

#define DEBUG 1


to every single file you compile.