I’m in the middle of updating to the modules tip, now that it is on the main branch. Looking at the amalgamation files, I observe the following:
The juce_* files for the amalgamation are not true amalgamations, they #include other sources instead of being large self contained files
The Amalgamator is no longer part of extras
An externally provided “AppConfig.h” is required to compile modules. This is different from the previous approach, where the JuceLibraryCode#.cpp file included AppConfig.h before including the amalgamation cpp file.
Using my own modified version of the Juce Amalgamator (which will soon be able to amalgamate Freetype), I run into this problem:
#if JUCE_CATCH_UNHANDLED_EXCEPTIONS && JUCE_MODULE_AVAILABLE_juce_gui_basics #include "../juce_gui_basics/juce_gui_basics.h" #endif
The problem here is that a proper amalgamation cannot have #include lines for juce headers which are conditionally compiled, because the values of the macros are not known at the time the amalgamation is produced.