New docs for Pamplejuce

For many, especially those starting from 0, it improves things because you don’t need to write all those manual build scripts in CI — everything is standardized.

In your case, you’re already setup and running.

So what is it that Cmake gives me?

Other nice things are:

  • Standardization across projects/teams and flexibility within a large maintained ecosystem.

  • It’s build configuration vs. spaghetti code (build scripts). Scripts tend to be brittle across compilers/operating systems/versions.

  • The configuration is explicit (vs. something you modify in a UI). This facilitates sharing/comparing between projects.

  • Complex dependencies are easier/possible in CMake. CMake is widely supported in the C++ ecosystem.

  • Adding JUCE modules (like my component inspector) becomes a 1-liner, you don’t need to manually juggle compile definition / preprocessor stuff for dependencies and it’ll “just work” in CI.

  • You could (and people do) build 10 plugins in a monorepo with CMake

  • With Pamplejuce (what this thread is about) you just need to call 1 command to configure and 1 command to build all plugin targets, including tests and benchmarks — on all platforms.

Why would I use it and give up all the conveniences of Projucer ?

CMake can also be a pain, yet another esoteric thing to learn. I would only only switch if you have a good reason.

But I 100% recommend it to people starting out and who want to build in CI — so much so that I maintain Pamplejuce!

3 Likes