gtk2/modules/media/meson.build
Chun-wei Fan 5383d11bb4 modules/media/meson.build: Export needed symbols on MSVC
We need to override _GLIB_EXTERN to export the required symbols for the
GIO module on Visual Studio, so that the media modules can be
successfully loaded.
2018-12-06 17:07:33 +08:00

63 lines
2.1 KiB
Meson

all_media_backends = [
'ffmpeg',
'gstreamer'
]
enabled_media_backends = get_option('media').split(',')
if enabled_media_backends.contains('none')
media_backends = []
elif enabled_media_backends.contains('all')
media_backends = all_media_backends
else
media_backends = []
foreach b: enabled_media_backends
if all_media_backends.contains(b)
media_backends += b
else
error('No media backend named "@0@" exists.'.format (b))
endif
endforeach
endif
media_subdir = 'gtk-4.0/@0@/media'.format(gtk_binary_version)
media_install_dir = join_paths(get_option('libdir'), media_subdir)
extra_c_args = ['-DGTK_COMPILATION']
# Detect and set symbol visibility
if cc.get_id() == 'msvc'
extra_c_args += ['-D_GLIB_EXTERN=__declspec (dllexport) extern']
endif
if media_backends.contains('ffmpeg')
libavfilter_dep = dependency('libavfilter', version: '>= 6.47.100', required: true)
libavformat_dep = dependency('libavformat', version: '>= 57.41.100', required: true)
libavcodec_dep = dependency('libavcodec', version: '>= 57.48.101', required: true)
libavutil_dep = dependency('libavutil', version: '>= 55.28.100', required: true)
libswscale_dep = dependency('libswscale', version: '>= 4.6.100', required: true)
ffmpeg_deps = [libavfilter_dep, libavformat_dep, libavcodec_dep, libavutil_dep, libswscale_dep]
cdata.set('HAVE_FFMPEG', 1)
shared_module('media-ffmpeg',
'gtkffmediafile.c',
c_args: extra_c_args,
dependencies: [ libgtk_dep, ffmpeg_deps ],
install_dir: media_install_dir,
install : true)
endif
if media_backends.contains('gstreamer')
gstplayer_dep = dependency('gstreamer-player-1.0', version: '>= 1.12.3', required: true)
cdata.set('HAVE_GSTREAMER', 1)
shared_module('media-gstreamer',
'gtkgstmediafile.c',
'gtkgstpaintable.c',
'gtkgstsink.c',
c_args: extra_c_args,
dependencies: [ libgtk_dep, gstplayer_dep ],
install_dir: media_install_dir,
install : true)
endif