anotherim-desktop/main/meson.build
Vadim Lomovtsev 81253f28cc project-wide: build & run-time fixes
While using meson some issues were faced with link and application
startup. This commit is to put fixes for the following issues:

- missed conversation_details.css file;
  add conversation_details.css to the main/data/gresources.xml;
- the 'localtime_r' symbol  can't be found while linking application
  add POSIX_C_SOURCES=1 macro definition
- meson configure complains that xmpp-vala package version is not set
  set xmpp-vala version to 0.1
- application startup failures due to unresolved symbols while creating
  initial UI
   fix: put '--export-all-symbols' to the main/meson.build for mingw64 build
- segmentation fault while running app built by meson
  meson.build: add _WIN32 definefor vala compilation
- main/meson.build: add _FILE_OFFSET_BITS definition (sync with cmake
  cfg)
- main/meson.build: compile window resources (fix missed window icon)

Signed-off-by: Vadim Lomovtsev <jelezny@gmail.com>
2024-04-01 16:38:27 +03:00

138 lines
5.8 KiB
Meson

subdir('po')
dependencies = [
dep_dino,
dep_gee,
dep_glib,
dep_gmodule,
dep_gtk4,
dep_icu_uc,
dep_libadwaita,
dep_m,
dep_qlite,
dep_xmpp_vala,
]
sources = files(
'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/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/encryption_button.vala',
'src/ui/chat_input/occupants_tab_completer.vala',
'src/ui/chat_input/smiley_converter.vala',
'src/ui/chat_input/view.vala',
'src/ui/contact_details/permissions_provider.vala',
'src/ui/contact_details/settings_provider.vala',
'src/ui/contact_details/history_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/item_actions.vala',
'src/ui/conversation_content_view/message_widget.vala',
'src/ui/conversation_content_view/quote_widget.vala',
'src/ui/conversation_content_view/reactions_widget.vala',
'src/ui/conversation_content_view/subscription_notification.vala',
'src/ui/conversation_content_view/unread_indicator_populator.vala',
'src/ui/conversation_details.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/change_password_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/size_request_box.vala',
'src/ui/util/sizing_bin.vala',
'src/ui/widgets/avatar_picture.vala',
'src/ui/widgets/date_separator.vala',
'src/ui/widgets/fixed_ratio_picture.vala',
'src/ui/widgets/natural_size_increase.vala',
'src/view_model/conversation_details.vala',
'src/view_model/preferences_row.vala',
'src/windows/conversation_details.vala',
)
sources += gnome.compile_resources(
'resources',
'data/gresource.xml',
source_dir: 'data',
)
c_args = [
'-DG_LOG_DOMAIN="dino"',
'-DGETTEXT_PACKAGE="dino"',
'-D_POSIX_C_SOURCE=1',
'-D_FILE_OFFSET_BITS=64',
'-DLOCALE_INSTALL_DIR="@0@"'.format(get_option('prefix') / get_option('localedir')),
]
vala_args = [
'--vapidir', meson.current_source_dir() / 'vapi',
]
if dep_libadwaita.version() == 'unknown' or dep_libadwaita.version().version_compare('>=1.2')
vala_args += ['-D', 'Adw_1_2']
endif
if dep_gtk4.version() == 'unknown' or dep_gtk4.version().version_compare('>=4.6')
vala_args += ['-D', 'GTK_4_6']
endif
if dep_gtk4.version() == 'unknown' or dep_gtk4.version().version_compare('>=4.8')
vala_args += ['-D', 'GTK_4_8']
endif
link_args = []
if host_machine.system() == 'windows'
link_args += ['-Wl,--export-all-symbols']
windows = import('windows')
sources += windows.compile_resources('dino-info.rc')
endif
exe_dino = executable('dino', sources, c_args: c_args, vala_args: vala_args, dependencies: dependencies, install: true, link_args: link_args)
install_data('data/icons/scalable/apps/im.dino.Dino-symbolic.svg', install_dir: get_option('datadir') / 'hicolor/symbolic/apps')
install_data('data/icons/scalable/apps/im.dino.Dino.svg', install_dir: get_option('datadir') / 'hicolor/scalable/apps')
install_data('data/im.dino.Dino.appdata.xml', install_dir: get_option('datadir') / 'metainfo')
install_data('data/im.dino.Dino.desktop', install_dir: get_option('datadir') / 'applications')
install_data('data/im.dino.Dino.service', install_dir: get_option('datadir') / 'dbus-1/services')