"Jucify" an actual Xcode project & ninja compiler


Hello ! Im working on an audio streaming throught network plugin. I learned cpp by myself so it is highly likely that I missed something ^^.
Currently: I managed to build a local-network Audio Unit plugin prototype actually working with the live555+JUCE wonderful tools.

Actual goal is : to build an AUdioUnit or VST plugin with the WebRTC library in it.

I have webrtc (and apprtc) on my computer with xcode projects, examples compiling.
BUT I can’t find how to build an AudioUnit/VST from that.

So questions are :

  • 1.is it possible to « jucify » an actually existing Xcode workspace (like adding an AudioUnit target to the webRtc project) ?

    1. Does it seems possible to compile Juce projects with the ninja compiler (needed for webrtc)?

Any help would be so appreciated and I thank by advance anyone that would take a little time to respond !
And JUCE is awesome^^

  1. Anything is possible, but it might be very difficult :slightly_smiling_face: More concretely you would need to add the JUCE code, dependencies to OSX frameworks and some preprocessor definitions to the Xcode project. It might be easier to create an Audio Plug-in project in Projucer and add WebRtc.

  2. I don’t know any ninja compiler. I guess you meant the Ninja build system (https://ninja-build.org). xcodebuild (used by Xcode), MSBuild (used by Visual Studio), make, SCons are other examples of build systems. They take care of calling the compiler when the build artifacts don’t exist or when source files change. The JUCE code doesn’t depend on a specific build system, so using Ninja is possible, but Projucer doesn’t know how to generate Ninja files. CMake does, and I am actively working on FRUT (https://github.com/McMartin/FRUT), which helps building existing JUCE projects with CMake.

I hope this helps. Don’t hesitate to ask more questions.


Thank you McMartin !

  1. Sadly it seems impossible for now to build/compile a mac webrtc library file :confused: .

  2. Following to your answer Ill dig the build system subject deeper. I think have understood than its difficult to build webrtc’s targets (ok im blurry on the build/compiler stage) with something else than Ninja but it’s helping me to know than FRUT could be a track.

THNKS again for the quick answer