JUCE Amalgamation UPDATED!

I have produced a true amalgamation of Juce using my Amalgamate tool, it is here:


It is broken up by module - each module is amalgamated into its own .cpp so you can decide which modules get added to your project.

Updated this amalgamation to the latest tip. Each module is amalgamated separately into its own .cpp file so you can mix and match what you want to get compiled in.

Updated the original post to reflect the new project location.

but there is no vs2008 and vs2005 project file.

LOL!!! You don’t need a project file…you are supposed to add the .cpp (or .mm in XCode) to your existing project. That’s the whole point of the amalgamation!

The VisualStudio2010 project is there for convenience, I use it to check to make sure that the resulting amalgamation still compiles. You don’t need it.

I’ve made some big improvements to this distribution:

  • The amalgamated repo is at https://github.com/vinniefalco/JUCEAmalgam
  • The repo no longer includes the templates
  • The directory structure is a little more flat to make it easier to view, and to use it with git-subtree
  • A file called COMMITLOG contains the full commit log of the branch of JUCE that was used to produce the corresponding amalgamated sources
  • The amalgamated files include the copyright and licensing terms at the top
  • Each module has its own amalgamated header file, just like the non-amalgamated version
  • The amalgamated files are MUCH SMALLER now, thanks to some new features in the Amalgamate tool.

The templates for building the JUCE amalgamation are in their own repository now, with these improvements:

  • The template repo is at https://github.com/vinniefalco/JUCEAmalgamTemplate
  • The script has been re-written to use the Bourne shell and placed in platform-independent location.
  • The Visual Studio 2010 project automatically creates the amalgamation as a pre-build step.
  • The amalgamation script automates production of COMMITLOG
  • Licensing terms (MIT license) were made clear

The Amalgamate tool has also received some changes

  • The Amalgamate tool repo is at https://github.com/vinniefalco/Amalgamate
  • The directory structure has been flattened to make it easier to view and compile
  • The included JUCE core module was shrunk down in size.
  • New feature, @remap directive in a C style comment in the amalgamation template maps input headers to amalgamated headers, this results in a very large reduction of size (see juce_core_amalgam_template.cpp for an exmaple).
  • Licensing terms were made clear