[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Mingw-cross-env-list] Question about contributing Meson integration

From: Nagaev Boris
Subject: Re: [Mingw-cross-env-list] Question about contributing Meson integration
Date: Tue, 28 Nov 2017 16:04:28 +0000

On Tue, Nov 28, 2017 at 12:13 PM, Andrei Alexeyev
<address@hidden> wrote:
> I'm working on a project that currently uses the CMake build system, and
> we've
> been using MXE with its CMake wrappers to make the official release builds
> for
> Windows. However, we are about to switch to the Meson build system soon. I
> would
> like to add a similar kind of integration for it and contribute it back to
> MXE,
> so that other projects may benefit.
> I have a question though. MXE currently builds and installs its own version
> of
> CMake and points the wrapper scripts to it. Does that mean I would also have
> to
> add packages for Meson and its dependencies (ninja, python3, and whatever
> these
> two pull in that's not in MXE right now) instead of relying on their
> availability in the host system? And if so, is there any good reason for
> that?
> Thanks in advance.

Hey Andrei

Thank you for contributing to MXE!

In case you want to write a wrapper only, I think it is possible to
make a package called meson-wrapper installing a script to
usr/bin/$(TARGET)-meson relying on a system meson. As this package
relies on something that is not a dependency of MXE and not provided
by MXE, it should not be put into src/ directory and instead should go
to a plugin (see https://github.com/mxe/mxe/tree/master/plugins ), I guess.

CMake is used by many MXE packages themselves, so it is a requirement
to have a working CMake to build MXE. If you want to add packages
using Meson as a build system, Meson needs to be either:

1. added to MXE as a package (like cmake)
2. added to MXE as a dependency (like automake)

The second approach would require all users of MXE to install Meson.
Meson would have to be available in all the distributions where MXE is
used (Debian, Fedora, FreeBSD - see the whole list here:
http://mxe.cc/#requirements ). Also any incompatibility of Meson
versions would result in broken builds for users having versions not
working with the version of the Meson build files. With CMake this
happened that a CMakeLists.txt working well with one CMake version
breaks in other. If this happens in one of MXE packages using CMake,
we patch that package to make it buildable against the CMake used in
MXE. It is easier to make sure that every package builds against one
CMake version than against *all* CMake versions.

Best regards,
Boris Nagaev

reply via email to

[Prev in Thread] Current Thread [Next in Thread]