JUCE 5.4.5 - Possible Build Issue

My attempts to build the new 5.4.5 version are failing with “saved with old version of ProJucer” errors (Windows 10, VS 2017).

What I always do is as follows;

  1. rename my old JUCE folder (C:\SDKs\JUCE to C:\SDKs\JUCE-Old)
  2. extract the download Zip to a new JUCE folder (C:\SDKs\JUCE).
  3. copy my “old” ProJucer.exe to the new JUCE folder
  4. build a new ProJucer.exe with the new JUCE folder files
  5. copy the newly built ProJucer.exe to replace the old version in the new JUCE folder

That has always worked, but not this time. I tried both the Master and Develop downloads with the same results.

Please advise…

Since the juce repo contains all versions of juce, why aren’t you just checking out an older version when you need it? Are you modifying the source, maintaining your own fork or something?

Why aren’t you cloning the repo from Github?

I don’t understand this step. There are already VisualStudio2015, VisualStudio2017, and VisualStudio2019 folders under extras/Projucer/Build. You don’t need the old Projucer to generate the build system files to build the new one.

I had the same thing happen after accepting an upgrade to 5.4.5. Yesterday, i also accepted an updated to Visual Studio, so maybe that’s related. Here is how I resolved it: Somehow the VS project file had its default build target set back to VS 2017, which I have never used or had on the system:

VS2019: Project/Properties: Set platform toolset to 2019 v142.

I have no idea why this happened, but I’m also quite new to Juce, so with that: switching back to 5.4.4 and setting the VS tools as above, the project compiled. Switching to 5.4.5, the toolchain got reset to v141, so I think projucer does this.

One more thing: It looks as if the default projucer VS platform is 141 and that 142 is not an option.

Why?

  1. I like to build ProJucer, and any other tools, with the resources that I have on my machine.

  2. It is a reasonable expectation that ProJucer 5.4.4 will build ProJucer 5.4.5.

  3. If I am doing something wrong, I hope to learn
    .

Yes, please answer: why are you not using Git to clone/check out older JUCE versions?

I do not use github. I do not use old versions of JUCE. I always build from the most recent version.

No one said anything about github or bitbucket or any online source repository hosts.

Do you not use git for source code management?

I am a solo programmer, I simply use a good depth of backups, which allows me to roll back, if necessary. This has always been sufficient for my needs.

How do you develop across multiple machines, like a laptop and desktop, or a machine running Windows and another running OS X? Please don’t say “I keep my source code in DropBox”.

This is the entire purpose behind git.

https://hackernoon.com/understanding-git-fcffd87c15a3

Thank you. I will look at the link to learn more.

This does not address the issue, however. When downloaded, the JUCE Zip file does not contain a compiled “ProJucer.exe”, so it is necessary to compile one for yourself. It is therefore necessary to use your existing version of ProJucer (in my case, Version 5.4.4) to compile the new version (5.4.5 in this instance). This has always worked in the past, no problem. But with the 5.4.5 release, it is not working for VS 2017, as I reported in my initial post. And, see above, I am not the only one.

So, something is different with the 5.4.5 version, at least as far as VS 2017 is concerned.

I can continue to work using the 5.4.4 version of JUCE. But I like to be on the latest version, so I am hoping someone can offer a solution, as I have not found one.

This is what everyone does. The repo includes Xcode project files, and Visual Studio project files. You don’t need a previous version of ProJucer to build Projucer. See here:

https://github.com/WeAreROLI/JUCE/tree/develop/extras/Projucer/Builds

Thank you. Compiling directly from the VS solution file worked, of course.

I do all my work within VS 2017. And, in my three years experience with JUCE, I have always passed any code related to JUCE through Projucer, including Projucer itself, on its way to VS… And this was never a problem until now.

I suspect the JUCE guys have tired of people having issues caused by compiling with older mismatched versions of JUCE and Projucer, so they have now made that an error.

Going forward I know to use the VS solution file directly.

Thank you for your help!

You should learn to use Git so you can pull the develop branch from the official repo into your local copy so you stay up to date with all the bug fixes they push out every few days:

2 Likes

Yes. I will look into that.

Thank you, again.

That screenshot is showing the Fork git client: https://fork.dev/

1 Like

Where are you downloading from? Downloads from the website and via the Projucer both contain Projucer binaries.

I download from https://github.com/WeAreROLI/JUCE, and usually the Develop download zip.

The situation was resolved by simply using the Visual Studio solution file directly. And the situation arose from my habit of always passing anything JUCE related through the Projucer. So, it had been my habit to build the new Projucer by using the previous version Projucer. But now that produces an error and will not compile. So, going forward, I will always compile the new Projucer directly from the Visual Studio solution file.

I suspect the JUCE team got tired of people having issues due to mismatched versions of JUCE and Projucer, and so made that an error?

Thank you.