# CLion and Projucer projects

**URL:** <https://forum.juce.com/t/clion-and-projucer-projects/65937>\
**Category:** General JUCE discussion\
**Created:** [April 26, 2025, 7:32am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937 "2025-04-26T07:32:04Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ans](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/ans/32/617_2.png) [@ans](https://forum.juce.com/u/ans)\
**Post date:** [April 26, 2025, 7:32am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/1 "2025-04-26T07:32:04Z")

</div>

What’s the recommended setup and procedure to use CLion along with Xcode and VS? There is no CLion or CMake exporter with Projucer anymore. Setting up a CLion project from scratch based on the source tree is a pain (Juce modules not properly included).

The plan is to edit and refactor the code base with CLion and build/deploy with Xcode and VS. So everything should be kept in one place.

As I haven’t used CLion much yet, I am probably missing the obvious.

---

<div class="post-metadata">

**Author:** ![arcathrax](https://avatars.discourse-cdn.com/v4/letter/a/c37758/32.png) [@arcathrax](https://forum.juce.com/u/arcathrax)\
**Post date:** [April 26, 2025, 7:56am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/2 "2025-04-26T07:56:22Z")

</div>

Use CMake!

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [April 26, 2025, 9:12am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/3 "2025-04-26T09:12:46Z")

</div>

It is a bit of work, an automatic conversion is not available. I don’t know if FRUT is still available or if it is worth it now. It was written for an old version before juce added CMake support.

> [@ans](#):
>
> (Juce modules not properly included).

That should actually work. Have a look at the examples, there is an CMake based juce audio plugin you can easily expand upon:

> <https://github.com/juce-framework/JUCE/blob/master/examples/CMake/AudioPlugin/CMakeLists.txt>

And building with CLion is also easier than involving Xcode. The compiler doing thew work will be the same anyway.

---

<div class="post-metadata">

**Author:** ![zsliu98](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/zsliu98/32/22502_2.png) [@zsliu98](https://forum.juce.com/u/zsliu98)\
**Post date:** [April 26, 2025, 1:16pm UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/4 "2025-04-26T13:16:37Z")

</div>

> [@ans](#):
>
> Setting up a CLion project from scratch based on the source tree is a pain (Juce modules not properly included).

Pamplejuce is a good reference (and `GLOB_RECURSE` is too convenient). Once you setup the cmake, CLion will load the project without much configuration.

> **[GitHub - sudara/pamplejuce: A JUCE audio plugin template. JUCE 8, Catch2,...](https://github.com/sudara/pamplejuce)**
>
> A JUCE audio plugin template. JUCE 8, Catch2, Pluginval, macOS notarization, Azure Trusted Signing, Github Actions

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [April 26, 2025, 1:22pm UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/5 "2025-04-26T13:22:37Z")

</div>

I recommend to start simple with the cmake from the juce docs.  
PampleJuce and Eyal’s template and several more are great to look up things you want to add later. But starting with them is overwhelming.

And I would recommend not to use globbing. Sometimes you want to make a copy of a file and suddenly it is included and hell breaks loose.

---

<div class="post-metadata">

**Author:** ![ans](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/ans/32/617_2.png) [@ans](https://forum.juce.com/u/ans)\
**Post date:** [April 27, 2025, 8:50am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/6 "2025-04-27T08:50:18Z")

</div>

Thanks so far. I’d rather avoid writing and maintaining CMake files manually. That would be a real pain. The code base is really huge and still changes a lot over time.

What was the original reason for abandoning the CMake/CLion exporters? It might make more sense to grab it from an earlier Juce version and update it?

---

<div class="post-metadata">

**Author:** ![eyalamir](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/eyalamir/32/2978_2.png) [@eyalamir](https://forum.juce.com/u/eyalamir)\
**Post date:** [April 27, 2025, 5:12pm UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/7 "2025-04-27T17:12:00Z")

</div>

The CLion exporter never did work well, it was probably just too hard for the JUCE team to maintain support for two meta build systems and convert from one to another.

I would suggest to just switch to CMake and ditch the Projucer. There are now plenty of production-ready templates online using JUCE and CMake and it shouldn’t be too hard to do.

I know of several companies who switched their ‘live’ projects from one to another just in the last year or so.

---

<div class="post-metadata">

**Author:** ![nicolasdanet](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/nicolasdanet/32/56_2.png) [@nicolasdanet](https://forum.juce.com/u/nicolasdanet)\
**Post date:** [April 28, 2025, 4:52am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/8 "2025-04-28T04:52:50Z")

</div>

I wanted to switch to CMake ; After one week of reading books i decided to do it later.

---

<div class="post-metadata">

**Author:** ![eyalamir](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/eyalamir/32/2978_2.png) [@eyalamir](https://forum.juce.com/u/eyalamir)\
**Post date:** [April 28, 2025, 7:48pm UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/9 "2025-04-28T19:48:42Z")

</div>

You don’t need to spend weeks reading books. There are quite a few templates that do similar things to the Projucer templates, two examples are:

> **[GitHub - eyalamirmusic/JUCECmakeRepoPrototype: A prototype to model a way to create an entire...](https://github.com/eyalamirmusic/JUCECmakeRepoPrototype)**
>
> A prototype to model a way to create an entire repo using JUCE6 and CMake.

> **[GitHub - sudara/pamplejuce: A JUCE audio plugin template. JUCE 8, Catch2,...](https://github.com/sudara/pamplejuce)**
>
> A JUCE audio plugin template. JUCE 8, Catch2, Pluginval, macOS notarization, Azure Trusted Signing, Github Actions

---

<div class="post-metadata">

**Author:** ![PluginPenguin](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/pluginpenguin/32/10203_2.png) [@PluginPenguin](https://forum.juce.com/u/PluginPenguin)\
**Post date:** [April 29, 2025, 8:39am UTC](https://forum.juce.com/t/clion-and-projucer-projects/65937/10 "2025-04-29T08:39:09Z")

</div>

About ca. 4 years ago we transitioned all our active products from Projucer based to CMake and never looked back. It was actually a quite straightforward task and to me personally made maintaining stuff a lot easier, especially since you can move patterns used in every plugin to common cmake functions, maintained along with other shared code, which is not really possible with the Projucer.

I’d encourage you to try out porting one existing project manually to get a feeling about how much or little pain it really is. And then working with CMake just feels super straightforward.
