Porting Mesa/Libdrm's Build System To Meson Brings Up Controversy
Last week an independent developer proposed replacing the build system of libdrm -- the DRM library that sits between Mesa and the Linux kernel DRM -- to using the Meson build system as a potential replacement to using Autotools. That has led to another colorful discussion around build systems.
Dylan Baker's RFC patches can be found on the dri-devel list and the discussion that ensued. He argues that the build system with Meson would be better since it's written in Python, Meson makes use of Ninja rather than CMake, its syntax is arguably simpler, and it's quicker. Dylan found that his build times dropped from 26 seconds to 13 seconds when going from Autotools to Meson. When making use of ccache, the build times dropped from 13 seconds to 2 seconds. He also mentioned he's planning on porting Mesa's Autotools/CMake build system over to Meson.
Among the comments that were generated by upstream developers:
- Autotools is really good for a simple "./configure --help" to find out the build options and it's also good with cross-compilation support. Meson has an alternative means though of viewing the help information and it can also handle cross-compiling albeit it's arguably more complicated than Autotool's support.
- Concerns were raised that Meson's use of Ninja is a problem since currently Ninja redirects all output to stdout rather than errors going to stderr, which can cause issues for some developers/environments.
- In a follow-up message, Baker commented he's more concerned about landing Meson support in Mesa rather than libdrm. Faster build performance and better Microsoft Visual Studio support were argued as the main motivation.
- The lack of Meson on BSDs, Solaris, and Android is a problem.
- There is certainly interest by upstream developers in having a single, maintained build system and also more unified Windows/Linux build support, but getting there is the challenge.
- VMware remains tied to Mesa's SCons build system due to their Windows builds. Brian Paul may investigate the possibility that they could switch to using Meson.
And a lot of other developers sharing their two cents and remarks about build systems. Those interested in build system discussions can continue reading on dri-devel.
Dylan Baker's RFC patches can be found on the dri-devel list and the discussion that ensued. He argues that the build system with Meson would be better since it's written in Python, Meson makes use of Ninja rather than CMake, its syntax is arguably simpler, and it's quicker. Dylan found that his build times dropped from 26 seconds to 13 seconds when going from Autotools to Meson. When making use of ccache, the build times dropped from 13 seconds to 2 seconds. He also mentioned he's planning on porting Mesa's Autotools/CMake build system over to Meson.
Among the comments that were generated by upstream developers:
- Autotools is really good for a simple "./configure --help" to find out the build options and it's also good with cross-compilation support. Meson has an alternative means though of viewing the help information and it can also handle cross-compiling albeit it's arguably more complicated than Autotool's support.
- Concerns were raised that Meson's use of Ninja is a problem since currently Ninja redirects all output to stdout rather than errors going to stderr, which can cause issues for some developers/environments.
- In a follow-up message, Baker commented he's more concerned about landing Meson support in Mesa rather than libdrm. Faster build performance and better Microsoft Visual Studio support were argued as the main motivation.
- The lack of Meson on BSDs, Solaris, and Android is a problem.
- There is certainly interest by upstream developers in having a single, maintained build system and also more unified Windows/Linux build support, but getting there is the challenge.
- VMware remains tied to Mesa's SCons build system due to their Windows builds. Brian Paul may investigate the possibility that they could switch to using Meson.
And a lot of other developers sharing their two cents and remarks about build systems. Those interested in build system discussions can continue reading on dri-devel.
26 Comments