mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 22:41:43 +00:00
b509809f34
GModule requires the .so file extension on macOS for historic reasons. However Meson defaults to .dylib for modules, so we need to override it to get the correct extension. Fixes #3645.
65 lines
1.7 KiB
Meson
65 lines
1.7 KiB
Meson
media_subdir = 'gtk-4.0/@0@/media'.format(gtk_binary_version)
|
|
media_install_dir = join_paths(get_option('libdir'), media_subdir)
|
|
media_backends = []
|
|
|
|
extra_c_args = [
|
|
'-DGTK_COMPILATION',
|
|
'-D_GLIB_EXTERN=@0@'.format(visibility_define),
|
|
]
|
|
|
|
extra_c_args += common_cflags
|
|
|
|
ffmpeg_opt = get_option('media-ffmpeg')
|
|
ffmpeg_versions = {
|
|
'libavfilter': '>= 6.47.100',
|
|
'libavformat': '>= 57.41.100',
|
|
'libavcodec': '>= 57.48.101',
|
|
'libavutil': '>= 55.28.100',
|
|
'libswscale': '>= 4.6.100',
|
|
}
|
|
ffmpeg_deps = []
|
|
ffmpeg_found = true
|
|
foreach name, version : ffmpeg_versions
|
|
dep = dependency(name, version: version, required: ffmpeg_opt)
|
|
ffmpeg_deps += dep
|
|
if not dep.found()
|
|
ffmpeg_found = false
|
|
break
|
|
endif
|
|
endforeach
|
|
|
|
if ffmpeg_found
|
|
media_backends += 'ffmpeg'
|
|
cdata.set('HAVE_FFMPEG', 1)
|
|
shared_module('media-ffmpeg',
|
|
sources: 'gtkffmediafile.c',
|
|
c_args: extra_c_args,
|
|
dependencies: [ libgtk_dep, ffmpeg_deps ],
|
|
name_suffix: module_suffix,
|
|
install_dir: media_install_dir,
|
|
install: true,
|
|
)
|
|
endif
|
|
|
|
gstplayer_dep = dependency('gstreamer-player-1.0', version: '>= 1.12.3',
|
|
required: get_option('media-gstreamer'))
|
|
gstgl_dep = dependency('gstreamer-gl-1.0', version: '>= 1.12.3',
|
|
required: get_option('media-gstreamer'))
|
|
|
|
if gstplayer_dep.found() and gstgl_dep.found()
|
|
media_backends += 'gstreamer'
|
|
cdata.set('HAVE_GSTREAMER', 1)
|
|
shared_module('media-gstreamer',
|
|
sources: [
|
|
'gtkgstmediafile.c',
|
|
'gtkgstpaintable.c',
|
|
'gtkgstsink.c',
|
|
],
|
|
c_args: extra_c_args,
|
|
dependencies: [ libm, libgtk_dep, gstplayer_dep, gstgl_dep ],
|
|
name_suffix: module_suffix,
|
|
install_dir: media_install_dir,
|
|
install: true,
|
|
)
|
|
endif
|