Spracherkennung für: .build vermutete Sprache: Apollo {Apollo[8] Postscript[8] Python[8]} [Methode: maximale Elemente, drei Dimensionen]
#
# Qt-based interface module
#
qt6 = import('qt6')
qt_include_dir = include_directories('.')
qt_extra_deps = []
qt_extra_flags = ['-DQT_STRICT_ITERATORS','-DQT_USE_QSTRINGBUILDER','-DQT_NO_CAST_TO_ASCII','-DQT_NO_CAST_FROM_BYTEARRAY']
qt_cppargs = []
qt_link_args = [gc_sections_linkargs]
qt6_dep = dependency('qt6',
# Note that Qt < 6.2.5 does not provide pc files!
version: '>=6.2',
modules: [
'Core', 'Gui', 'Widgets', 'Qml',
'Quick', 'QuickControls2'
],
private_headers: true,
required: get_option('qt'))
# Qt module doesn't provide the framework path to moc executable, so we
# need to help moc find them. It's needed for QtQml/ module registration.
if host_machine.system() == 'darwin' and qt6_dep.found()
qt_libdir = qt6_dep.get_variable(pkgconfig: 'libdir', configtool: '-query QT_INSTALL_LIBS')
qt_extra_flags += '-F' + qt_libdir
endif
moc_headers = files(
'dialogs/bookmarks/bookmarks.hpp',
'dialogs/dialogs/dialogmodel.hpp',
'dialogs/dialogs_provider.hpp',
'dialogs/epg/EPGChannels.hpp',
'dialogs/epg/EPGProgram.hpp',
'dialogs/epg/EPGRuler.hpp',
'dialogs/epg/EPGView.hpp',
'dialogs/epg/EPGWidget.hpp',
'dialogs/epg/epg.hpp',
'dialogs/extended/extended.hpp',
'dialogs/extended/extended_panels.hpp',
'dialogs/extensions/extensions.hpp',
'dialogs/extensions/extensions_manager.hpp',
'dialogs/fingerprint/chromaprint.hpp',
'dialogs/fingerprint/fingerprintdialog.hpp',
'dialogs/firstrun/firstrunwizard.hpp',
'dialogs/gototime/gototime.hpp',
'dialogs/help/aboutmodel.hpp',
'dialogs/help/help.hpp',
'dialogs/mediainfo/info_panels.hpp',
'dialogs/mediainfo/info_widgets.hpp',
'dialogs/mediainfo/mediainfo.hpp',
'dialogs/messages/messages.hpp',
'dialogs/open/open.hpp',
'dialogs/open/open_panels.hpp',
'dialogs/open/openurl.hpp',
'dialogs/plugins/plugins.hpp',
'dialogs/podcast/podcast_configuration.hpp',
'dialogs/preferences/complete_preferences.hpp',
'dialogs/preferences/expert_model.hpp',
'dialogs/preferences/expert_view.hpp',
'dialogs/preferences/preferences.hpp',
'dialogs/preferences/preferences_widgets.hpp',
'dialogs/preferences/simple_preferences.hpp',
'dialogs/sout/convert.hpp',
'dialogs/sout/profile_selector.hpp',
'dialogs/sout/sout.hpp',
'dialogs/sout/sout_widgets.hpp',
'dialogs/systray/systray.hpp',
'dialogs/toolbar/controlbar_profile.hpp',
'dialogs/toolbar/controlbar_profile_model.hpp',
'dialogs/playlists/playlists.hpp',
'dialogs/vlm/vlm.hpp',
'maininterface/compositor.hpp',
'maininterface/compositor_common.hpp',
'maininterface/compositor_dummy.hpp',
'maininterface/compositor_platform.hpp',
'maininterface/interface_window_handler.hpp',
'maininterface/mainctx.hpp',
'maininterface/mainctx_submodels.hpp',
'maininterface/mainui.hpp',
'maininterface/navigationmodel.hpp',
'maininterface/videosurface.hpp',
'maininterface/video_window_handler.hpp',
'medialibrary/medialib.hpp',
'medialibrary/mlmediastore.hpp',
'medialibrary/mlalbummodel.hpp',
'medialibrary/mlaudiomodel.hpp',
'medialibrary/mlartistmodel.hpp',
'medialibrary/mlbookmarkmodel.hpp',
'medialibrary/mlbasemodel.hpp',
'medialibrary/mlfoldersmodel.hpp',
'medialibrary/mlgenremodel.hpp',
'medialibrary/mlthreadpool.hpp',
'medialibrary/mlqmltypes.hpp',
'medialibrary/mlrecentmediamodel.hpp',
'medialibrary/mlrecentvideomodel.hpp',
'medialibrary/mlurlmodel.hpp',
'medialibrary/mlvideo.hpp',
'medialibrary/mlmediamodel.hpp',
'medialibrary/mlvideomodel.hpp',
'medialibrary/mlplaylistlistmodel.hpp',
'medialibrary/mlplaylistmodel.hpp',
'medialibrary/mlvideofoldersmodel.hpp',
'medialibrary/mlvideogroupsmodel.hpp',
'medialibrary/thumbnailcollector.hpp',
'menus/custom_menus.hpp',
'menus/qml_menu_wrapper.hpp',
'menus/menus.hpp',
'network/addonsmodel.hpp',
'network/devicesourceprovider.hpp',
'network/networkbasemodel.hpp',
'network/networkdevicemodel.hpp',
'network/networksourcesmodel.hpp',
'network/networkmediamodel.hpp',
'network/standardpathmodel.hpp',
'style/systempalette.hpp',
'style/vlcicons.hpp',
'style/colorcontext.hpp',
'player/input_models.hpp',
'player/delay_estimator.hpp',
'player/player_controller.hpp',
'player/player_controlbar_model.hpp',
'player/control_list_model.hpp',
'player/control_list_filter.hpp',
'playlist/playlist_controller.hpp',
'playlist/playlist_item.hpp',
'playlist/playlist_model.hpp',
'util/asynctask.hpp',
'util/accessible_compat_attached.hpp',
'util/audio_device_model.hpp',
'util/workerthreadset.hpp',
'util/base_model.hpp',
'util/color_scheme_model.hpp',
'util/ui_notifier.hpp',
'util/color_svg_image_provider.hpp',
'util/vlcaccess_image_provider.hpp',
'util/csdbuttonmodel.hpp',
'util/csdmenu.hpp',
'util/imageluminanceextractor.hpp',
'util/keyhelper.hpp',
'util/listcache.hpp',
'util/locallistcacheloader.hpp',
'util/navigation_history.hpp',
'util/item_key_event_filter.hpp',
'util/effects_image_provider.hpp',
'util/flickable_scroll_handler.hpp',
'util/renderer_manager.hpp',
'util/validators.hpp',
'util/varchoicemodel.hpp',
'util/variables.hpp',
'util/vlchotkeyconverter.hpp',
'util/vlctick.hpp',
'util/dismiss_popup_event_filter.hpp',
'util/list_selection_model.hpp',
'util/qsgtextureview.hpp',
'util/textureproviderobserver.hpp',
'util/kirigamiwheelhandler.hpp',
'util/textureproviderindirection.hpp',
'util/sgmanipulator.hpp',
'util/pointingtooltipattached.hpp',
'widgets/native/animators.hpp',
'widgets/native/csdthemeimage.hpp',
'widgets/native/customwidgets.hpp',
'widgets/native/interface_widgets.hpp',
'widgets/native/navigation_attached.hpp',
'widgets/native/mlfolderseditor.hpp',
'widgets/native/searchlineedit.hpp',
'widgets/native/viewblockingrectangle.hpp',
)
if host_system == 'windows'
moc_headers += files(
'maininterface/mainctx_win32.hpp',
'maininterface/compositor_win7.hpp',
'maininterface/compositor_dcomp.hpp',
'maininterface/compositor_dcomp_acrylicsurface.hpp',
)
endif
if (x11_dep.found() and
xcb_dep.found() and
xcb_damage_dep.found() and
xcb_xfixes_dep.found())
moc_headers += files(
'maininterface/compositor_x11.hpp',
'maininterface/compositor_x11_renderclient.hpp',
'maininterface/compositor_x11_renderwindow.hpp',
'maininterface/compositor_x11_uisurface.hpp',
'maininterface/compositor_x11_utils.hpp',
)
endif
if have_wayland and cpp.has_header('qpa/qplatformnativeinterface.h', dependencies: qt6_dep)
moc_headers += files('maininterface/compositor_wayland.hpp')
endif
qt_plugin_sources = files(
'qt.cpp',
'qt.hpp',
'plugins.hpp',
'dialogs/bookmarks/bookmarks.cpp',
'dialogs/bookmarks/bookmarks.hpp',
'dialogs/dialogs/dialogmodel.cpp',
'dialogs/dialogs/dialogmodel.hpp',
'dialogs/dialogs_provider.cpp',
'dialogs/dialogs_provider.hpp',
'dialogs/epg/EPGChannels.cpp',
'dialogs/epg/EPGChannels.hpp',
'dialogs/epg/EPGItem.cpp',
'dialogs/epg/EPGItem.hpp',
'dialogs/epg/EPGProgram.cpp',
'dialogs/epg/EPGProgram.hpp',
'dialogs/epg/EPGRuler.cpp',
'dialogs/epg/EPGRuler.hpp',
'dialogs/epg/EPGView.cpp',
'dialogs/epg/EPGView.hpp',
'dialogs/epg/EPGWidget.cpp',
'dialogs/epg/EPGWidget.hpp',
'dialogs/epg/epg.cpp',
'dialogs/epg/epg.hpp',
'dialogs/extended/extended.cpp',
'dialogs/extended/extended.hpp',
'dialogs/extended/extended_panels.cpp',
'dialogs/extended/extended_panels.hpp',
'dialogs/extensions/extensions.cpp',
'dialogs/extensions/extensions.hpp',
'dialogs/extensions/extensions_manager.cpp',
'dialogs/extensions/extensions_manager.hpp',
'dialogs/fingerprint/chromaprint.cpp',
'dialogs/fingerprint/chromaprint.hpp',
'dialogs/fingerprint/fingerprintdialog.cpp',
'dialogs/fingerprint/fingerprintdialog.hpp',
'dialogs/firstrun/firstrunwizard.cpp',
'dialogs/firstrun/firstrunwizard.hpp',
'dialogs/gototime/gototime.cpp',
'dialogs/gototime/gototime.hpp',
'dialogs/help/aboutmodel.hpp',
'dialogs/help/help.cpp',
'dialogs/help/help.hpp',
'dialogs/mediainfo/info_panels.cpp',
'dialogs/mediainfo/info_panels.hpp',
'dialogs/mediainfo/info_widgets.cpp',
'dialogs/mediainfo/info_widgets.hpp',
'dialogs/mediainfo/mediainfo.cpp',
'dialogs/mediainfo/mediainfo.hpp',
'dialogs/messages/messages.cpp',
'dialogs/messages/messages.hpp',
'dialogs/open/open.cpp',
'dialogs/open/open.hpp',
'dialogs/open/open_panels.cpp',
'dialogs/open/open_panels.hpp',
'dialogs/open/openurl.cpp',
'dialogs/open/openurl.hpp',
'dialogs/plugins/plugins.cpp',
'dialogs/plugins/plugins.hpp',
'dialogs/podcast/podcast_configuration.cpp',
'dialogs/podcast/podcast_configuration.hpp',
'dialogs/preferences/complete_preferences.cpp',
'dialogs/preferences/complete_preferences.hpp',
'dialogs/preferences/expert_model.cpp',
'dialogs/preferences/expert_model.hpp',
'dialogs/preferences/expert_view.cpp',
'dialogs/preferences/expert_view.hpp',
'dialogs/preferences/preferences.cpp',
'dialogs/preferences/preferences.hpp',
'dialogs/preferences/preferences_widgets.cpp',
'dialogs/preferences/preferences_widgets.hpp',
'dialogs/preferences/simple_preferences.cpp',
'dialogs/preferences/simple_preferences.hpp',
'dialogs/sout/convert.cpp',
'dialogs/sout/convert.hpp',
'dialogs/sout/profile_selector.cpp',
'dialogs/sout/profile_selector.hpp',
'dialogs/sout/profiles.hpp',
'dialogs/sout/sout.cpp',
'dialogs/sout/sout.hpp',
'dialogs/sout/sout_widgets.cpp',
'dialogs/sout/sout_widgets.hpp',
'dialogs/systray/systray.cpp',
'dialogs/systray/systray.hpp',
'dialogs/toolbar/controlbar_profile.hpp',
'dialogs/toolbar/controlbar_profile.cpp',
'dialogs/toolbar/controlbar_profile_model.cpp',
'dialogs/toolbar/controlbar_profile_model.hpp',
'dialogs/vlm/vlm.cpp',
'dialogs/playlists/playlists.cpp',
'dialogs/playlists/playlists.hpp',
'maininterface/compositor.hpp',
'maininterface/compositor.cpp',
'maininterface/compositor_common.hpp',
'maininterface/compositor_common.cpp',
'maininterface/compositor_accessibility.hpp',
'maininterface/compositor_accessibility.cpp',
'maininterface/compositor_dummy.hpp',
'maininterface/compositor_dummy.cpp',
'maininterface/compositor_platform.hpp',
'maininterface/compositor_platform.cpp',
'maininterface/interface_window_handler.cpp',
'maininterface/interface_window_handler.hpp',
'maininterface/mainctx.cpp',
'maininterface/mainctx.hpp',
'maininterface/mainctx_submodels.cpp',
'maininterface/mainctx_submodels.hpp',
'maininterface/mainui.cpp',
'maininterface/mainui.hpp',
'maininterface/navigationmodel.cpp',
'maininterface/navigationmodel.hpp',
'maininterface/videosurface.cpp',
'maininterface/videosurface.hpp',
'maininterface/video_window_handler.cpp',
'maininterface/video_window_handler.hpp',
'maininterface/windoweffects_module.hpp',
'medialibrary/medialib.cpp',
'medialibrary/medialib.hpp',
'medialibrary/mlmediastore.cpp',
'medialibrary/mlmediastore.hpp',
'medialibrary/mlalbum.cpp',
'medialibrary/mlalbum.hpp',
'medialibrary/mlalbummodel.cpp',
'medialibrary/mlalbummodel.hpp',
'medialibrary/mlaudio.cpp',
'medialibrary/mlaudio.hpp',
'medialibrary/mlaudiomodel.cpp',
'medialibrary/mlaudiomodel.hpp',
'medialibrary/mlartist.cpp',
'medialibrary/mlartist.hpp',
'medialibrary/mlartistmodel.cpp',
'medialibrary/mlartistmodel.hpp',
'medialibrary/mlbasemodel.cpp',
'medialibrary/mlbasemodel.hpp',
'medialibrary/mlbookmarkmodel.cpp',
'medialibrary/mlbookmarkmodel.hpp',
'medialibrary/mlevent.hpp',
'medialibrary/mlfolder.cpp',
'medialibrary/mlfolder.hpp',
'medialibrary/mlfoldersmodel.cpp',
'medialibrary/mlfoldersmodel.hpp',
'medialibrary/mlgenre.cpp',
'medialibrary/mlgenre.hpp',
'medialibrary/mlgenremodel.cpp',
'medialibrary/mlgenremodel.hpp',
'medialibrary/mlgroup.cpp',
'medialibrary/mlgroup.hpp',
'medialibrary/mlhelper.cpp',
'medialibrary/mlhelper.hpp',
'medialibrary/mlthreadpool.cpp',
'medialibrary/mlthreadpool.hpp',
'medialibrary/mlqmltypes.hpp',
'medialibrary/mlmedia.hpp',
'medialibrary/mlqueryparams.cpp',
'medialibrary/mlqueryparams.hpp',
'medialibrary/mlrecentmediamodel.cpp',
'medialibrary/mlrecentmediamodel.hpp',
'medialibrary/mlrecentvideomodel.cpp',
'medialibrary/mlrecentvideomodel.hpp',
'medialibrary/mlurlmodel.cpp',
'medialibrary/mlurlmodel.hpp',
'medialibrary/mlvideo.cpp',
'medialibrary/mlvideo.hpp',
'medialibrary/mlvideofoldersmodel.cpp',
'medialibrary/mlvideofoldersmodel.hpp',
'medialibrary/mlvideogroupsmodel.cpp',
'medialibrary/mlvideogroupsmodel.hpp',
'medialibrary/mlmediamodel.cpp',
'medialibrary/mlmediamodel.hpp',
'medialibrary/mlvideomodel.cpp',
'medialibrary/mlvideomodel.hpp',
'medialibrary/mlplaylist.cpp',
'medialibrary/mlplaylist.hpp',
'medialibrary/mlplaylistlistmodel.cpp',
'medialibrary/mlplaylistlistmodel.hpp',
'medialibrary/mlplaylistmedia.cpp',
'medialibrary/mlplaylistmedia.hpp',
'medialibrary/mlplaylistmodel.cpp',
'medialibrary/mlplaylistmodel.hpp',
'medialibrary/thumbnailcollector.hpp',
'medialibrary/thumbnailcollector.cpp',
'medialibrary/mlcustomcover.hpp',
'medialibrary/mlcustomcover.cpp',
'menus/custom_menus.cpp',
'menus/custom_menus.hpp',
'menus/qml_menu_wrapper.cpp',
'menus/qml_menu_wrapper.hpp',
'menus/menus.cpp',
'menus/menus.hpp',
'network/addonsmodel.cpp',
'network/addonsmodel.hpp',
'network/mediatreelistener.cpp',
'network/mediatreelistener.hpp',
'network/devicesourceprovider.cpp',
'network/devicesourceprovider.hpp',
'network/networkbasemodel.cpp',
'network/networkbasemodel.hpp',
'network/networkdevicemodel.cpp',
'network/networkdevicemodel.hpp',
'network/networksourcesmodel.cpp',
'network/networksourcesmodel.hpp',
'network/networkmediamodel.cpp',
'network/networkmediamodel.hpp',
'network/standardpathmodel.cpp',
'network/standardpathmodel.hpp',
'network/vlcmediasourcewrapper.hpp',
'style/qtthemeprovider.hpp',
'style/colorcontext.cpp',
'style/colorcontext.hpp',
'style/systempalette.cpp',
'style/systempalette.hpp',
'style/vlcicons.cpp',
'style/vlcicons.hpp',
'style/defaultthemeproviders.hpp',
'style/systempalettethemeprovider.cpp',
'player/input_models.cpp',
'player/delay_estimator.cpp',
'player/input_models.hpp',
'player/player_controller.cpp',
'player/player_controller.hpp',
'player/player_controller_p.hpp',
'player/player_controlbar_model.cpp',
'player/player_controlbar_model.hpp',
'player/control_list_model.cpp',
'player/control_list_model.hpp',
'player/control_list_filter.cpp',
'player/control_list_filter.hpp',
'playlist/media.hpp',
'playlist/playlist_common.hpp',
'playlist/playlist_controller.cpp',
'playlist/playlist_controller.hpp',
'playlist/playlist_controller_p.hpp',
'playlist/playlist_item.cpp',
'playlist/playlist_item.hpp',
'playlist/playlist_model.cpp',
'playlist/playlist_model.hpp',
'playlist/playlist_model_p.hpp',
'util/asynctask.hpp',
'util/accessible_compat_attached.cpp',
'util/accessible_compat_attached.hpp',
'util/audio_device_model.cpp',
'util/audio_device_model.hpp',
'util/workerthreadset.cpp',
'util/workerthreadset.hpp',
'util/base_model.cpp',
'util/base_model.hpp',
'util/base_model_p.hpp',
'util/color_scheme_model.cpp',
'util/color_scheme_model.hpp',
'util/ui_notifier.cpp',
'util/ui_notifier.hpp',
'util/color_svg_image_provider.cpp',
'util/color_svg_image_provider.hpp',
'util/vlcaccess_image_provider.cpp',
'util/vlcaccess_image_provider.hpp',
'util/covergenerator.cpp',
'util/covergenerator.hpp',
'util/csdbuttonmodel.cpp',
'util/csdbuttonmodel.hpp',
'util/csdmenu.cpp',
'util/csdmenu.hpp',
'util/imageluminanceextractor.cpp',
'util/imageluminanceextractor.hpp',
'util/imagehelper.cpp',
'util/imagehelper.hpp',
'util/keyhelper.cpp',
'util/keyhelper.hpp',
'util/listcache.hpp',
'util/listcache.hxx',
'util/listcacheloader.hpp',
'util/locallistcacheloader.hpp',
'util/navigation_history.cpp',
'util/navigation_history.hpp',
'util/item_key_event_filter.cpp',
'util/item_key_event_filter.hpp',
'util/flickable_scroll_handler.cpp',
'util/flickable_scroll_handler.hpp',
'util/qt_dirs.cpp',
'util/qt_dirs.hpp',
'util/proxycolumnmodel.hpp',
'util/registry.cpp',
'util/registry.hpp',
'util/renderer_manager.cpp',
'util/renderer_manager.hpp',
'util/singleton.hpp',
'util/soutchain.cpp',
'util/soutchain.hpp',
'util/validators.cpp',
'util/validators.hpp',
'util/varcommon_p.hpp',
'util/varchoicemodel.cpp',
'util/varchoicemodel.hpp',
'util/variables.cpp',
'util/variables.hpp',
'util/vlctick.cpp',
'util/vlctick.hpp',
'util/vlchotkeyconverter.cpp',
'util/vlchotkeyconverter.hpp',
'util/shared_input_item.hpp',
'util/fast_gaussian_blur_template.h',
'util/effects_image_provider.cpp',
'util/effects_image_provider.hpp',
'util/qsgtextureview.cpp',
'util/qsgtextureview.hpp',
'util/textureproviderobserver.cpp',
'util/textureproviderobserver.hpp',
'util/dismiss_popup_event_filter.cpp',
'util/dismiss_popup_event_filter.hpp',
'util/list_selection_model.cpp',
'util/list_selection_model.hpp',
'util/model_recovery_agent.hpp',
'util/vlcqtmessagehandler.cpp',
'util/vlcqtmessagehandler.hpp',
'util/colorizedsvgicon.cpp',
'util/colorizedsvgicon.hpp',
'util/kirigamiwheelhandler.cpp',
'util/kirigamiwheelhandler.hpp',
'util/textureproviderindirection.cpp',
'util/textureproviderindirection.hpp',
'util/sgmanipulator.cpp',
'util/sgmanipulator.hpp',
'util/pointingtooltipattached.hpp',
'widgets/native/animators.cpp',
'widgets/native/animators.hpp',
'widgets/native/customwidgets.cpp',
'widgets/native/customwidgets.hpp',
'widgets/native/csdthemeimage.cpp',
'widgets/native/csdthemeimage.hpp',
'widgets/native/interface_widgets.cpp',
'widgets/native/interface_widgets.hpp',
'widgets/native/navigation_attached.cpp',
'widgets/native/navigation_attached.hpp',
'widgets/native/mlfolderseditor.cpp',
'widgets/native/mlfolderseditor.hpp',
'widgets/native/qvlcframe.cpp',
'widgets/native/qvlcframe.hpp',
'widgets/native/searchlineedit.cpp',
'widgets/native/searchlineedit.hpp',
'widgets/native/viewblockingrectangle.cpp',
'widgets/native/viewblockingrectangle.hpp',
'widgets/native/doubleclickignoringitem.hpp',
)
if host_system == 'windows'
qt_plugin_sources += files(
'maininterface/mainctx_win32.cpp',
'maininterface/mainctx_win32.hpp',
'maininterface/compositor_win7.cpp',
'maininterface/compositor_win7.hpp',
'style/windowsthemeprovider.cpp',
'util/csdmenu_win32.c',
'util/csdmenu_win32.h',
'maininterface/compositor_dcomp.cpp',
'maininterface/compositor_dcomp_acrylicsurface.cpp',
)
endif
if (x11_dep.found() and
xcb_dep.found() and
xcb_damage_dep.found() and
xcb_xfixes_dep.found())
qt_plugin_sources += files(
'maininterface/compositor_x11.cpp',
'maininterface/compositor_x11_renderclient.cpp',
'maininterface/compositor_x11_renderwindow.cpp',
'maininterface/compositor_x11_uisurface.cpp',
'maininterface/compositor_x11_utils.cpp',
)
endif
if have_wayland and cpp.has_header('qpa/qplatformnativeinterface.h', dependencies: qt6_dep)
qt_plugin_sources += files(
'maininterface/compositor_wayland.cpp',
)
endif
qrc_files = files('assets.qrc')
if host_system == 'windows'
qrc_files += files('windows.qrc')
endif
ui_sources = files(
'dialogs/extended/equalizer.ui',
'dialogs/extended/video_effects.ui',
'dialogs/fingerprint/fingerprintdialog.ui',
'dialogs/firstrun/firstrunwizard.ui',
'dialogs/help/about.ui',
'dialogs/help/update.ui',
'dialogs/messages/messages_panel.ui',
'dialogs/open/open.ui',
'dialogs/open/open_capture.ui',
'dialogs/open/open_disk.ui',
'dialogs/open/open_file.ui',
'dialogs/open/open_net.ui',
'dialogs/podcast/podcast_configuration.ui',
'dialogs/preferences/sprefs_audio.ui',
'dialogs/preferences/sprefs_input.ui',
'dialogs/preferences/sprefs_interface.ui',
'dialogs/preferences/sprefs_medialibrary.ui',
'dialogs/preferences/sprefs_subtitles.ui',
'dialogs/preferences/sprefs_video.ui',
'dialogs/sout/profiles.ui',
'dialogs/sout/sout.ui',
'dialogs/vlm/vlm.ui',
)
qml_modules = []
qml_modules += {
'name' : 'VLC.Dialogs',
'target' : 'dialogs',
'outdir' : 'VLC/Dialogs',
'sources': files(
'dialogs/dialogs/qml/CustomDialog.qml',
'dialogs/dialogs/qml/Dialogs.qml',
'dialogs/dialogs/qml/ModalDialog.qml',
'dialogs/dialogs/qml/WindowDialog.qml',
'dialogs/toolbar/qml/EditorDNDDelegate.qml',
'dialogs/toolbar/qml/EditorDNDView.qml',
'dialogs/toolbar/qml/EditorDummyButton.qml',
'dialogs/toolbar/qml/EditorTabButton.qml',
'dialogs/toolbar/qml/ToolbarEditor.qml',
'dialogs/toolbar/qml/ToolbarEditorDialog.qml',
'dialogs/toolbar/qml/ToolbarEditorButtonList.qml'
),
}
qml_maininterface_extra_files = []
if get_option('update-check').allowed() and gcrypt_dep.found()
qt_extra_flags += '-DUPDATE_CHECK'
qml_maininterface_extra_files += 'maininterface/qml/UpdatePane.qml'
endif
qml_modules += {
'name' : 'VLC.MainInterface',
'target' : 'maininterface',
'outdir' : 'VLC/MainInterface',
'sources': files(
'maininterface/qml/LocalTopbar.qml',
'maininterface/qml/MenuTopbar.qml',
'maininterface/qml/MainInterface.qml',
'maininterface/qml/MainViewLoader.qml',
'maininterface/qml/MainDisplay.qml',
'maininterface/qml/NoMedialibHome.qml',
'maininterface/qml/OpenFileSplitButton.qml',
qml_maininterface_extra_files,
'maininterface/qml/SideNavigationPane.qml',
'maininterface/qml/SideNavigationDelegate.qml',
),
}
qml_modules += {
'name' : 'VLC.MediaLibrary',
'target' : 'medialibrary',
'outdir' : 'VLC/MediaLibrary',
'sources': files(
'medialibrary/qml/ArtistTopBanner.qml',
'medialibrary/qml/AudioGridItem.qml',
'medialibrary/qml/HomeDisplay.qml',
'medialibrary/qml/HomePage.qml',
'medialibrary/qml/MediaView.qml',
'medialibrary/qml/VideoGroupDisplay.qml',
'medialibrary/qml/MusicAlbums.qml',
'medialibrary/qml/MusicAlbumsDisplay.qml',
'medialibrary/qml/MusicAlbumsGridExpandDelegate.qml',
'medialibrary/qml/MusicArtist.qml',
'medialibrary/qml/MusicArtistDelegate.qml',
'medialibrary/qml/MusicArtistsAlbums.qml',
'medialibrary/qml/MusicAllArtists.qml',
'medialibrary/qml/MusicArtistsDisplay.qml',
'medialibrary/qml/MusicDisplay.qml',
'medialibrary/qml/MusicGenres.qml',
'medialibrary/qml/MusicGenresDisplay.qml',
'medialibrary/qml/MusicPlaylistsDisplay.qml',
'medialibrary/qml/MusicTrackListDisplay.qml',
'medialibrary/qml/MusicTracksDisplay.qml',
'medialibrary/qml/UrlListDisplay.qml',
'medialibrary/qml/VideoDisplay.qml',
'medialibrary/qml/VideoAll.qml',
'medialibrary/qml/VideoAllDisplay.qml',
'medialibrary/qml/VideoAllSubDisplay.qml',
'medialibrary/qml/PlaylistMediaList.qml',
'medialibrary/qml/PlaylistMedia.qml',
'medialibrary/qml/PlaylistMediaDisplay.qml',
'medialibrary/qml/VideoPlaylistsDisplay.qml',
'medialibrary/qml/VideoGridItem.qml',
'medialibrary/qml/VideoInfoExpandPanel.qml',
'medialibrary/qml/VideoListDisplay.qml',
'medialibrary/qml/VideoGridDisplay.qml',
'medialibrary/qml/MusicAlbumSectionDelegate.qml',
'medialibrary/qml/MLGlobalShortcuts.qml',
'medialibrary/qml/Bookmarks.qml',
'medialibrary/qml/MLContextMenu.qml',
'medialibrary/qml/MLDragItem.qml',
'medialibrary/qml/MLTableColumns.qml',
'medialibrary/qml/ScanProgressBar.qml',
),
}
qml_modules += {
'name' : 'VLC.Menus',
'target' : 'menus',
'outdir' : 'VLC/Menus',
'sources': files(
'menus/qml/GlobalShortcuts.qml',
'menus/qml/Menubar.qml',
'menus/qml/ShortcutExt.qml'
),
}
qml_modules += {
'name' : 'VLC.Network',
'target' : 'network',
'outdir' : 'VLC/Network',
'sources': files(
'network/qml/AddressbarButton.qml',
'network/qml/BrowseDeviceView.qml',
'network/qml/BrowseDisplay.qml',
'network/qml/BrowseHomeDisplay.qml',
'network/qml/BrowseTreeDisplay.qml',
'network/qml/BrowseTreeHeader.qml',
'network/qml/DiscoverDisplay.qml',
'network/qml/DiscoverUrlDisplay.qml',
'network/qml/NetworkAddressbar.qml',
'network/qml/NetworkGridItem.qml',
'network/qml/NetworkThumbnailItem.qml',
'network/qml/ServicesHomeDisplay.qml',
'network/qml/ServicesManage.qml',
'network/qml/ServicesSources.qml'
),
}
qml_modules += {
'name' : 'VLC.Player',
'target' : 'player',
'outdir' : 'VLC/Player',
'sources': files(
'player/qml/ControlBar.qml',
'player/qml/PlaybackSpeed.qml',
'player/qml/LyricsFlickable.qml',
'player/qml/MiniPlayer.qml',
'player/qml/PIPPlayer.qml',
'player/qml/Player.qml',
'player/qml/PlayerControlLayout.qml',
'player/qml/PlayerPlaylistVisibilityFSM.qml',
'player/qml/PlayerToolbarVisibilityFSM.qml',
'player/qml/MinimalView.qml',
'player/qml/ResumeDialog.qml',
'player/qml/SliderBar.qml',
'player/qml/TopBar.qml',
'player/qml/TracksMenu.qml',
'player/qml/TracksPage.qml',
'player/qml/TracksPageAudio.qml',
'player/qml/TracksPageSpeed.qml',
'player/qml/TracksPageSubtitle.qml',
'player/qml/TracksListPage.qml',
'player/qml/ControlLayout.qml',
'player/qml/ControlRepeater.qml',
'player/qml/NavigationBox.qml',
),
'singletons' : files(
'player/qml/PlayerControlbarControls.qml',
)
}
qml_modules += {
'name' : 'VLC.PlayerControls',
'target' : 'playercontrols',
'outdir' : 'VLC/PlayerControls',
'sources': files(
'player/qml/controlbarcontrols/HighResolutionTimeWidget.qml',
'player/qml/controlbarcontrols/ArtworkInfoWidget.qml',
'player/qml/controlbarcontrols/AspectRatioWidget.qml',
'player/qml/controlbarcontrols/AtoBButton.qml',
'player/qml/controlbarcontrols/BackButton.qml',
'player/qml/controlbarcontrols/BookmarkButton.qml',
'player/qml/controlbarcontrols/ChapterNextButton.qml',
'player/qml/controlbarcontrols/ChapterPreviousButton.qml',
'player/qml/controlbarcontrols/DvdMenuButton.qml',
'player/qml/controlbarcontrols/ExpandingSpacerWidget.qml',
'player/qml/controlbarcontrols/ExtendedSettingsButton.qml',
'player/qml/controlbarcontrols/FasterButton.qml',
'player/qml/controlbarcontrols/FrameNextButton.qml',
'player/qml/controlbarcontrols/FramePrevButton.qml',
'player/qml/controlbarcontrols/FullscreenButton.qml',
'player/qml/controlbarcontrols/InfoButton.qml',
'player/qml/controlbarcontrols/LangButton.qml',
'player/qml/controlbarcontrols/LoopButton.qml',
'player/qml/controlbarcontrols/MenuButton.qml',
'player/qml/controlbarcontrols/NavigationBoxButton.qml',
'player/qml/controlbarcontrols/NavigationWidget.qml',
'player/qml/controlbarcontrols/NextButton.qml',
'player/qml/controlbarcontrols/OpenButton.qml',
'player/qml/controlbarcontrols/PlaybackSpeedButton.qml',
'player/qml/controlbarcontrols/PlayButton.qml',
'player/qml/controlbarcontrols/PlayerSwitchButton.qml',
'player/qml/controlbarcontrols/PlaylistButton.qml',
'player/qml/controlbarcontrols/PreviousButton.qml',
'player/qml/controlbarcontrols/ProgramButton.qml',
'player/qml/controlbarcontrols/QuitButton.qml',
'player/qml/controlbarcontrols/RandomButton.qml',
'player/qml/controlbarcontrols/RendererButton.qml',
'player/qml/controlbarcontrols/RecordButton.qml',
'player/qml/controlbarcontrols/ReverseButton.qml',
'player/qml/controlbarcontrols/SkipBackButton.qml',
'player/qml/controlbarcontrols/SkipForwardButton.qml',
'player/qml/controlbarcontrols/SlowerButton.qml',
'player/qml/controlbarcontrols/SnapshotButton.qml',
'player/qml/controlbarcontrols/SpacerWidget.qml',
'player/qml/controlbarcontrols/StopButton.qml',
'player/qml/controlbarcontrols/TeletextButton.qml',
'player/qml/controlbarcontrols/TeletextColorButton.qml',
'player/qml/controlbarcontrols/TeletextWidget.qml',
'player/qml/controlbarcontrols/VolumeWidget.qml',
'player/qml/controlbarcontrols/Fallback.qml',
),
}
qml_modules += {
'name' : 'VLC.Playlist',
'target' : 'playlist',
'outdir' : 'VLC/Playlist',
'sources': files(
'playlist/qml/PlaylistDelegate.qml',
'playlist/qml/PlaylistPane.qml',
'playlist/qml/PlaylistDetachedWindow.qml',
),
}
qml_modules += {
'name' : 'VLC.Style',
'target' : 'style',
'outdir' : 'VLC/Style',
'singletons': files(
'style/AcrylicController.qml',
'style/VLCStyle.qml',
),
}
qml_modules += {
'name' : 'VLC.Util',
'target' : 'util',
'outdir' : 'VLC/Util',
'sources': files(
'util/qml/ModelSortSettingHandler.qml',
'util/qml/DefaultFlickableScrollHandler.qml',
'util/qml/ViewDragAutoScrollHandler.qml',
'util/qml/FSM.qml',
'util/qml/FSMState.qml',
'util/qml/GridSizeHelper.qml',
'util/qml/NativeMenu.qml',
'util/qml/FadeControllerStateGroup.qml',
'util/qml/DelayedBehavior.qml',
'util/qml/DelegateTouchTapHandler.qml'
),
'singletons': files(
'util/qml/Helpers.qml',
),
}
qml_modules += {
'name' : 'VLC.Widgets',
'target' : 'widgets',
'outdir' : 'VLC/Widgets',
'sources': files(
'widgets/qml/LabelExt.qml',
'widgets/qml/ActionButtonOverlay.qml',
'widgets/qml/ActionButtonPrimary.qml',
'widgets/qml/BannerTabButton.qml',
'widgets/qml/BannerCone.qml',
'widgets/qml/BusyIndicatorExt.qml',
'widgets/qml/CaptionLabel.qml',
'widgets/qml/CheckButton.qml',
'widgets/qml/CheckedDelegate.qml',
'widgets/qml/ComboBoxExt.qml',
'widgets/qml/AcrylicBackground.qml',
'widgets/qml/FloatingNotification.qml',
'widgets/qml/AnimatedBackground.qml',
'widgets/qml/CSDThemeButton.qml',
'widgets/qml/CSDThemeButtonSet.qml',
'widgets/qml/CSDWindowButton.qml',
'widgets/qml/CSDWindowButtonSet.qml',
'widgets/qml/CSDTitlebarTapNDrapHandler.qml',
'widgets/qml/CSDMouseStealer.qml',
'widgets/qml/CurrentIndicator.qml',
'widgets/qml/DragItem.qml',
'widgets/qml/DrawerExt.qml',
'widgets/qml/ExpandGridView.qml',
'widgets/qml/ExpandGridItemView.qml',
'widgets/qml/EmptyLabel.qml',
'widgets/qml/EmptyLabelButton.qml',
'widgets/qml/EmptyLabelHint.qml',
'widgets/qml/GridItem.qml',
'widgets/qml/GridSortFilterControls.qml',
'widgets/qml/HorizontalResizeHandle.qml',
'widgets/qml/IconLabel.qml',
'widgets/qml/IconButton.qml',
'widgets/qml/IconToolButton.qml',
'widgets/qml/IconTrackButton.qml',
'widgets/qml/ImageToolButton.qml',
'widgets/qml/ListViewExt.qml',
'widgets/qml/TableViewExt.qml',
'widgets/qml/TableViewDelegateExt.qml',
'widgets/qml/TableRowDelegate.qml',
'widgets/qml/TableHeaderDelegate.qml',
'widgets/qml/DefaultShadow.qml',
'widgets/qml/ListLabel.qml',
'widgets/qml/MediaCover.qml',
'widgets/qml/SubtitleLabel.qml',
'widgets/qml/MenuCaption.qml',
'widgets/qml/MenuLabel.qml',
'widgets/qml/NavigableCol.qml',
'widgets/qml/NavigableRow.qml',
'widgets/qml/PlayCover.qml',
'widgets/qml/RoundButtonExt.qml',
'widgets/qml/SplitButton.qml',
'widgets/qml/ScaledImage.qml',
'widgets/qml/TextAutoScroller.qml',
'widgets/qml/SearchBox.qml',
'widgets/qml/SliderExt.qml',
'widgets/qml/SortControl.qml',
'widgets/qml/SpinBoxExt.qml',
'widgets/qml/StackViewExt.qml',
'widgets/qml/PageLoader.qml',
'widgets/qml/PageExt.qml',
'widgets/qml/ButtonExt.qml',
'widgets/qml/TableColumns.qml',
'widgets/qml/TextFieldExt.qml',
'widgets/qml/TextToolButton.qml',
'widgets/qml/TrackDelayButton.qml',
'widgets/qml/VideoProgressBar.qml',
'widgets/qml/VideoQualityLabels.qml',
'widgets/qml/ListSubtitleLabel.qml',
'widgets/qml/PointingTooltip.qml',
'widgets/qml/FrostedGlassEffect.qml',
'widgets/qml/ToolTipExt.qml',
'widgets/qml/DropShadowImage.qml',
'widgets/qml/DoubleShadow.qml',
'widgets/qml/FadingEdge.qml',
'widgets/qml/FadingEdgeForItemView.qml',
'widgets/qml/PopupIconToolButton.qml',
'widgets/qml/PartialEffect.qml',
'widgets/qml/ViewHeader.qml',
'widgets/qml/ProgressIndicator.qml',
'widgets/qml/ImageExt.qml',
'widgets/qml/EnhancedImageExt.qml',
'widgets/qml/ScrollBarExt.qml',
'widgets/qml/FastBlend.qml',
'widgets/qml/RadioButtonExt.qml',
'widgets/qml/RoundedRectangleShadow.qml',
'widgets/qml/VoronoiSnow.qml',
'widgets/qml/DualKawaseBlur.qml',
'widgets/qml/CheckBoxExt.qml',
'widgets/qml/ProgressBarExt.qml',
),
}
qml_tests = {
'tst_FSM': files('tests/tst_FSM.qml'),
}
qmllibs = []
if qt6_dep.found()
qt_rcc_extra_arguments = []
qt_zstd_check = '''
#include <qconfig.h>
#if QT_FEATURE_zstd != 1
#error "Qt can not decompress zstd. Resources are going to be compressed using zlib."
#endif
'''
if not cpp.compiles(qt_zstd_check, dependencies: qt6_dep, name: 'Qt supports decompressing zstd')
qt_rcc_extra_arguments += '--no-zstd'
endif
atomic_lib = cc.find_library('atomic', required: false)
if atomic_lib.found()
qt_extra_deps += atomic_lib
qt_extra_flags += '-DQT_HAS_LIBATOMIC'
endif
prog_python = find_program('python3')
modules_qrc = []
foreach module : qml_modules
#generates 'res.qrc', 'qmldir.qrc', 'qmldir',
run_command(
prog_python,
meson.current_source_dir() / 'scripts/genqrc.py',
'-o', meson.current_build_dir() / module['outdir'] / 'res.qrc',
'--prefix', 'qt/qml' / module['outdir'],
'--sources', module.get('sources', []) + module.get('singletons', []),
check: true,
)
run_command(
prog_python,
meson.current_source_dir() / 'scripts/genqmldir.py',
'-o', meson.current_build_dir() / module['outdir'] / 'qmldir',
'--module', module['name'],
'--prefix', 'qt/qml',
'--sources', module.get('sources', []),
'--singletons', module.get('singletons', []),
check: true,
)
run_command(
prog_python,
meson.current_source_dir() / 'scripts/genqrc.py',
'-o', meson.current_build_dir() / module['outdir'] / 'qmldir.qrc',
'--prefix', 'qt/qml' / module['outdir'],
'--sources', [meson.current_build_dir() / module['outdir'] / 'qmldir'],
check: true,
)
module_qrc = qt6.preprocess(
module['target'] + '_assets',
qresources: files(
meson.current_build_dir() / module['outdir'] / 'res.qrc',
meson.current_build_dir() / module['outdir'] / 'qmldir.qrc',
),
include_directories: qt_include_dir,
dependencies: qt6_dep,
rcc_extra_arguments: qt_rcc_extra_arguments
)
#FIXME copy every files to the outdir module so they can be used by qt tooling
qmllibs += static_library(
'qml_module' + module['target'],
module_qrc,
dependencies: qt6_dep)
endforeach
qt_static_check = '''
#include <qconfig.h>
#ifndef QT_STATIC
# error Qt using shared libraries
#endif
'''
if cpp.compiles(qt_static_check, dependencies: qt6_dep, name: 'Qt6 compiled with static libraries')
qt_install_bin_directory = qt6_dep.get_variable(pkgconfig: 'bindir', configtool: '-query QT_INSTALL_BINS')
qmake6 = find_program(qt_install_bin_directory + '/qmake6', required: true)
if qmake6.found()
qmake_additional_params = []
if get_option('buildtype') == 'debug'
qmake_additional_params += '--debug'
endif
qtcflags = run_command(
prog_python,
meson.current_source_dir() / 'scripts/static_dirs.py',
'--qmake', qmake6.full_path(),
'--pro', meson.current_source_dir() / 'qt6.pro',
'--builddir', meson.current_build_dir(),
'--cflags',
qmake_additional_params,
check: false,
)
if qtcflags.returncode() == 0
qt_extra_flags += qtcflags.stdout().split()
else
warning('Failed to get static Qt compilation flags: ' + qtcflags.stderr())
endif
qtlflags = run_command(
prog_python,
meson.current_source_dir() / 'scripts/static_dirs.py',
'--qmake', qmake6.full_path(),
'--pro', meson.current_source_dir() / 'qt6.pro',
'--builddir', meson.current_build_dir(),
'--libs', '--ldflags',
qmake_additional_params,
check: false,
)
if qtlflags.returncode() == 0
qt_link_args += qtlflags.stdout().split()
else
warning('Failed to get static Qt link flags: ' + qtlflags.stderr())
endif
else
warning('Failed to find qmake6 to get static Qt variables')
endif
endif
qt6pre_qrc = qt6.preprocess(
qresources: qrc_files,
include_directories: qt_include_dir,
dependencies: qt6_dep,
rcc_extra_arguments: qt_rcc_extra_arguments)
qt_sources = files('qt.cpp')
subdir('shaders')
# Qt plugins
if host_system == 'windows'
qt_extra_deps += [
cc.find_library('dwmapi'),
cc.find_library('comctl32'),
]
endif
qt_xcb_check = '''
#include <qtgui-config.h>
#if QT_FEATURE_xcb != 1
#error "Qt doesn't have xcb support"
#endif
'''
qt_features_xcb = cpp.compiles(qt_xcb_check, dependencies: qt6_dep, name: 'Qt features xcb')
if x11_dep.found() and xcb_dep.found() and qt_features_xcb
qt_extra_deps += xcb_dep
qt_extra_deps += x11_dep
qt_extra_flags += '-DQT_HAS_XCB'
if xcb_damage_dep.found() and xcb_xfixes_dep.found()
qt_extra_deps += [
xcb_render_dep,
xcb_composite_dep,
xcb_damage_dep,
xcb_xfixes_dep
]
qt_extra_flags += '-DQT_HAS_X11_COMPOSITOR'
endif
endif
if get_option('qt_qml_debug')
qt_extra_flags += '-DQT_QML_DEBUG'
endif
#check private headers
if cpp.has_header('private/qquickitem_p.h', dependencies: qt6_dep) \
and cpp.has_header('private/qquickwindow_p.h', dependencies: qt6_dep)
qt_extra_flags += '-DQT_DECLARATIVE_PRIVATE'
endif
if cpp.has_header('qpa/qplatformnativeinterface.h', dependencies: qt6_dep)
qt_extra_flags += '-DQT_GUI_PRIVATE'
endif
qt_wayland_gui_private = cpp.has_header(
'qpa/qplatformnativeinterface.h', dependencies: qt6_dep)
if have_wayland and qt_wayland_gui_private
qt_extra_flags += '-DQT_HAS_WAYLAND_COMPOSITOR'
qt_extra_deps += wayland_deps[0]
qt_wl_xdg_shell_xml = wayland_protocols_dir / 'stable/xdg-shell/xdg-shell.xml'
qt_wl_xdg_shell_hdr = custom_target(
'qt-wayland-xdg-shell-client-header',
output: 'xdg-shell-client-protocol.h',
input: qt_wl_xdg_shell_xml,
command: [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'],
)
qt_wl_xdg_shell_code = custom_target(
'qt-wayland-xdg-shell-code',
output: 'xdg-shell-protocol.c',
input: qt_wl_xdg_shell_xml,
command: [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'],
)
qt_wayland_sources = [
files(
'maininterface/qt_wayland_plugin.c',
'maininterface/compositor_wayland_module.c',
'maininterface/compositor_wayland_module.h',
'util/csdmenu_wayland.c',
'util/csdmenu_wayland.h',
'util/csdmenu_module.h',
),
qt_wl_xdg_shell_hdr,
qt_wl_xdg_shell_code,
]
qt_wayland_cargs = ['-DQT_HAS_WAYLAND_PROTOCOLS']
if qt6_dep.version().version_compare('>= 6.5')
qt_wayland_cargs += '-DQT_HAS_WAYLAND_FRACTIONAL_SCALING'
qt_wl_viewporter_xml = wayland_protocols_dir / 'stable/viewporter/viewporter.xml'
qt_wl_viewporter_hdr = custom_target(
'qt-wayland-viewporter-client-header',
output: 'viewporter-client-protocol.h',
input: qt_wl_viewporter_xml,
command: [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'],
)
qt_wl_viewporter_code = custom_target(
'qt-wayland-viewporter-code',
output: 'viewporter-protocol.c',
input: qt_wl_viewporter_xml,
command: [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'],
)
qt_wayland_sources += [qt_wl_viewporter_hdr, qt_wl_viewporter_code]
endif
vlc_modules += {
'name': 'qt_wayland',
'sources': qt_wayland_sources,
'c_args': qt_wayland_cargs,
'include_directories': [qt_include_dir],
'dependencies': [wayland_deps[0], m_lib],
'plugin_dir' : 'gui',
}
endif
if host_system == 'windows'
qt_cppargs += libcom_cppflags
endif
#Qt GTK theme module
gtk_dep = dependency(
'gtk+-3.0',
version: '>=3.20',
required: get_option('qt_gtk').disable_auto_if(host_system in ['windows', 'darwin'])
)
vlc_modules += {
'name' : 'qt_gtktheme',
'sources' : files(
'style/gtkthemeprovider/gtk_compat.cpp',
'style/gtkthemeprovider/gtk_compat.h',
'style/gtkthemeprovider/gtkthemeprovider.cpp',
'style/gtkthemeprovider/gtk_util.cpp',
'style/gtkthemeprovider/gtk_util.h',
'style/gtkthemeprovider/nav_button_provider_gtk.cpp',
'style/gtkthemeprovider/nav_button_provider_gtk.h',
'style/gtkthemeprovider/scoped_gobject.h'
),
'dependencies' : [gtk_dep, qt6_dep],
'plugin_dir' : 'gui',
'enabled' : gtk_dep.found()
}
if gtk_dep.found()
qt_extra_flags += '-DQT_HAS_GTK'
endif
if host_system == 'windows'
qt_plugin_sources += files('maininterface/win32windoweffects_module.cpp',
'maininterface/win32windoweffects_module.hpp')
else
kf6WindowSystem_dep = dependency('KF6WindowSystem',
version: '>=6.0.0',
required: false)
if (kf6WindowSystem_dep.found())
vlc_modules += {
'name' : 'qtwindoweffects',
'sources' : files(
'maininterface/windoweffects_module.hpp',
'maininterface/kwindowsystem_module.cpp',
),
'dependencies' : [kf6WindowSystem_dep, qt6_dep],
'plugin_dir' : 'gui',
}
endif
endif
vlc_modules += {
'name' : 'qt_x11',
'include_directories' : qt_include_dir,
'sources' : files(
'maininterface/qt_x11_plugin.c',
'maininterface/compositor_x11_utils.hpp',
'maininterface/compositor_x11_utils.cpp',
'util/csdmenu_module.h',
'util/csdmenu_x11.cpp',
'util/csdmenu_x11.h'
),
'dependencies' : [xcb_dep, xcb_render_dep, xcb_xfixes_dep],
'plugin_dir' : 'gui',
'enabled': xcb_dep.found() and xcb_render_dep.found() and xcb_xfixes_dep.found(),
}
qt6pre_files = qt6.preprocess(ui_files: ui_sources,
moc_headers: moc_headers,
moc_extra_arguments: qt_extra_flags,
include_directories: qt_include_dir,
dependencies: qt6_dep,
rcc_extra_arguments: qt_rcc_extra_arguments)
# TODO support qmlcachegen
vlc_modules += {
'name' : 'qt',
'sources' : [qt6pre_files, qt6pre_qrc, shader_targets, shaders_processed, qt_sources, qt_plugin_sources],
'extra_files' : [shader_files],
'dependencies' : [qt_extra_deps, qt6_dep, corefoundation_dep],
'include_directories' : qt_include_dir,
'c_args' : qt_extra_flags,
'cpp_args' : [qt_extra_flags, qt_cppargs],
'link_args' : qt_link_args,
'link_with' : qmllibs,
'plugin_dir' : 'gui',
}
vlc_tests += {
'name': 'base_model_test',
'sources': files(
'tests/test_base_model.cpp',
'util/base_model.cpp',
'util/base_model.hpp',
'util/base_model_p.hpp'),
'moc_headers': files(
'util/base_model.hpp',
'util/listcache.hpp',
'util/locallistcacheloader.hpp'),
'suite': ['qt'],
'link_with': [libvlccore],
'link_args': qt_link_args,
'dependencies': [qt6_dep, qt_extra_deps],
}
qtest_qt6_dep = dependency('qt6', version: '=' + qt6_dep.version(), modules: ['Test'], required: false)
if qtest_qt6_dep.found()
vlc_tests += {
'name': 'test_qt_ml_model',
'sources': files(
'tests/test_ml_model.cpp',
'tests/vlc_stub_modules.cpp',
'util/base_model.cpp',
'util/vlctick.cpp',
'medialibrary/mlbasemodel.cpp',
'medialibrary/medialib.cpp',
'medialibrary/mlthreadpool.cpp',
'playlist/playlist_controller.cpp',
'playlist/playlist_item.cpp',
),
'moc_sources': files(
'tests/test_ml_model.cpp'
),
'moc_headers': files(
'tests/vlc_stub_modules.cpp',
'util/base_model.hpp',
'util/listcache.hpp',
'util/locallistcacheloader.hpp',
'util/vlctick.hpp',
'medialibrary/mlqmltypes.hpp',
'medialibrary/mlbasemodel.hpp',
'medialibrary/medialib.hpp',
'medialibrary/mlthreadpool.hpp',
'playlist/playlist_controller.hpp',
'playlist/playlist_item.hpp',
),
'suite': ['qt'],
'include_directories' : qt_include_dir,
'link_with': [libvlccore, libvlc],
'link_args': qt_link_args,
'dependencies': [qt6_dep, qt_extra_deps, qtest_qt6_dep],
}
vlc_tests += {
'name': 'test_qt_navigation_model',
'sources': files(
'tests/vlc_stub_modules.cpp',
'tests/test_navigation_model.cpp',
'maininterface/navigationmodel.hpp',
'maininterface/navigationmodel.cpp'
),
'moc_sources': files(
'tests/test_navigation_model.cpp'
),
'moc_headers': files(
'maininterface/navigationmodel.hpp'
),
'suite': ['qt'],
'include_directories' : qt_include_dir,
'link_with': [libvlccore, libvlc],
'dependencies': [qt6_dep, qt_extra_deps, qtest_qt6_dep]
}
vlc_tests += {
'name': 'test_qt_csd_button_model',
'sources': files(
'tests/vlc_stub_modules.cpp',
'tests/test_qt_csd_button_model.cpp',
'util/csdbuttonmodel.hpp',
'util/csdbuttonmodel.cpp'
),
'moc_sources': files(
'tests/test_qt_csd_button_model.cpp'
),
'moc_headers': files(
'util/csdbuttonmodel.hpp'
),
'suite': ['qt'],
'include_directories' : qt_include_dir,
'link_with': [libvlccore, libvlc],
'dependencies': [qt6_dep, qt_extra_deps, qtest_qt6_dep]
}
vlc_tests += {
'name': 'test_qt_renderer_manager',
'sources': files(
'tests/vlc_stub_modules.cpp',
'tests/test_renderer_manager_model.cpp',
'util/renderer_manager.hpp',
'util/renderer_manager.cpp'
),
'moc_sources': files(
'tests/test_renderer_manager_model.cpp'
),
'moc_headers': files(
'util/renderer_manager.hpp'
),
'suite': ['qt'],
'include_directories' : qt_include_dir,
'link_with': [libvlccore, libvlc],
'link_args': qt_link_args,
'dependencies': [qt6_dep, qt_extra_deps, qtest_qt6_dep]
}
vlc_tests += {
'name': 'test_qt_thread_runner',
'sources': files(
'tests/test_thread_runner.cpp',
'medialibrary/mlthreadpool.cpp',
'medialibrary/mlthreadpool.hpp'
),
'moc_sources': files(
'tests/test_thread_runner.cpp'
),
'moc_headers': files(
'medialibrary/mlthreadpool.hpp'
),
'suite': ['qt'],
'include_directories' : qt_include_dir,
'link_args': qt_link_args,
'dependencies': [qt6_dep, qtest_qt6_dep]
}
vlc_tests += {
'name': 'test_qt_dialog_model',
'sources': files(
'tests/vlc_stub_modules.cpp',
'tests/test_vlc_dialog_model.cpp',
'dialogs/dialogs/dialogmodel.hpp',
'dialogs/dialogs/dialogmodel.cpp'
),
'moc_sources': files(
'tests/test_vlc_dialog_model.cpp'
),
'moc_headers': files(
'dialogs/dialogs/dialogmodel.hpp'
),
'suite': ['qt'],
'include_directories' : qt_include_dir,
'link_with': [libvlccore, libvlc],
'link_args': qt_link_args,
'dependencies': [qt6_dep, qt_extra_deps, qtest_qt6_dep],
}
endif
quicktest_qt6_dep = dependency('qt6', version: '=' + qt6_dep.version(), modules: ['QuickTest'], required: false)
if quicktest_qt6_dep.found() and qtest_qt6_dep.found()
qml_test_moc = qt6.compile_moc(
headers : files('tests/qml_test.hpp'),
dependencies : [quicktest_qt6_dep, qt6_dep]
)
qml_test = executable(
'qml_test',
[files('tests/qml_test.cpp', 'tests/qml_test.hpp'), qml_test_moc],
qt6pre_qrc,
build_by_default: false,
dependencies: [quicktest_qt6_dep, qt6_dep, qtest_qt6_dep],
link_with: qmllibs,
cpp_args: ['-DQUICK_TEST_SOURCE_DIR="' + meson.current_source_dir() + '/tests"']
)
foreach test_name, test_file : qml_tests
test(test_name, qml_test, args: ['-input', test_file], suite:'qt')
endforeach
endif
endif