Commit Graph

24 Commits

Author SHA1 Message Date
Marc-André Lureau
adddbb3976 meson: bump meson req to 0.56
It's from Oct 2020, and widely available on various distro or backports.

Fix related meson warnings.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2023-01-23 12:05:06 +04:00
Frediano Ziglio
ecd4a776b3 build: Replace "join_paths" with "/" operator
Supported by Meson 0.49 (required by Spice-GTK).
New syntax is shorter and is recommended in
https://mesonbuild.com/Release-notes-for-0-49-0.html
("Joining paths with /").

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Uri Lublin <uril@redhat.com>
2019-08-21 12:08:12 +01:00
Marc-André Lureau
9837f974cc Drop autotools
Maintaining 1 build system is hard. Maintaining 2 is even harder.

It seems the meson build system is now in good shape to replace
autotools. Like many desktop projects, let's move entirely to meson
and drop autotools support.

Known changes:
- generating changelog files in the dist tarball. This is not strictly
  required, and can be added back later.
- generated files are not included in the dist tarball. In some ways,
  this can be considered a good thing.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2019-07-09 11:05:29 +01:00
Rasmus Thomsen
432a29090c
meson: ensure correct build order of VAPI
Without this commit spice-client-gtk-3.0.vapi may be built
before spice-client-glib-2.0.vapi if build_jobs > 1. This causes
the build to fail because the former depends on the latter
2019-01-20 02:09:55 +01:00
Marc-André Lureau
daab027698 build-sys: fix gir/vapi warnings with GstPipeline
Add required dependency on gstreamer to fix unresolved GstPipeline
type warning:

<unknown>:: Warning: SpiceClientGLib: (Signal)gst-video-overlay: argument pipeline: Unresolved type: 'GstPipeline'

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Christophe Fergeau <cfergeau@redhat.com>
2019-01-14 14:31:58 +04:00
Frediano Ziglio
b7d07c80cf build: Fix VAPI include directory
If gir files are not installed generate_vapi is not able to
find generated gir files, so look also in src generated files.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2018-09-03 14:58:36 +01:00
Eduardo Lima (Etrunko)
7a87356bd2 Add support for building with meson/ninja
In a comparison with current autotools build system, meson/ninja
provides a huge improvement in build speed, while keeping the same
functionalities currently available and being considered more user
friendly.

The new system coexists within the same repository with the current one,
so we can do more extensive testing of its functionality before deciding
if the old system can be removed, or for some reason, has to stay for
good.

- Meson: https://mesonbuild.com

  This is the equivalent of autogen/configure step in autotools. It
  generates the files that will be used by ninja to actually build the
  source code.

  The project has received lots of traction recently, with many GNOME
  projects willing to move to this new build system. The following wiki
  page has more details of the status of the many projects being ported:

    https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting

  Meson has a python-like syntax, easy to read, and the documentation
  on the project is very complete, with a dedicated page on how to port
  from autotools, explaining how most common use cases can be
  implemented using meson.

    http://mesonbuild.com/Porting-from-autotools.html

  Other important sources of information:

    http://mesonbuild.com/howtox.html
    http://mesonbuild.com/Syntax.html
    http://mesonbuild.com/Reference-manual.html

- Ninja: https://ninja-build.org

  Ninja is the equivalent of make in an autotools setup, which actually
  builds the source code. It has being used by large and complex
  projects such as Google Chrome, Android and LLVM. There is not much to
  say about ninja (other than it is much faster than make) because we
  won't interact directly with it as much, as meson does the middle man
  job here. The reasoning for creating ninja in the first place is
  explained on the following post:

    http://neugierig.org/software/chromium/notes/2011/02/ninja.html

  Also its manual provides more in-depth information about the design
  principles:

    https://ninja-build.org/manual.html

- Basic workflow:

  Meson package is available for most if not all distros, so, taking
  Fedora as an example, we only need to run:

    # dnf -y install meson ninja-build.

  With Meson, building in-tree is not possible at all, so we need to
  pass a directory as argument to meson where we want the build to be
  done. This has the advantage of creating builds with different options
  under the same parent directory, e.g.:

    $ meson ./build --prefix=/usr
    $ meson ./build-extra -Dextra-checks=true -Dalignment-checks=true

  After configuration is done, we call ninja to actually do the build.

    $ ninja -C ./build
    $ ninja -C ./build install

  Ninja defaults to parallel builds, and this can be changed with the -j
  flag.

    $ ninja -j 10 -C ./build

- Hacking:

  * meson.build: Mandatory for the project root and usually found under
                 each directory you want something to be built.

  * meson_options.txt: Options that can interfere with the result of the
                       build.

Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2018-08-30 11:13:00 -03:00
Marc-André Lureau
82a2a07e15 Remove vapi/spice-client-gtk-2.0.deps
Left-over from v0.31-6-g0917002

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2017-08-10 12:28:35 +02:00
Marc-André Lureau
0917002c48 Drop GTK+ 2.0
Not so many systems require gtk+ 2.0 these days, let's move on.

This drops the old python bindings (non-gir based), and the
unsteady/experimental gtk2-only XShm support.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-14 12:02:52 +01:00
Marc-André Lureau
caf28401ca Move gtk/ -> src/
For historical reasons, the code was placed under gtk/ subdirectory.
If it was always bugging you, bug no more!
2015-06-08 17:38:58 +02:00
Benjamin Gilbert
08101d0146 Don't build libspice-client-gtk if configured --without-gtk
libspice-client-glib is useful as a client library on platforms that
don't support GTK.
2015-02-06 17:18:27 +01:00
Marc-André Lureau
32a3a7a29b build-sys: make vapigen silent 2014-10-29 11:41:08 +01:00
Marc-André Lureau
8d6d14718e build-sys: clean-up generated vapi files 2014-10-29 11:41:08 +01:00
Marc-André Lureau
716de3b1d2 build-sys: remove unnecessary BUILT_SOURCES rule 2014-10-29 11:41:08 +01:00
Marc-André Lureau
c4ac4ca2bf build: fix vapigen error and warnings
Thanks to Jeremy Bicha for the bug report and testing solution.

https://bugs.freedesktop.org/show_bug.cgi?id=45154
2012-01-24 02:01:27 +01:00
Christophe Fergeau
c5f42f8fb3 Disable vala bindings unless --enable-vala is used
Currently, building vala bindings from a tarball is broken because
spice-client-glib-2.0.deps is missing from the tarball. This commit
adds it to EXTRA_DIST and also makes sure the vala bindings don't
get built/installed unless --enable-vala has been passed to configure.
This means vala must be installed to build the vala bindings from a
tarball. Fixes fdo bug #44000.
2011-12-22 15:14:06 +01:00
Christophe Fergeau
004322519f Revert previous vala-related commits
They were work in progress and not meant to be committed, apologies
for the noise :-/
2011-12-22 13:45:02 +01:00
Christophe Fergeau
ea45a8fe36 More distcheck fixes 2011-12-22 11:49:26 +01:00
Marc-André Lureau
66ff918f37 build: ship vala files & fix make distcheck
Disable usbredir, since it wants to install file in /.

Disable vala for distcheck for 2 reasons: not needed after dist and
binding build issue.

Ship with spice-gtk-3.0 vala bindings

https://bugs.freedesktop.org/show_bug.cgi?id=44000
2011-12-22 09:58:39 +01:00
Marc-André Lureau
ac435f6a8f build: vapi bindings only available if HAVE_INTROSPECTION 2011-12-05 17:52:13 +01:00
Marc-André Lureau
346bf69b1b build: do not clean spice-client-glib-2.0.deps 2011-12-02 16:49:28 +01:00
Hans de Goede
47d7c79be5 usb-device-manager: Make spice_usb_device_manager_connect_device async
With the (upcoming) introduction of the usb device node acl helper, which
uses policykit, spice_usbredir_channel_connect() may take a long time as
it will be waiting for the helper, which will be waiting for policykit which
may be interacting with the user. So spice_usbredir_channel_connect() will
need to become async, and since spice_usb_device_manager_connect_device
calls spice_usbredir_channel_connect it thus also needs to become async.

Note that this patch only changes spice_usb_device_manager_connect_device's
API to use the standard GIO async API, it is not actually async after this
patch since spice_usbredir_channel_connect is not yet async.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2011-11-16 17:06:56 +01:00
Marc-André Lureau
ef76f18e5b Fix package `SpiceClientGLib-2.0' not found 2011-11-03 13:35:48 +01:00
Marc-André Lureau
5964ea17b0 Add vapi bindings generation 2011-10-25 21:57:13 +02:00