How to update Juce modules without using Projucer


#1

Hello, I cannot use Projucer because I’m too used to my IDE (VS) and I have more than 1400 Files in around 100 Folders/Filters and I never updated the old Introjucer project.

So, I was trying to update my Juce modules to v. 4.2.1. However it seems not possible do it anymore just copying the new modules to my own modules folder. And if I use the Projucer and I export it absolutely destroy all my VS filters (The Introjucer at least allowed you to just copy the new modules without rewrite the VS files).

Please, how can I update my modules without destroying my old project?


#2

Bumping this question - I have the same issue - I’m just trying to update juce now, and thus seeing the warning “No global header file was included!”, and the related note: “Note for people who hit this error when trying to compile a JUCE project created by a pre-v4.2 version of the Introjucer/Projucer, it’s very easy to fix: just re-save your project with the latest version of the Projucer, and it’ll magically fix this!”

I also long long since abandoned introjucer/projucer as there were many things I needed to do with the project files that introjucer/projucer didn’t support. So going back to generating from introjucer/projucer is not an option, but I’m hoping there’s another way to update nonetheless? Perhaps running projucer solely to re-generate the juce header files etc and then discarding its changes to the project for example …?


#3

Tho I see a bunch of other warnings suggesting regenerating with projucer again, relating to various project-file settings etc … given that I also have a number of projects now, and none of them would play-well with being generated by projucer … a guide indicating what settings juce expects/needs perhaps? Or something similar so that we’re not limited by the projucer’s limitations if we want to use juce in a project?


#4

ideally I’d prefer to just use juce like any other library - I just add the files/parts to my project that I want to use … rather than that it is the framework that my app has to fit into, as it seems to be evolving into with this dependency on projucer …?


#5

I just finished updating a pre-4.2 source tree to the latest develop branch and had a similar issue. For better or worse, I updated the files with the Projucer, but reverted my project files. The error you mention was resolved by an update to AppConfig.h.

Hope that helps.


#6

Part of the motivation for changing the module format recently was to make this easier. Really all you need to do is to add the correct .cpp and .h files from a module to your app and it should just work. If you hit problems where there’s something that can’t be done without the projucer, let us know and we’ll try to find a workaround for it.


#7

Ok, yeah, seems I managed for now to get things working again following the update by running the projucer, discarding the project-file changes, adjusting a few things etc.


#8

Apologies if I am misunderstanding the question and that you are trying to so something more complicated than I think, but in Visual Studio at least, this is very easy. Suppose I am creating a multimedia library project with some C++ wrapper classes of my own that call down to the JUCE library to implement the audio and video functionality. Then, as well as my own C++ code added to the VS project, I add a cpp file for each JUCE module I need to make use of.

e.g. To add audio devices I add my own c++ file which I call "include_juce_audio_devices.cpp"
This contains the statement: #include “modules\juce_audio_devices\juce_audio_devices.cpp”

In my VS project properties I have include paths set up so that the JUCE modules directory can be found and I also have various #defines added to the preprocessor settings, such as:
JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;_ALLOW_KEYWORD_MACROS;JUCE_USE_CAMERA; Use whatever is appropriate for your project.

This both builds and runs fine for me. I have NEVER had to use Projucer for JUCE on Windows. What I would really like to do is have a similar convenience on Android, because a Projucer-created Android project seems to use the experimental Gradle plugin, whereas if I create a C++ project directly in the latest Android Studio it does not use that plugin. I find the Android Studio created C++ projects much easier to work with. My question would be can I do the same thing for Android Studio as I do for Visual Studio, adding my own cpp files that #include from the JUCE modules? I assume I need to tell JUCE it is on Android with a preprocessor setting ( ANDROID_CPP?) but is that all, or am I going to get bogged down in some complicated build system Java requirements nightmare?