[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Build system considerations
From: |
Vincent Torri |
Subject: |
Re: Build system considerations |
Date: |
Thu, 30 Apr 2020 07:56:21 +0200 |
On Thu, Apr 30, 2020 at 2:34 AM David Turner <address@hidden> wrote:
>
> Starting a thread here to discuss potential build system improvements for
> FreeType.
>
> The current FreeType 2 build system has many flaws. To its credit, it was
> designed in a very different time, when things like CMake / Meson / Ninja/
> Maven / GN / Bazel didn't even exist, when Autotools was considered the best
> system to configure your build (ah!), and GNU Make 3.81 was considered new
> and bleeding edge, and didn't necessarily exist for all platforms. I'm not
> even sure pkg-config was available on all Linux distros until quite a long
> time. As I said ... very different times.
>
> Despite that, it was also designed to make FreeType buildable on a maximum
> amount of systems, and I attribute part of its success to that specific
> feature, especially in the embedded world. While we probably no longer care
> about developers using DOS and OS/2 systems to build the library, I would
> really appreciate if any replacement could continue in this direction.
>
> I think it would also be acceptable if the build system used to develop
> FreeType itself, might be different than the one used by other developers
> that simply want to use it in their own projects. For example something that
> can build and run tests easily with sanitizers, fuzzing, remote bots and
> other goodies, or can integrate well with a continuous integration system.
> While at the same time, being able to generate simple Makefiles / CMakefiles
> / BUILD / BUILD.gn / whatever corresponding to a specific configuration of
> the library (which is what 95% of developers using the library need).
>
> I have experience with CMake (I find it a vast improvement over auto-tools
> for package / feature detection, but a hot mess for about anything else),
> GN/Ninja (very powerful, but essentially requires too much dependencies to
> get the most out of it) and Bazel (can be hard to get into, very powerful,
> but requirements are a bit crazy at the moment). I'm curious about Meson.
i prefer meson compared to cmake because :
* more readable syntax (the main point for me)
* meson honors CFLAGS/LDFLAGS
* cross compilation is simpler
regards
Vincent Torri
Re: Build system considerations, Behdad Esfahbod, 2020/04/30