[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…
By Thread
2018-06-17 10:05:51Marvin Gülker[tsc-devel] Build system for TSC3
2018-06-17 13:37:33Ryan Gonzalez[tsc-devel] Re: Build system for TSC3
2018-06-18 10:27:00Marvin Gülker[tsc-devel] Re: Build system for TSC3
2018-06-18 13:26:24Ryan Gonzalez[tsc-devel] Re: Build system for TSC3
By Date
[tsc-devel] Build system for TSC3Marvin Gülker2018-06-17 10:05:51
[tsc-devel] Re: Build system for TSC3Ryan Gonzalez2018-06-17 13:37:33
[tsc-devel] Re: Build system for TSC3Marvin Gülker2018-06-18 10:27:00
[tsc-devel] Re: Build system for TSC3Ryan Gonzalez2018-06-18 13:26:24