Re: Switching from Autotools to CMake for core evolution products



On Mon, 2016-10-10 at 12:45 -0500, Michael Catanzaro wrote:
On Mon, 2016-10-10 at 12:57 -0400, Owen Taylor wrote:
Can you propose what the necessary change would be to:

 https://people.gnome.org/~walters/build-api/build-api.md

Well that document is Autotools-specific. It would need to be written
from scratch for CMake following CMake conventions, and separately
again for Meson.

That is exactly the opposite of the intention of Colin's build-api
specification. The build-api is specifically written so that it
*doesn't* require every project to be built with Autotools. If it
assumed Autotools, it would be a much shorter document, starting with
"you must use Autotools" :-)

It *is* designed such that implementing it in Autotools modules is
trivial, because the free software world (with a particular focus on
the parts of it in and below GNOME) already contains a lot of
Autotools. Would you have preferred it to take the form

    ./build-api.sh prepare with_libdir=/usr/lib64
    ./build-api.sh build
    ./build-api.sh install with_root=/foo

(ensuring that in practice, *every* project needs modifications if it
is to implement the build-api) out of some sense of artificial
neutrality?

The intention of the build-api, as I understand it, is to avoid this:

https://git.gnome.org/browse/jhbuild/tree/jhbuild/modtypes

and this:

https://anonscm.debian.org/git/debhelper/debhelper.git/tree/Debian/Debh
elper/Buildsystem

or if you think package-based distributions are a thing of the past[1],
this, part of the base on which gnome-continuous and the reference
Flatpak runtimes are built:

https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/lib/recipe
tool/create_buildsys.py

or further away from GNOME, this:

https://quickgit.kde.org/?p=kdesrc-build.git&a=tree&h=a6fa7cd83f0fbae52
4a63952c3c3bf607b7566d0&hb=f187eaf9ff7b3994de649377abf18f131fee03ef&f=m
odules%2Fksb%2FBuildSystem

and more generally, everyone who builds an operating system having to
invent an abstraction layer across popular and semi-popular build
systems to map them into their favourite meta-build system.

(I'm using "operating system" rather loosely here: Flatpak doesn't
build operating systems, as such, but flatpak-builder uses the build-
api to build runtimes and apps.)

    S

[1] I don't

-- 
Simon McVittie, Collabora Ltd. <http://www.collabora.com/>



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