Appconfig JUCE_MODULE_AVAILABLE_juce_core

Dear juce users/developers,

While working on a very promising open-source project for Internet Of Things (universal networking server) I came across some definitions after validating all related files.

I was wondering what JUCE_MODULE_AVAILABLE_juce_core (default value 1) does.
I am using a third-party memory detection plugin, but came across JUCE_FORCE_DEBUG and JUCE_CHECK_MEMORY_LEAKS definitions in app.config. What do they influence?

DONT_SET_USING_JUCE_NAMESPACE is found in juceHeader.h
Do I need to customly define this in order to force NOT using namespace juce?
Am I missing some sort of settings page with the introjucer?
Certainly I am not opposed to defining all this myself, but if these things have already been dealt with in introjucer then I'd rather use the way that is set-out for it.

Please advice me :)

Kind regards,

JUCE_MODULE_AVAILABLE_juce_core is there to let other bits of code know that the juce_core module has been enabled (as they all depend on it).

JUCE_FORCE_DEBUG has nothing to do with memory leaks but JUCE_CHECK_MEMORY_LEAKS (as the name suggests) does! When it's enabled classes with the JUCE leak detector in their declaration will, as the name suggests, be checked for certain kinds of memory leaks.

Normally in JUCE, when you're writing your code you don't have to prefix juce:: to all the JUCE classes, because of a using namespace juce; statement. Enabling DONT_SET_USING_JUCE_NAMESPACE stops this, meaning you'll need to prefix everything with juce:: (it can be useful when there are name clashes with other libraries).

The Introjucer and Projucer do have preprocessor definition sections that allow you to specific this in the generate projects. Take a look at your exporter settings for this.

Hope this helps!