Forum
    • Categories
    • Register
    • Login

    JUCE submodule PSA

    Scheduled Pinned Locked Moved General Questions
    hisejucegit
    14 Posts 5 Posters 105 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • David HealeyD
      David Healey
      last edited by David Healey

      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.git

      If 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 --recursive

      And I need to update the Bootcamp :)

      Free HISE Bootcamp Full Course for beginners.
      YouTube Channel - Public HISE tutorials
      My Patreon - HISE tutorials

      dannytaurusD Oli UllmannO 2 Replies Last reply Reply Quote 5
      • dannytaurusD
        dannytaurus @David Healey
        last edited by

        @David-Healey 🙏

        Meat Beats: https://meatbeats.com
        Klippr Video: https://klippr.video

        1 Reply Last reply Reply Quote 0
        • Oli UllmannO
          Oli Ullmann @David Healey
          last edited by

          @David-Healey
          Merci :-)

          Christoph HartC 1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart @Oli Ullmann
            last edited by

            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.

            dannytaurusD Oli UllmannO Christoph HartC 3 Replies Last reply Reply Quote 5
            • dannytaurusD
              dannytaurus @Christoph Hart
              last edited by

              @Christoph-Hart Wow! 🚀

              Meat Beats: https://meatbeats.com
              Klippr Video: https://klippr.video

              1 Reply Last reply Reply Quote 0
              • Oli UllmannO
                Oli Ullmann @Christoph Hart
                last edited by

                @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

                Christoph HartC 1 Reply Last reply Reply Quote 0
                • Christoph HartC
                  Christoph Hart @Oli Ullmann
                  last edited by

                  @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

                  Oli UllmannO ulrikU 2 Replies Last reply Reply Quote 1
                  • Oli UllmannO
                    Oli Ullmann @Christoph Hart
                    last edited by

                    @Christoph-Hart
                    Sounds complicated... 😀
                    Thanks for the info! I'll give it a try in the next few days...

                    1 Reply Last reply Reply Quote 0
                    • ulrikU
                      ulrik @Christoph Hart
                      last edited by

                      @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?

                      Hise Develop branch
                      MacOs 15.6.1, Xcode 16.2
                      http://musikboden.se

                      Christoph HartC 1 Reply Last reply Reply Quote 1
                      • Christoph HartC
                        Christoph Hart @ulrik
                        last edited by

                        @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.

                        ulrikU 1 Reply Last reply Reply Quote 4
                        • ulrikU
                          ulrik @Christoph Hart
                          last edited by

                          @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

                          Hise Develop branch
                          MacOs 15.6.1, Xcode 16.2
                          http://musikboden.se

                          1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart @Christoph Hart
                            last edited by

                            @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?).

                            David HealeyD 2 Replies Last reply Reply Quote 0
                            • David HealeyD
                              David Healey @Christoph Hart
                              last edited by David Healey

                              @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 type error 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.

                              Free HISE Bootcamp Full Course for beginners.
                              YouTube Channel - Public HISE tutorials
                              My Patreon - HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • David HealeyD
                                David Healey @Christoph Hart
                                last edited by

                                @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.

                                Free HISE Bootcamp Full Course for beginners.
                                YouTube Channel - Public HISE tutorials
                                My Patreon - HISE tutorials

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                25

                                Online

                                2.1k

                                Users

                                13.2k

                                Topics

                                114.4k

                                Posts