Le dim. 17 mai 2020 à 21:47, Nikolaus Waxweiler <
address@hidden> a écrit :
First off: all of this sounds fantastic! I always love when stuff is deleted :)
> In the end, and this is personal opinion, I find Meson cleaner than CMake,
I'd vote for removing CMake support. Its inofficial status means that
people shouldn't rely on it anyway, even if there inevitably are
people that do.
I think providing a CMakeLists.txt that can be used directly to compile FreeType as a sub-project in a CMake-based project is still a very useful thing.
As well as a FindFreeType.cmake or FreeTypeConfig.cmake module to be installed to make the system library available.
But that's just for the core library. I.e. the ability to build documentation, install the library, or create distribution packages in CMake are probably superfluous.
I hope to see something like the following for the future:
- Meson as the primary build system for FreeType developers, which includes the ability to run tests, sanitizers, coverage analysis, etc.
- Creating a distribution package should ensure the result supports config/make and CMake out of the box to build a default configuration of the library (with regards to features/modules, not external dependencies). The meta-build script would be useful for this.
- The distribution package should probably only contain what's needed to build the library, and not all the extra tests we may use during development (maybe we can separate them with git submodules, I don't know yet).
- A developer that wants to use FreeType with a different module/feature configuration would have to generate a new version of ftconfig.h/ftoption.h and use that in his/her own build system.
But as I said, baby steps, so let's not throw CMake support just yet.
By the way, I've compared the size of the stripped libfreetype.so binaries created by the 3 build systems:
default: 712 KiB
CMake: 812 KiB
Meson: 896 KiB
All generated on Linux from the same sources with the same ftconfig.h / ftoption.h (in particular with all external dependencies enabled), and with -fvisibility=hidden enabled for all of them.
I don't understand why there is such a large differenc yet.