Projucer Requires webkit2gtk-4.0.pc on Linux

Is there any reason that the PJ requires webkit to be installed on Linux?
I’m in the process of setting up Jenkins build servers and need to build the PJ first in order to build our app project files.

The build server is running Ubuntu 14 to maximise compatibility with other Debian based distros. If I update to 15 or 16 I will probably break some compatibility for systems that users are already running our products on.

I can’t see why there is this new dependancy on webitk, it’s caused many problems for us which I reported previously. Surely if you disable the web browser (and that should be disabled in the PJ settings right?) then we shouldn’t need this SDK which you can’t get on Ubuntu 14?

It’s needed by the WebBrowserComponent. I didn’t realise it was mandatory though.

this dependency is a problem for me too. I used to build my Linux Versions of JUCE apps on a Centos Machine for some month now, but since I updated to JUCE 5, trying to build the new Producer fails because of this dependency.

You said:

So I’d be interested in how and where to disable the web browser when building the Projucer on a Linux machine? Would be glad if I got this working :wink:

It doesn’t look like this is possible anymore.

It used to be that on platforms that didn’t support the WebBrowserComponent you would just get an empty Component stub i.e. you could still instantiate a WebBrowserComponent but it would be blank. Now this isn’t possible.

I think the only way around this would be to provide a command-line only version of the PJ that doesn’t have any of the reliance on the packages listed here.

You can simply enable GPL mode in the Projucer by enabling JUCER_ENABLE_GPL_MODE=1 and disabling the web browser JUCE_WEB_BROWSER=0. We need to update the projucer to not add the webkit2gtk dependency if JUCE_WEB_BROWSER=0 on linux but you can also do this manually by editing the Makefile or adding the --as-needed linker flag.

No, if we do this the build will break because the WebBrowserComponent will no longer be declared or defined.

I’m fairly sure that I tried the --as-needed and it didn’t work. The build fails at the compile stage due to the lack of webkit.

Updating the Projucer to not add the webkit2gtk dependancy won’t help in building the Projucer though. It would need to be in the repo like that so a fresh clone would build.

I may not have explained this very well because all this webkit malarky has caused several problems. I’ve been trying to report them separately to avoid confusion but they do overlap. I’m talking about a specific use-case here:
• I have a Mac whose only job is to host Jenkins, everything is automated and there is no user-interaction
• The first thing Jenkins does is a Git clone
• Then it tries to build the PJ in order to generate the rest of my project files as these are not checked in to source control
• On Ubuntu 14 this is done with something like this
cd $projcuerRoot make Config=Release $projucerExe --resave $projectJucerFile
• The PJ will fail to compile due to the missing webkit
• Now I can’t generate my Makefiles and build my projects
• Jenkins sends me angry emails

What I need is a way to specify on the command line to not build the PJ with a dependancy on webkit.
The problems are:
• As it stands, if I compile the PJ with JUCE_WEB_BROWSER=0, it won’t build
• The --as-needed linker flag doesn’t work, the compile fails before it hits the link stage
• How do I add extra pre-processor definitions to make if we could get the above to work?
• I would really rather not have to write a script that manually removes the webkit2gtk text from the freshly cloned JUCE repo. This feels very hacky and kind of defeats the point of building exactly what is in Git

I’ve now added an improvement for this use-case on develop: the Projucer will not depend on webkit2gtk if you disable the web browser component via JUCE_WEB_BROWSER=0 and enable GPL mode JUCER_ENABLE_GPL_MODE=1.