[tsc-devel] Re: Build system for TSC3
Ryan Gonzalez |
Sun, 17 Jun 2018 13:37:33 UTC
*puts on build system nerd hat*
<brain-dump>
I'd highly advise *against* something homegrown. Almost every time I see
this, the following happen:
- Cross-platform breaks every other week.
- The build system code gets to thousands of LOC.
- Everyone hates using it.
Maintaining a custom build system on top of SCons literally killed the Yhc
project, and there are inevitably going to be insane portability issues on
less frequently used platforms.
Now, here are the cross-platform ones I *personally* think are the best:
- Meson. Now used by many GNOME and Red Hat projects (systemd, GTK+,
flatpak, ...) to replace the aging autotools build systems. IMO if you want
a meta build system (e.g. a build system generator like CMake), this is the
best option. It configures and builds super fast, too, and it comes with
built-in Boost support. Con: requires Python 3.
- Boost.Build. Idiosyncratic syntax (in master, they finally removed the
"space before semicolon" requirement), so-so documentation, and it's a bit
slower...but if you're going for pure C++ configuration support, I've never
seen anyone beat it.
- Waf. Used by the Samba project. I haven't used it in quite a while, but
it runs on many Python versions, and it's pretty fast, too.
- Bazel. This thing is the literal definition of "fat" (depends on the JVM,
and the Windows binaries, bizarrely enough, include the *entire JVM*),
but... If you want you builds to work literally flawlessly...man, it's *so*
stinking nice.
- Fbuild. Ok, I'm basically the only person who uses this, but hey, this
list wouldn't be complete without a little plug, right? 😉
</brain-dump>
On June 17, 2018 5:06:10 AM Marvin Gülker <…r@p…> wrote:
> Hi everyone,
>
> since I have heard complaints about cmake every now and then, I'd
> carefully ask if anyone wants to propose an alternative. Luiji earlier
> suggested something custom written in Ruby. Since Ruby does with its
> included Rake have a quite powerful task tool that can easily be
> extended, that's one possibility I'd be willing to further explore (also
> given that we have Ruby as a build dependency anyway due to mruby, which
> does use Rake).
>
> Note I'm only asking for suggestions so I can evaluate them. That
> doesn't necessaryly mean that I'm going to switch the build system for
> TSC3 anytime soon. I'm mostly fine with cmake except for a few quirks
> and for me there's only little reason to switch.
>
> Currently, TSC3 uses cmake just like TSC2. Since TSC3 will have a
> noticably smaller number of dependencies (I hope), the cmake
> configuration will be noticably easier as well.
>
> I'd like to preclude autotools from possible build system
> alternatives. I've struggled with it enough when I took over old SMC.
>
> Marvin
>
> --
> Blog: https://mg.guelker.eu
> PGP/GPG ID: F1D8799FBCC8BC4F
> _______________________________________________
> tsc-devel mailing list -- …l@l…
> To unsubscribe send an email to …e@l…
_______________________________________________
tsc-devel mailing list -- …l@l…
To unsubscribe send an email to …e@l…