Does JUCE support cmake "Ninja Mult-Config" generators on GCC Linux

Apologies if this is a bit niche but I’ve been improving some CI using CMakePresets.json files. To make Linux behave in a similar way to Xcode and VS, I thought it would be a good idea to use the “Ninja Multi-Config” on Linux.

This is tested using the GitHub hosted runner:

  • Ubuntu 22.04
  • CMake 3.30.1
  • GCC 11.4.0

When I do a fresh juce clone and then run the following:

cmake -G "Ninja Multi-Config" -B build -DJUCE_BUILD_EXAMPLES=1

I get a ton of errors like:

CMake Error in examples/Plugins/CMakeLists.txt:
  Evaluation file to be written multiple times with different content.  This
  is generally caused by the content evaluating the configuration type,
  language, or location of object files:

   <snip>/juce/build/examples/Plugins/AUv3SynthPlugin_artefacts/JuceLibraryCode/input_file_list

Now I can build out the CMakePresets.json file with support for normal Ninja, I just wondered if this was a known issue or something the juce team did want to look at?

Cheers

3 Likes

Although this isn’t super urgent, I just wanted to check if this is something the JUCE team is interested in fixing?

If not, I’ll re-write my configs to use the standard Ninja exporters.

Thanks for your patience - I’d hoped to get this fix merged a bit more quickly, but it ended up bundled in with some other changes. Ninja multi-config should now be supported on Linux when building from the develop branch.

2 Likes