JUCE submodule PSA
-
If you've seen the latest commit Christoph has moved JUCE (and Projucer) into a git submodule.
A submodule is like a git repo within a git repo.
So if you're making a fresh clone you need to use this command
git clone --branch develop --recurse-submodules https://github.com/christophhart/HISE.gitIf you have already cloned the repo (and you're using the develop branch) you need to first remove the existing JUCE folder from the source code folder.
Then use this command, from within the source code folder
git submodule update --init --recursiveAnd I need to update the Bootcamp :)
-
-
@David-Healey
Merci :-) -
Yes the rationale is that I want to support both JUCE6 and JUCE8 and this way you can simply swap the JUCE version with a single command.
I only checked Windows so far but I‘ll do macOS today and then we‘ll tackle Linux in a joint effort.
-
@Christoph-Hart Wow!

-
@Christoph-Hart
How do I switch between JUCE6 and JUCE8, and what is the default setting?And do I need to be aware of compatibility issues with old or ongoing projects?
Many thanks,
Oli -
@Oli-Ullmann default is (and will be for the foreseeable future) JUCE 6. In order to switch to JUCE 8 you just change the branch of the submodule. I messed up stuff when trying to use SourceTree for it, but it's a one liner in the command line bash - once everything is ready I'll add some docs on how to do that.
The customized JUCE versions that work with HISE are in this repo:
https://github.com/christophhart/JUCE_customized/tree/juce6
https://github.com/christophhart/JUCE_customized/tree/juce8 -
@Christoph-Hart
Sounds complicated...
Thanks for the info! I'll give it a try in the next few days... -
@Christoph-Hart So if I chose JUCE 8, will there be other "new" function methods, etc.. that doesn't exists in JUCE 6, and will the API be updated as well?
-
@ulrik no. At the moment the only real reason to use JUCE8 is if you only have a JUCE8 license that might not cover the use of JUCE6 code which HISE is built upon (there is no clear legal framework for this but the JUCE8 starter license might not allow usage of JUCE6 code so in order to remove that legal limbo I decided to spent the first days of 2026 fighting compiler errors).
I had to strip most of the interesting stuff in JUCE8 away in order to keep it consistent with JUCE6 (which will remain the default), so eg. the entire Direct2D renderer would require months of testing. Ideally people can switch to JUCE8 easily with this approach and this way we get a safe workflow of testing the new JUCE stuff - once JUCE9 arrives with CLAP support then it will get more interesting.
-
@Christoph-Hart Ok I understand, so as I understand it, it will be no advantage to upgrade my JUCE 7 license to JUCE 8, regarding Hise
-
@Christoph-Hart said in JUCE submodule PSA:
and then we‘ll tackle Linux in a joint effort.
@David-Healey can you check if it works now? I've recompiled the Projucer in both JUCE branches and it should now compile & export, but I'm running against the funky SimdRegister error here (BTW, have you fixed that on your HISE branch?).
-
@Christoph-Hart said in JUCE submodule PSA:
@David-Healey can you check if it works now? I've recompiled the Projucer in both JUCE branches and it should now compile & export, but I'm running against the funky SimdRegister error here (BTW, have you fixed that on your HISE branch?).
I'll give it a try.
That
invalid use of incomplete typeerror never showed up my fork. It only happens upstream. I can't see any difference in the lines of code related to it between upstream and my fork so it's had me scratching my head. The only thing I can think is that the order that files are being included is somehow different, but I'm really not sure.I did add this PR to fix the symptom. The error first showed up with this commit.
Edit: Interesting, I've just pulled in the latest changes and my branch has now inherited the simd error.
-
@Christoph-Hart Apart from the SIMD error everything worked. I did have to enable the execute permission on Projucer - can't remember if I had to do that in the past.
