Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Print a list of all not-found required and optional dependencies #985

Open
nirbheek opened this issue Nov 2, 2016 · 3 comments
Open

Print a list of all not-found required and optional dependencies #985

nirbheek opened this issue Nov 2, 2016 · 3 comments

Comments

@nirbheek
Copy link
Member

nirbheek commented Nov 2, 2016

It's very annoying to run meson and work your way through a list of required and not-found dependencies one-by-one. Package managers are slow and have a large overhead per-invocation and ideally you want to get a full list, set it to install, and get back to it later.

There is no recourse w.r.t. this when using Autotools, but we can definitely do better. I think it would also be a major plus-point when talking about Meson to other people.

@nirbheek
Copy link
Member Author

nirbheek commented Nov 2, 2016

Building a typical Meson project with just a few dependencies looks like this right now:

http://dpaste.com/1VFTY14

We should definitely do better.

@nirbheek
Copy link
Member Author

Pasting that link here so it doesn't get lost when it expires.

nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0

Meson encountered an error in file src/meson.build, line 9, column 0:
Native dependency gtk-vnc-2.0 not found.
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0
Native dependency gtk-vnc-2.0 found: YES 0.5.4

Meson encountered an error in file src/meson.build, line 9, column 0:
Native dependency libvirt-gobject-1.0 not found.
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0
Native dependency gtk-vnc-2.0 found: YES 0.5.4
Native dependency libvirt-gobject-1.0 found: YES 0.2.3
Native dependency libvirt-gconfig-1.0 found: YES 0.2.3
Native dependency libxml-2.0 found: YES 2.9.3
Native dependency libusb-1.0 found: YES 1.0.20

Meson encountered an error in file src/meson.build, line 9, column 0:
Native dependency spice-client-gtk-3.0 not found.
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0
Native dependency gtk-vnc-2.0 found: YES 0.5.4
Native dependency libvirt-gobject-1.0 found: YES 0.2.3
Native dependency libvirt-gconfig-1.0 found: YES 0.2.3
Native dependency libxml-2.0 found: YES 2.9.3
Native dependency libusb-1.0 found: YES 1.0.20
Native dependency spice-client-gtk-3.0 found: YES 0.32
Native dependency gudev-1.0 found: YES 230

Meson encountered an error in file src/meson.build, line 9, column 0:
Native dependency libosinfo-1.0 not found.
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0
Native dependency gtk-vnc-2.0 found: YES 0.5.4
Native dependency libvirt-gobject-1.0 found: YES 0.2.3
Native dependency libvirt-gconfig-1.0 found: YES 0.2.3
Native dependency libxml-2.0 found: YES 2.9.3
Native dependency libusb-1.0 found: YES 1.0.20
Native dependency spice-client-gtk-3.0 found: YES 0.32
Native dependency gudev-1.0 found: YES 230
Native dependency libosinfo-1.0 found: YES 0.3.0
Native dependency libsoup-2.4 found: YES 2.54.1
Native dependency libarchive found: YES 3.2.1
Native dependency tracker-sparql-1.0 found: YES 1.8.0
Native dependency gmodule-2.0 found: YES 2.48.2

Meson encountered an error in file src/meson.build, line 9, column 0:
Native dependency rest-0.7 not found.
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0
Native dependency gtk-vnc-2.0 found: YES 0.5.4
Native dependency libvirt-gobject-1.0 found: YES 0.2.3
Native dependency libvirt-gconfig-1.0 found: YES 0.2.3
Native dependency libxml-2.0 found: YES 2.9.3
Native dependency libusb-1.0 found: YES 1.0.20
Native dependency spice-client-gtk-3.0 found: YES 0.32
Native dependency gudev-1.0 found: YES 230
Native dependency libosinfo-1.0 found: YES 0.3.0
Native dependency libsoup-2.4 found: YES 2.54.1
Native dependency libarchive found: YES 3.2.1
Native dependency tracker-sparql-1.0 found: YES 1.8.0
Native dependency gmodule-2.0 found: YES 2.48.2
Native dependency rest-0.7 found: YES 0.8.0
Native dependency glib-2.0 found: YES 2.48.2
Warning, GLib compiled dependencies do not work fully with versions of GLib older than 2.50.0.
See the following upstream issue: https://bugzilla.gnome.org/show_bug.cgi?id=745754
Dependency govirt-1.0 found: NO
Build targets in project: 9
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
Error during basic setup:

Trying to run Meson on a build directory that has already been configured.
If you want to build it, just run your build command (e.g. ninja) inside the
build directory. Meson will autodetect any changes in your setup and regenerate
itself as required.
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ rm -rf build/*
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ meson build
The Meson build system
Version: 0.36.0.dev1
Source dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git
Build dir: /home/nirbheek/projects/repositories/gnome/gnome-boxes.git/build
Build type: native build
Project name: gnome-boxes
Native vala compiler: valac (valac 0.32.1)
Native c compiler: cc (gcc 6.2.1)
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Native dependency gtk+-3.0 found: YES 3.20.9
Library m found: YES
Program vapigen found: YES (/usr/bin/vapigen)
Native dependency glib-2.0 found: YES 2.48.2
Native dependency gio-2.0 found: YES 2.48.2
Native dependency gobject-introspection-1.0 found: YES 1.48.0
Native dependency gtk-vnc-2.0 found: YES 0.5.4
Native dependency libvirt-gobject-1.0 found: YES 0.2.3
Native dependency libvirt-gconfig-1.0 found: YES 0.2.3
Native dependency libxml-2.0 found: YES 2.9.3
Native dependency libusb-1.0 found: YES 1.0.20
Native dependency spice-client-gtk-3.0 found: YES 0.32
Native dependency gudev-1.0 found: YES 230
Native dependency libosinfo-1.0 found: YES 0.3.0
Native dependency libsoup-2.4 found: YES 2.54.1
Native dependency libarchive found: YES 3.2.1
Native dependency tracker-sparql-1.0 found: YES 1.8.0
Native dependency gmodule-2.0 found: YES 2.48.2
Native dependency rest-0.7 found: YES 0.8.0
Native dependency glib-2.0 found: YES 2.48.2
Warning, GLib compiled dependencies do not work fully with versions of GLib older than 2.50.0.
See the following upstream issue: https://bugzilla.gnome.org/show_bug.cgi?id=745754
Native dependency govirt-1.0 found: YES 0.3.4
Build targets in project: 9
nirbheek@midori ~/projects/repositories/gnome/gnome-boxes.git $ 

@nirbheek
Copy link
Member Author

nirbheek commented Mar 2, 2020

One possible fix for this is to have some sort of declarative syntax for dependencies instead of the current imperative approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant