On 24.09.2024 18:42, Timothy Schoen wrote:
Hi!
The reason for cmake is that ELSE depends on various other libraries that use cmake build systems, like sfizz, opus, and a few more. There are also a few objects that have complicated build systems, like [play.file~], [circuit~], [sfont~], [sfz~], [pdlink~], and a few more. Dealing with complicated sub-buildsystems with makefiles is not as easy as it is with cmake.
Totally makes sense! pd-lib-builder is cool for simple externals, but it breaks down for more complex projects. I use CMake myself for some of my externals for various reasons.
That being said, I'd argue that most of the subprojects in [else] should really be dedicated externals, but somehow Alex seems to be a fan of huge monorepos :)
Christof
On top of that, Pierre Guillot's pd.build system for cmake is fantastic. It just generates a normal cmake target, so you can use regular cmake syntax to manipulate it. IMO, that makes it a lot easier to work with than pd-lib-builder for complex build systems.
The main goal was that you can compile the entirety of ELSE using a single build command. Before we changed to cmake, that was not working. This change also drastically simplified our CI, and allows for CI build caching.
It probably could have been done with pd-lib-builder too, but the resulting build system would have been more difficult to maintain than the cmake equivalent. And since porres mostly lets me fix the build system when things break, it made sense to use something that I'm more comfortable with. He only asked for help here because I was taking a small break, but I'm back now and have helped him finish the release.
So, lots of reasons, hope it makes sense!
Tim
On 24/09/2024 05:43, IOhannes m zmölnig wrote:
Am 24. September 2024 03:03:30 MESZ schrieb Alexandre porres@gmail.com:
Hi, I'm releasing an update of ELSE but I now have a whole new build system with cmake,
[...]
And I need help compiling it for Linux and Windows.
I wonder what features you need from your build system that cannot be satisfied by pd-lib-builder. ELSE is being built for different Pd backends (vanilla, plug data,...) and I figure that was part of the motivation (and my gut feeling tries to tell me, that there's also a "'make' is from the past century, everybody uses 'cmake'" by whoever wrote the new build system, but that is mere conjecture).
In any case I would be interested in the motivation for switching a relatively simple library like ELSE.
(I can think of one good reason, but free people seem to need it)
By the way, building for double precision Pd is now possible
As a packager I found it super simple to add double precision builds to dozens of pd-lib-builder based externals without needing to touch their build system at all. So why was that complicated/impossible for ELSE?
mfg.sfg.jfd IOhannes
pd-list@lists.iem.at - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/DPGKSG7S3M...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/
pd-list@lists.iem.at - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/pd-list@lists.iem.at/message/HEWMJ4VWLZ...
To unsubscribe send an email to pd-list-leave@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/