Hi,
we have a lot of plugins sharing a common JUCE based codebase. So far each plugin is organized by Projucer and has to maintain the common code individually. Structural changes to the common code are tedious since they require touching (nearly) all plugins. Usually we would split up such projects and have a shared common subproject. But how can this be achieved with Projucer?
Are all the common source files added individually to each project or do you use custom JUCE modules for your shared codebase?
In case the first applies, obviously “put them into modules and add them as git submodules to your individual projects” is probably the best answer. Or do you already use modules but need features that are not available with that?
… and is there a possibility to organize and reference binaries in JUCE user modules to be included in BinaryData.h?
Any thought or hints of how to define and reference common binary data across various Projucer maintained plugins are very welcome! Thanks!
I handle this by first using the Projucer to produce the BinaryData stuff and then just copy-pasting the result to a file in my custom module.
For example, I use custom fonts in all my plug-ins and so I used the Projucer to turn the font files in binary data and then copied and renamed the resultant BinaryData.h to my_Fonts.h.
➜ Projucer --help
Projucer
Usage:
Projucer --resave project_file
Resaves all files and resources in a project.
Projucer --resave-resources project_file
Resaves just the binary resources for a project.
[...]
Projucer --encode-binary source_binary_file target_cpp_file
Converts a binary file to a C++ file containing its contents as a block of data. Provide a .h file as the target if you want a single output file, or a .cpp file if you want a pair of .h/.cpp files.
[...]