diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2b02d93e..13f5defc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,6 +29,7 @@ variables: libappstream-glib-devel libgee-devel libhandy1-devel libicu-devel libpeas-devel libsecret-devel libstemmer-devel libunwind-devel libxml2-devel libytnef-devel sqlite-devel webkitgtk4-devel + git FEDORA_TEST_DEPS: glibc-langpack-en gnutls-utils tar Xvfb xz # Ubuntu packages @@ -40,6 +41,7 @@ variables: libhandy-1-dev libicu-dev libjson-glib-dev libmessaging-menu-dev libpeas-dev libsecret-1-dev libsqlite3-dev libstemmer-dev libunwind-dev libwebkit2gtk-4.0-dev libxml2-dev libytnef0-dev + git ca-certificates UBUNTU_TEST_DEPS: gnutls-bin librsvg2-common locales xauth xvfb fedora: diff --git a/meson.build b/meson.build index 85ec18a4..5d826918 100644 --- a/meson.build +++ b/meson.build @@ -89,7 +89,7 @@ icu_uc = dependency('icu-uc', version: '>=60') iso_codes = dependency('iso-codes') javascriptcoregtk = dependency('javascriptcoregtk-4.0', version: '>=' + target_webkit) json_glib = dependency('json-glib-1.0', version: '>= 1.0') -libhandy = dependency('libhandy-1', version: '>= 1.2.1') +libhandy = dependency('libhandy-1', version: '>= 1.2.1', required: false) libmath = cc.find_library('m') libpeas = dependency('libpeas-1.0', version: '>= 1.24.0') libpeas_gtk = dependency('libpeas-gtk-1.0', version: '>= 1.24.0') @@ -138,6 +138,26 @@ libstemmer = declare_dependency( ], ) +# Required until libhandy 1.2.1 is GA +libhandy_vapi = '' +if not libhandy.found() + libhandy_project = subproject( + 'libhandy', + default_options: [ + 'examples=false', + 'package_subdir=geary', + 'tests=false', + ] + ) + libhandy = declare_dependency( + dependencies: [ + libhandy_project.get_variable('libhandy_dep'), + libhandy_project.get_variable('libhandy_vapi') + ] + ) + libhandy_vapi = meson.build_root() / 'subprojects' / 'libhandy' / 'src' +endif + # Optional dependencies appstream_util = find_program('appstream-util', required: false) desktop_file_validate = find_program('desktop-file-validate', required: false) diff --git a/org.gnome.Geary.json b/org.gnome.Geary.json index 2d556511..83c79872 100644 --- a/org.gnome.Geary.json +++ b/org.gnome.Geary.json @@ -78,6 +78,24 @@ "/share" ] }, + { + "name": "libhandy", + "buildsystem": "meson", + "config-opts": [ + "-Dglade_catalog=disabled" + ], + "sources": [ + { + "type": "git", + "url": "https://gitlab.gnome.org/GNOME/libhandy.git", + "branch": "master" + } + ], + "cleanup": [ + "/bin", + "/share" + ] + }, { "name": "libical", "buildsystem": "cmake-ninja", diff --git a/org.gnome.Geary.yaml b/org.gnome.Geary.yaml index c3908a89..b7d06d52 100644 --- a/org.gnome.Geary.yaml +++ b/org.gnome.Geary.yaml @@ -111,6 +111,19 @@ modules: - /bin - /share + # Geary dependency + - name: libhandy + buildsystem: meson + config-opts: + - "-Dglade_catalog=disabled" + sources: + - type: git + url: "https://gitlab.gnome.org/GNOME/libhandy.git" + branch: master + cleanup: + - /bin + - /share + # EDS dependency - name: libical buildsystem: cmake-ninja diff --git a/src/meson.build b/src/meson.build index d2b01803..a67336af 100644 --- a/src/meson.build +++ b/src/meson.build @@ -139,6 +139,9 @@ valadoc_vapi_dirs = [ vapi_dir, meson.current_build_dir() ] +if libhandy_vapi != '' + valadoc_vapi_dirs += libhandy_vapi +endif # Hopefully Meson will get baked-in valadoc support, so we don't have # to resort to these kinds of hacks any more. See @@ -147,7 +150,11 @@ valadoc_vapi_dirs = [ valadoc_dep_args = [] foreach dep : valadoc_dependencies valadoc_dep_args += '--pkg' - valadoc_dep_args += dep.name() + if dep != libhandy + valadoc_dep_args += dep.name() + else + valadoc_dep_args += 'libhandy-1' + endif endforeach valadoc_dep_args += [ '--pkg', 'icu-uc' ] valadoc_dep_args += [ '--pkg', 'libstemmer' ] diff --git a/subprojects/libhandy.wrap b/subprojects/libhandy.wrap new file mode 100644 index 00000000..2dfa9777 --- /dev/null +++ b/subprojects/libhandy.wrap @@ -0,0 +1,5 @@ +[wrap-git] +directory = libhandy +url = https://gitlab.gnome.org/GNOME/libhandy.git +revision = 1.2.1 +