From 9539009a927651488e07e240887c8c0db1106908 Mon Sep 17 00:00:00 2001 From: Evangelos Paterakis Date: Thu, 17 Nov 2022 01:46:12 +0200 Subject: [PATCH] chore: upkeep meson, manifests & others --- .github/workflows/build.yml | 2 +- data/gresource.xml | 1 - data/meson.build | 36 ++++++--- dev.geopjr.tooth.json | 71 ++++------------- install.sh | 1 + meson.build | 154 ++++++++++++++++++++---------------- po/meson.build | 2 +- subprojects/libadwaita.wrap | 5 -- subprojects/libgtk.wrap | 5 -- subprojects/libsass.wrap | 5 -- subprojects/pango.wrap | 6 -- subprojects/sassc.wrap | 5 -- 12 files changed, 134 insertions(+), 159 deletions(-) delete mode 100644 subprojects/libadwaita.wrap delete mode 100644 subprojects/libgtk.wrap delete mode 100644 subprojects/libsass.wrap delete mode 100644 subprojects/pango.wrap delete mode 100644 subprojects/sassc.wrap diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8b25f9f..6032539 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: options: --privileged steps: - uses: actions/checkout@v3 - - uses: flatpak/flatpak-github-actions/flatpak-builder@v4 + - uses: flatpak/flatpak-github-actions/flatpak-builder@master with: bundle: "dev.geopjr.tooth.flatpak" manifest-path: "dev.geopjr.tooth.json" diff --git a/data/gresource.xml b/data/gresource.xml index 035c3cb..f87b1df 100644 --- a/data/gresource.xml +++ b/data/gresource.xml @@ -30,7 +30,6 @@ ui/dialogs/preferences.ui ui/dialogs/list_editor.ui ui/menus.ui - diff --git a/data/meson.build b/data/meson.build index 4fc9def..4188f34 100644 --- a/data/meson.build +++ b/data/meson.build @@ -5,33 +5,51 @@ symbolic_dir = join_paths(icons_dir, 'symbolic', 'apps') install_data( join_paths('icons', 'color.svg'), install_dir: scalable_dir, - rename: meson.project_name() + '.svg' + rename: meson.project_name() + '.svg', ) install_data( join_paths('icons', 'symbolic.svg'), install_dir: symbolic_dir, - rename: meson.project_name() + '-symbolic.svg' + rename: meson.project_name() + '-symbolic.svg', ) install_data( meson.project_name() + '.gschema.xml', - install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'glib-2.0', 'schemas') + install_dir: join_paths( + get_option('prefix'), + get_option('datadir'), + 'glib-2.0', + 'schemas', + ), ) -i18n.merge_file( +desktop_file = i18n.merge_file( input: meson.project_name() + '.desktop.in', output: meson.project_name() + '.desktop', - po_dir: join_paths(meson.source_root(), 'po'), + po_dir: join_paths(meson.project_source_root(), 'po'), type: 'desktop', install: true, - install_dir: join_paths(get_option('datadir'), 'applications') + install_dir: join_paths(get_option('datadir'), 'applications'), ) -i18n.merge_file( +desktop_utils = find_program('desktop-file-validate', required: false) +if desktop_utils.found() + test('Validate desktop file', desktop_utils, args: [desktop_file]) +endif + +appstream_file = i18n.merge_file( input: meson.project_name() + '.appdata.xml.in', output: meson.project_name() + '.appdata.xml', - po_dir: join_paths(meson.source_root(), 'po'), + po_dir: join_paths(meson.project_source_root(), 'po'), install: true, - install_dir: join_paths(get_option('datadir'), 'metainfo') + install_dir: join_paths(get_option('datadir'), 'metainfo'), ) +appstream_util = find_program('appstream-util', required: false) +if appstream_util.found() + test( + 'Validate appstream file', + appstream_util, + args: ['validate', appstream_file], + ) +endif diff --git a/dev.geopjr.tooth.json b/dev.geopjr.tooth.json index 0d48ac4..b1ea76b 100644 --- a/dev.geopjr.tooth.json +++ b/dev.geopjr.tooth.json @@ -1,10 +1,10 @@ { - "app-id" : "dev.geopjr.tooth", - "runtime" : "org.gnome.Platform", - "sdk" : "org.gnome.Sdk", - "runtime-version" : "40", - "command" : "dev.geopjr.tooth", - "finish-args" : [ + "app-id": "dev.geopjr.tooth", + "runtime": "org.gnome.Platform", + "runtime-version": "43", + "sdk": "org.gnome.Sdk", + "command": "dev.geopjr.tooth", + "finish-args": [ "--device=dri", "--share=ipc", "--share=network", @@ -14,7 +14,7 @@ "--talk-name=org.gtk.vfs.*", "--filesystem=xdg-run/gvfsd" ], - "cleanup" : [ + "cleanup": [ "/include", "/lib/pkgconfig", "/man", @@ -22,58 +22,21 @@ "/share/gtk-doc", "/share/man", "/share/pkgconfig", + "/share/vala", "*.la", "*.a" ], - "modules" : [ + "modules": [ { - "name" : "libsass", - "buildsystem" : "meson", - "builddir" : true, - "sources" : [ + "name": "tooth", + "builddir": true, + "buildsystem": "meson", + "sources": [ { - "type" : "git", - "url" : "https://github.com/lazka/libsass.git", - "branch" : "meson" - } - ] - }, - { - "name" : "sassc", - "buildsystem" : "meson", - "builddir" : true, - "sources" : [ - { - "type" : "git", - "url" : "https://github.com/lazka/sassc.git", - "branch" : "meson" - } - ] - }, - { - "name" : "libadwaita", - "buildsystem" : "meson", - "sources" : [ - { - "type" : "git", - "url" : "https://gitlab.gnome.org/GNOME/libadwaita.git", - "branch" : "main" - } - ] - }, - { - "name" : "tooth", - "builddir" : true, - "buildsystem" : "meson", - "sources" : [ - { - "type" : "dir", - "path" : "." + "type": "dir", + "path": "." } ] } - ], - "build-options" : { - "env" : { } - } -} + ] +} \ No newline at end of file diff --git a/install.sh b/install.sh index c68a7e4..0777dc1 100755 --- a/install.sh +++ b/install.sh @@ -5,4 +5,5 @@ meson build --prefix=/usr cd build ninja sudo ninja install +# gdb dev.geopjr.tooth dev.geopjr.tooth diff --git a/meson.build b/meson.build index c0bed97..d0fd6c4 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,16 @@ -project('dev.geopjr.tooth', 'vala', 'c', version: '2.1.0') +project( + 'dev.geopjr.tooth', + ['c', 'vala'], + version: '2.1.0', + meson_version: '>= 0.59.0', + default_options: [ + 'warning_level=2', + 'werror=false', + ], +) -add_global_arguments([ +add_global_arguments( + [ '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), ], language: 'c', @@ -9,106 +19,110 @@ add_global_arguments([ config = configuration_data() config.set('EXEC_NAME', meson.project_name()) config.set('GETTEXT_PACKAGE', meson.project_name()) -config.set('RESOURCES', '/' + '/'.join(meson.project_name().split('.')) + '/' ) +config.set('RESOURCES', '/' + '/'.join(meson.project_name().split('.')) + '/') config.set('VERSION', meson.project_version()) config.set('PREFIX', get_option('prefix')) config.set('NAME', 'Tooth') config.set('WEBSITE', 'https://github.com/GeopJr/tooth') config.set('SUPPORT_WEBSITE', 'https://github.com/GeopJr/tooth/issues') -config.set('COPYRIGHT', '© 2018-2021 bleak_grey\n© 2022 Evangelos \"GeopJr\" Paterakis') +config.set( + 'COPYRIGHT', + '© 2018-2021 bleak_grey\n© 2022 Evangelos \"GeopJr\" Paterakis', +) gnome = import('gnome') i18n = import('i18n') asresources = gnome.compile_resources( - 'as-resources', 'data/gresource.xml', - source_dir: 'data', - c_name: 'as' + 'as-resources', + 'data/gresource.xml', + source_dir: 'data', + c_name: 'as', ) libgtk_dep = dependency('gtk4', version: '>=4.0.0', required: true) -libadwaita_dep = dependency('libadwaita-1', version: '>=1.0.0', required: true) +libadwaita_dep = dependency('libadwaita-1', version: '>=1.2', required: true) sources = files( + 'src/API/Account.vala', + 'src/API/AccountField.vala', + 'src/API/Attachment.vala', + 'src/API/Conversation.vala', + 'src/API/Entity.vala', + 'src/API/List.vala', + 'src/API/Mention.vala', + 'src/API/Notification.vala', + 'src/API/Relationship.vala', + 'src/API/SearchResults.vala', + 'src/API/Status.vala', + 'src/API/Tag.vala', 'src/Application.vala', - 'src/Utils/Host.vala', - 'src/Utils/Html.vala', - 'src/Utils/DateTime.vala', - 'src/Services/Accounts/InstanceAccount.vala', + 'src/Dialogs/Composer/AttachmentsPage.vala', + 'src/Dialogs/Composer/Dialog.vala', + 'src/Dialogs/Composer/EditorPage.vala', + 'src/Dialogs/Composer/Page.vala', + 'src/Dialogs/Composer/PollPage.vala', + 'src/Dialogs/ListEditor.vala', + 'src/Dialogs/MainWindow.vala', + 'src/Dialogs/NewAccount.vala', + 'src/Dialogs/Preferences.vala', + 'src/Dialogs/Saveable.vala', + 'src/Services/Accounts/AccountHolder.vala', 'src/Services/Accounts/AccountStore.vala', + 'src/Services/Accounts/InstanceAccount.vala', + 'src/Services/Accounts/Mastodon/Account.vala', 'src/Services/Accounts/Places.vala', 'src/Services/Accounts/SecretAccountStore.vala', - 'src/Services/Accounts/AccountHolder.vala', - 'src/Services/Accounts/Mastodon/Account.vala', 'src/Services/Cache/AbstractCache.vala', 'src/Services/Cache/EntityCache.vala', 'src/Services/Cache/ImageCache.vala', 'src/Services/Network/Network.vala', 'src/Services/Network/Request.vala', - 'src/Services/Network/Streams.vala', 'src/Services/Network/Streamable.vala', + 'src/Services/Network/Streams.vala', 'src/Services/Settings.vala', - 'src/API/Account.vala', - 'src/API/AccountField.vala', - 'src/API/Relationship.vala', - 'src/API/Mention.vala', - 'src/API/Tag.vala', - 'src/API/Status.vala', - 'src/API/Notification.vala', - 'src/API/Attachment.vala', - 'src/API/Conversation.vala', - 'src/API/List.vala', - 'src/API/SearchResults.vala', - 'src/API/Entity.vala', - 'src/Widgets/Widgetizable.vala', - 'src/Widgets/Background.vala', + 'src/Utils/DateTime.vala', + 'src/Utils/Host.vala', + 'src/Utils/Html.vala', + 'src/Views/Base.vala', + 'src/Views/Bookmarks.vala', + 'src/Views/ContentBase.vala', + 'src/Views/Conversations.vala', + 'src/Views/Favorites.vala', + 'src/Views/Federated.vala', + 'src/Views/Hashtag.vala', + 'src/Views/Home.vala', + 'src/Views/List.vala', + 'src/Views/Lists.vala', + 'src/Views/Local.vala', + 'src/Views/Main.vala', + 'src/Views/Notifications.vala', + 'src/Views/Profile.vala', + 'src/Views/Search.vala', + 'src/Views/Sidebar.vala', + 'src/Views/TabbedBase.vala', + 'src/Views/Thread.vala', + 'src/Views/Timeline.vala', + 'src/Widgets/Attachment/Box.vala', + 'src/Widgets/Attachment/Image.vala', + 'src/Widgets/Attachment/Item.vala', 'src/Widgets/Avatar.vala', + 'src/Widgets/Background.vala', + 'src/Widgets/Conversation.vala', + 'src/Widgets/LockableToggleButton.vala', + 'src/Widgets/MarkupView.vala', + 'src/Widgets/Notification.vala', + 'src/Widgets/RelationshipButton.vala', 'src/Widgets/RichLabel.vala', 'src/Widgets/Status.vala', - 'src/Widgets/Notification.vala', - 'src/Widgets/Conversation.vala', - 'src/Widgets/Attachment/Box.vala', - 'src/Widgets/Attachment/Item.vala', - 'src/Widgets/Attachment/Image.vala', - 'src/Widgets/LockableToggleButton.vala', 'src/Widgets/StatusActionButton.vala', - 'src/Widgets/RelationshipButton.vala', - 'src/Widgets/MarkupView.vala', - 'src/Dialogs/Saveable.vala', - 'src/Dialogs/NewAccount.vala', - 'src/Dialogs/MainWindow.vala', - 'src/Dialogs/Preferences.vala', - 'src/Dialogs/ListEditor.vala', - 'src/Dialogs/Composer/Dialog.vala', - 'src/Dialogs/Composer/Page.vala', - 'src/Dialogs/Composer/EditorPage.vala', - 'src/Dialogs/Composer/AttachmentsPage.vala', - 'src/Dialogs/Composer/PollPage.vala', - 'src/Views/Base.vala', - 'src/Views/ContentBase.vala', - 'src/Views/TabbedBase.vala', - 'src/Views/Sidebar.vala', - 'src/Views/Main.vala', - 'src/Views/Timeline.vala', - 'src/Views/Home.vala', - 'src/Views/Local.vala', - 'src/Views/Federated.vala', - 'src/Views/Notifications.vala', - 'src/Views/Conversations.vala', - 'src/Views/Bookmarks.vala', - 'src/Views/Thread.vala', - 'src/Views/Profile.vala', - 'src/Views/Favorites.vala', - 'src/Views/Search.vala', - 'src/Views/Hashtag.vala', - 'src/Views/Lists.vala', - 'src/Views/List.vala', + 'src/Widgets/Widgetizable.vala', ) build_file = configure_file( input: 'src/Build.vala.in', output: 'Build.vala', - configuration: config + configuration: config, ) executable( @@ -132,4 +146,10 @@ executable( subdir('data') subdir('po') +gnome.post_install( + glib_compile_schemas: true, + gtk_update_icon_cache: true, + update_desktop_database: true, +) + meson.add_install_script('meson/post_install.py') diff --git a/po/meson.build b/po/meson.build index 14809ab..07f4ece 100644 --- a/po/meson.build +++ b/po/meson.build @@ -1,5 +1,5 @@ #i18n.gettext(meson.project_name(), -# args: ['--directory='+meson.source_root(), '--from-code=UTF-8'], +# args: ['--directory='+meson.project_source_root(), '--from-code=UTF-8'], # install: false, #) i18n.gettext(meson.project_name(), preset: 'glib') \ No newline at end of file diff --git a/subprojects/libadwaita.wrap b/subprojects/libadwaita.wrap deleted file mode 100644 index 3f864f9..0000000 --- a/subprojects/libadwaita.wrap +++ /dev/null @@ -1,5 +0,0 @@ -[wrap-file] -directory=libadwaita-594eb987c57e4d20370cc20520871f230ff02ae2 -source_url=https://gitlab.gnome.org/GNOME/libadwaita/-/archive/594eb987c57e4d20370cc20520871f230ff02ae2/libadwaita-594eb987c57e4d20370cc20520871f230ff02ae2.zip -source_filename=libadwaita-594eb987c57e4d20370cc20520871f230ff02ae2.zip -source_hash=a2c604e573ac1f87c5f3ae6dbd9349666ad574321a66f9f05bb27d785db18aa7 diff --git a/subprojects/libgtk.wrap b/subprojects/libgtk.wrap deleted file mode 100644 index 872fed4..0000000 --- a/subprojects/libgtk.wrap +++ /dev/null @@ -1,5 +0,0 @@ -[wrap-file] -directory=gtk-4.2.0 -source_url=https://gitlab.gnome.org/GNOME/gtk/-/archive/4.2.0/gtk-4.2.0.tar -source_filename=gtk-4.2.0.tar -source_hash=4dee09cf3915304bd18cf0f466fff72e4be1b87d9e4dc5d16fba72b4d67b7c0c diff --git a/subprojects/libsass.wrap b/subprojects/libsass.wrap deleted file mode 100644 index b41051c..0000000 --- a/subprojects/libsass.wrap +++ /dev/null @@ -1,5 +0,0 @@ -[wrap-git] -directory=libsass -url=https://github.com/lazka/libsass.git -revision=meson -depth=1 diff --git a/subprojects/pango.wrap b/subprojects/pango.wrap deleted file mode 100644 index a1b1669..0000000 --- a/subprojects/pango.wrap +++ /dev/null @@ -1,6 +0,0 @@ -[wrap-git] -directory=pango -url=https://gitlab.gnome.org/GNOME/pango.git -push-url=ssh://git@gitlab.gnome.org:GNOME/pango.git -revision=master -depth=1 diff --git a/subprojects/sassc.wrap b/subprojects/sassc.wrap deleted file mode 100644 index edd76c6..0000000 --- a/subprojects/sassc.wrap +++ /dev/null @@ -1,5 +0,0 @@ -[wrap-git] -directory=sassc -url=https://github.com/lazka/sassc.git -revision=meson -depth=1