diff --git a/data/meson.build b/data/meson.build
index 11affc08..07db5f1d 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,5 +1,4 @@
subdir('icons')
-subdir('appdata')
enum_headers = files(src_dir / 'gcal-enums.h')
diff --git a/meson.build b/meson.build
index 7b64415d..48a13870 100644
--- a/meson.build
+++ b/meson.build
@@ -13,7 +13,7 @@ project(
calendar_version = meson.project_version()
version_array = calendar_version.split('.')
-calendar_major_version = version_array[0].to_int()
+calendar_major_version = version_array[0]
calendar_minor_version = version_array[1]
@@ -71,6 +71,7 @@ set_defines = [
['PACKAGE_STRING', '@0@ @1@'.format(meson.project_name(), calendar_version)],
['PACKAGE_TARNAME', meson.project_name()],
['PACKAGE_URL', 'https://apps.gnome.org/Calendar/'],
+ ['MAJOR_VERSION', calendar_major_version + '.' + '0'],
['PACKAGE_VERSION', calendar_version + rev],
['VERSION', calendar_version + rev],
['GETTEXT_PACKAGE', meson.project_name()],
diff --git a/src/appdata/appdata.gresource.xml.in b/src/appdata/appdata.gresource.xml.in
new file mode 100644
index 00000000..a2ce71e7
--- /dev/null
+++ b/src/appdata/appdata.gresource.xml.in
@@ -0,0 +1,6 @@
+
+
+
+ @appid@.metainfo.xml
+
+
diff --git a/data/appdata/meson.build b/src/appdata/meson.build
similarity index 53%
rename from data/appdata/meson.build
rename to src/appdata/meson.build
index f227a033..1304fb52 100644
--- a/data/appdata/meson.build
+++ b/src/appdata/meson.build
@@ -2,11 +2,11 @@ appdata_conf = configuration_data()
appdata_conf.set('appid', application_id)
appdata = i18n.merge_file(
input: configure_file(
- input: files('org.gnome.Calendar.appdata.xml.in.in'),
- output: 'org.gnome.Calendar.appdata.xml.in',
+ input: files('org.gnome.Calendar.metainfo.xml.in.in'),
+ output: 'org.gnome.Calendar.metainfo.xml.in',
configuration: appdata_conf
),
- output: '@0@.appdata.xml'.format(application_id),
+ output: '@0@.metainfo.xml'.format(application_id),
po_dir: po_dir,
install: true,
install_dir: calendar_datadir / 'metainfo'
@@ -22,3 +22,17 @@ if appstreamcli.found()
depends: appdata,
)
endif
+
+## GResource
+gresource = configure_file(
+ input: 'appdata.gresource.xml.in',
+ output: 'appdata.gresource.xml',
+ configuration: appdata_conf,
+)
+
+built_sources += gnome.compile_resources(
+ 'appdata-resources',
+ gresource,
+ c_name: 'appdata',
+ dependencies: [gresource, appdata],
+)
diff --git a/data/appdata/org.gnome.Calendar.appdata.xml.in.in b/src/appdata/org.gnome.Calendar.metainfo.xml.in.in
similarity index 99%
rename from data/appdata/org.gnome.Calendar.appdata.xml.in.in
rename to src/appdata/org.gnome.Calendar.metainfo.xml.in.in
index 5d48774f..2d5e8b5b 100644
--- a/data/appdata/org.gnome.Calendar.appdata.xml.in.in
+++ b/src/appdata/org.gnome.Calendar.metainfo.xml.in.in
@@ -56,6 +56,8 @@
https://gitlab.gnome.org/GNOME/gnome-calendar
https://l10n.gnome.org/module/gnome-calendar/
https://welcome.gnome.org/app/Calendar/
+ https://matrix.to/#/#gnome-calendar:gnome.org
+ https://discourse.gnome.org/tag/calendar
GNOME
The GNOME Project
diff --git a/src/gui/gcal-application.c b/src/gui/gcal-application.c
index da334e6d..c69a1b17 100644
--- a/src/gui/gcal-application.c
+++ b/src/gui/gcal-application.c
@@ -229,22 +229,14 @@ gcal_application_show_about (GSimpleAction *simple,
copyright = build_about_copyright (self);
troubleshooting = build_system_information ();
- about = g_object_new (ADW_TYPE_ABOUT_DIALOG,
- "application-name", _("Calendar"),
- "application-icon", APPLICATION_ID,
- "developer-name", _("The GNOME Project"),
- "version", VERSION,
- "copyright", copyright,
- "website", "https://apps.gnome.org/Calendar/",
- "issue-url", "https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues",
- "support-url", "https://discourse.gnome.org/tag/calendar",
- "license-type", GTK_LICENSE_GPL_3_0,
- "developers", developers,
- "designers", designers,
- "translator-credits", _("translator-credits"),
- "debug-info", troubleshooting,
- "debug-info-filename", "Calendar.txt",
- NULL);
+ about = adw_about_dialog_new_from_appdata ("/org/gnome/calendar/appdata", MAJOR_VERSION);
+
+ adw_about_dialog_set_designers (ADW_ABOUT_DIALOG (about), designers);
+ adw_about_dialog_set_copyright (ADW_ABOUT_DIALOG (about), copyright);
+ adw_about_dialog_set_developers (ADW_ABOUT_DIALOG (about), developers);
+ adw_about_dialog_set_debug_info (ADW_ABOUT_DIALOG (about), troubleshooting);
+ adw_about_dialog_set_debug_info_filename (ADW_ABOUT_DIALOG (about), "Calendar.txt");
+ adw_about_dialog_set_translator_credits (ADW_ABOUT_DIALOG (about), _("translator-credits"));
weather_service = gcal_context_get_weather_service (self->context);
adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about),
diff --git a/src/meson.build b/src/meson.build
index 857ca482..c1e4f1d8 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -64,6 +64,7 @@ calendar_incs = [
###################
sources = files()
+subdir('appdata')
subdir('core')
subdir('gui')
subdir('search')