From be7e0c2d5689d962fd2424e60ed21062d0674e95 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Mon, 11 Sep 2023 23:03:51 +0200 Subject: Backport Meson build support Meson builds have better integration with Vala. For example, Meson handles incremental compilation of Vala source files better than CMake. Limitations: As done with CMake builds, gresource.xml should be compiled. Now, it has been generated from a CMake build and manually copied into the source tree. --- main/CMakeLists.txt | 2 +- main/data/gresource.xml | 1 + main/meson.build | 107 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 main/data/gresource.xml create mode 100644 main/meson.build (limited to 'main') diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 9d0f6de5..046b4fb8 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -214,7 +214,7 @@ OPTIONS ${MAIN_EXTRA_OPTIONS} ) -add_definitions(${VALA_CFLAGS} -DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\" -DLOCALE_INSTALL_DIR=\"${LOCALE_INSTALL_DIR}\" -DDINO_VERSION=\"${PROJECT_VERSION}\") +add_definitions(${VALA_CFLAGS} -DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\" -DLOCALE_INSTALL_DIR=\"${LOCALE_INSTALL_DIR}\") add_executable(dino ${MAIN_VALA_C} ${MAIN_GRESOURCES_TARGET} src/emojichooser.c) add_dependencies(dino ${GETTEXT_PACKAGE}-translations) target_include_directories(dino PRIVATE src) diff --git a/main/data/gresource.xml b/main/data/gresource.xml new file mode 100644 index 00000000..f802925a --- /dev/null +++ b/main/data/gresource.xml @@ -0,0 +1 @@ +icons/dino-account-plus-symbolic.svgicons/dino-changes-allowed-symbolic.svgicons/dino-changes-prevent-symbolic.svgicons/dino-conversation-list-placeholder-arrow.svgicons/dino-double-tick-symbolic.svgicons/dino-emoticon-symbolic.svgicons/dino-qr-code-symbolic.svgicons/dino-security-high-symbolic.svgicons/dino-microphone-off-symbolic.svgicons/dino-microphone-symbolic.svgicons/dino-party-popper-symbolic.svgicons/dino-phone-hangup-symbolic.svgicons/dino-phone-in-talk-symbolic.svgicons/dino-phone-missed-symbolic.svgicons/dino-phone-ring-symbolic.svgicons/dino-phone-symbolic.svgicons/dino-status-away.svgicons/dino-status-chat.svgicons/dino-status-dnd.svgicons/dino-status-online.svgicons/im.dino.Dino.svgicons/im.dino.Dino-symbolic.svgicons/dino-tick-symbolic.svgicons/dino-video-off-symbolic.svgicons/dino-video-symbolic.svgicons/dino-device-desktop-symbolic.svgicons/dino-device-phone-symbolic.svgicons/dino-file-document-symbolic.svgicons/dino-file-download-symbolic.svgicons/dino-file-image-symbolic.svgicons/dino-file-music-symbolic.svgicons/dino-file-symbolic.svgicons/dino-file-table-symbolic.svgicons/dino-file-video-symbolic.svgadd_conversation/add_contact_dialog.uiadd_conversation/add_groupchat_dialog.uiadd_conversation/conference_details_fragment.uiadd_conversation/list_row.uiadd_conversation/select_jid_fragment.uicall_widget.uichat_input.uicontact_details_dialog.uiconversation_list_titlebar.uiconversation_list_titlebar_csd.uiconversation_row.uiconversation_view.uifile_default_widget.uifile_send_overlay.uiemojichooser.uiglobal_search.uiconversation_content_view/item_metadata_header.uiconversation_content_view/view.uimanage_accounts/account_row.uimanage_accounts/add_account_dialog.uimanage_accounts/dialog.uimenu_add.uimenu_app.uimenu_conversation.uimenu_encryption.uimessage_item_widget_edit_mode.uioccupant_list.uioccupant_list_item.uisearch_autocomplete.uisettings_dialog.uishortcuts.uiunified_main_content.uiunified_window_placeholder.uitheme.css \ No newline at end of file diff --git a/main/meson.build b/main/meson.build new file mode 100644 index 00000000..61fb0387 --- /dev/null +++ b/main/meson.build @@ -0,0 +1,107 @@ +dependencies = [ + dep_dino, + dep_gee, + dep_glib, + dep_gmodule, + dep_gspell, + dep_gtk3, + dep_icu_uc, + dep_libhandy, + dep_m, + dep_qlite, + dep_xmpp_vala, +] +sources = files( + 'src/emojichooser.c', + 'src/main.vala', + 'src/ui/add_conversation/add_conference_dialog.vala', + 'src/ui/add_conversation/add_contact_dialog.vala', + 'src/ui/add_conversation/add_groupchat_dialog.vala', + 'src/ui/add_conversation/conference_details_fragment.vala', + 'src/ui/add_conversation/conference_list.vala', + 'src/ui/add_conversation/list_row.vala', + 'src/ui/add_conversation/roster_list.vala', + 'src/ui/add_conversation/select_contact_dialog.vala', + 'src/ui/add_conversation/select_jid_fragment.vala', + 'src/ui/avatar_drawer.vala', + 'src/ui/avatar_image.vala', + 'src/ui/application.vala', + 'src/ui/call_window/audio_settings_popover.vala', + 'src/ui/call_window/call_bottom_bar.vala', + 'src/ui/call_window/call_connection_details_window.vala', + 'src/ui/call_window/call_encryption_button.vala', + 'src/ui/call_window/call_window.vala', + 'src/ui/call_window/call_window_controller.vala', + 'src/ui/call_window/participant_widget.vala', + 'src/ui/call_window/video_settings_popover.vala', + 'src/ui/chat_input/chat_input_controller.vala', + 'src/ui/chat_input/chat_text_view.vala', + 'src/ui/chat_input/edit_history.vala', + 'src/ui/chat_input/encryption_button.vala', + 'src/ui/chat_input/occupants_tab_completer.vala', + 'src/ui/chat_input/smiley_converter.vala', + 'src/ui/chat_input/spell_checker.vala', + 'src/ui/chat_input/view.vala', + 'src/ui/contact_details/blocking_provider.vala', + 'src/ui/contact_details/dialog.vala', + 'src/ui/contact_details/muc_config_form_provider.vala', + 'src/ui/contact_details/permissions_provider.vala', + 'src/ui/contact_details/settings_provider.vala', + 'src/ui/conversation_content_view/call_widget.vala', + 'src/ui/conversation_content_view/chat_state_populator.vala', + 'src/ui/conversation_content_view/content_populator.vala', + 'src/ui/conversation_content_view/conversation_item_skeleton.vala', + 'src/ui/conversation_content_view/conversation_view.vala', + 'src/ui/conversation_content_view/date_separator_populator.vala', + 'src/ui/conversation_content_view/file_default_widget.vala', + 'src/ui/conversation_content_view/file_image_widget.vala', + 'src/ui/conversation_content_view/file_widget.vala', + 'src/ui/conversation_content_view/message_widget.vala', + 'src/ui/conversation_content_view/subscription_notification.vala', + 'src/ui/conversation_list_titlebar.vala', + 'src/ui/conversation_selector/conversation_selector.vala', + 'src/ui/conversation_selector/conversation_selector_row.vala', + 'src/ui/conversation_titlebar/call_entry.vala', + 'src/ui/conversation_titlebar/conversation_titlebar.vala', + 'src/ui/conversation_titlebar/menu_entry.vala', + 'src/ui/conversation_titlebar/occupants_entry.vala', + 'src/ui/conversation_titlebar/search_entry.vala', + 'src/ui/conversation_view.vala', + 'src/ui/conversation_view_controller.vala', + 'src/ui/file_send_overlay.vala', + 'src/ui/global_search.vala', + 'src/ui/main_window.vala', + 'src/ui/main_window_controller.vala', + 'src/ui/manage_accounts/account_row.vala', + 'src/ui/manage_accounts/add_account_dialog.vala', + 'src/ui/manage_accounts/dialog.vala', + 'src/ui/notifier_freedesktop.vala', + 'src/ui/notifier_gnotifications.vala', + 'src/ui/occupant_menu/list.vala', + 'src/ui/occupant_menu/list_row.vala', + 'src/ui/occupant_menu/view.vala', + 'src/ui/settings_dialog.vala', + 'src/ui/util/accounts_combo_box.vala', + 'src/ui/util/config.vala', + 'src/ui/util/data_forms.vala', + 'src/ui/util/helper.vala', + 'src/ui/util/label_hybrid.vala', + 'src/ui/util/preview_file_chooser_native.vala', + 'src/ui/util/scaling_image.vala', + 'src/ui/util/size_request_box.vala', + 'src/ui/util/sizing_bin.vala', + 'vapi/emojichooser.vapi', +) + +sources += import('gnome').compile_resources( + 'dino-resources', + 'data/gresource.xml', + source_dir: 'data', +) + +c_args = [ + '-DG_LOG_DOMAIN="dino"', + '-DGETTEXT_PACKAGE="dino"', + '-DLOCALE_INSTALL_DIR="@0@"'.format(get_option('prefix') / get_option('localedir')), +] +exe_dino = executable('dino', sources, include_directories: 'src', c_args: c_args, vala_args: ['--vapidir', meson.current_source_dir() / 'vapi'], dependencies: dependencies) -- cgit v1.2.3