1soup_sources = [ 2 'gstsoup.c', 3 'gstsoupelement.c', 4 'gstsouphttpclientsink.c', 5 'gstsouphttpsrc.c', 6 'gstsouploader.c', 7 'gstsouputils.c', 8] 9 10soup_opt = get_option('soup') 11if soup_opt.disabled() 12 subdir_done() 13endif 14 15gmodule_dep = dependency('gmodule-2.0', fallback: ['glib', 'libgmodule_dep']) 16gobject_dep = dependency('gobject-2.0', fallback: ['glib', 'libgobject_dep']) 17 18libdl_dep = cc.find_library('dl', required: false) 19 20static_args = [] 21static_deps = [] 22default_library = get_option('default_library') 23if default_library in ['static', 'both'] 24 libsoup2_dep = dependency('libsoup-2.4', version : '>=2.48', 25 required : false, fallback : ['libsoup', 'libsoup_dep'], 26 default_options: ['sysprof=disabled']) 27 libsoup3_dep = dependency('libsoup-3.0', required : false, 28 fallback : ['libsoup3', 'libsoup_dep']) 29 if not libsoup2_dep.found() and not libsoup3_dep.found() 30 if soup_opt.enabled() 31 error('Either libsoup2 or libsoup3 is needed') 32 endif 33 subdir_done() 34 endif 35 if libsoup3_dep.found() 36 static_deps += libsoup3_dep 37 static_args += '-DSTATIC_SOUP=3' 38 message('soup plugin: using libsoup-3.0 for static build') 39 elif libsoup2_dep.found() 40 static_deps += libsoup2_dep 41 static_args += '-DSTATIC_SOUP=2' 42 message('soup plugin: using libsoup-2.4 for static build') 43 endif 44endif 45 46soup_library_kwargs = { 47 'sources' : soup_sources, 48 'link_args' : noseh_link_args, 49 'include_directories' : [configinc, libsinc], 50 'install' : true, 51 'install_dir' : plugins_install_dir, 52} 53soup_library_deps = [gst_dep, gstbase_dep, gsttag_dep, gmodule_dep, gobject_dep, gio_dep, libdl_dep] 54soup_library_c_args = gst_plugins_good_args 55 56if default_library in ['shared', 'both'] 57 gstsouphttpsrc_shared = shared_library('gstsoup', 58 c_args : soup_library_c_args, 59 dependencies : soup_library_deps, 60 kwargs: soup_library_kwargs, 61 ) 62endif 63 64if default_library in ['static', 'both'] 65 gstsouphttpsrc_static = static_library('gstsoup', 66 c_args : soup_library_c_args + static_args, 67 dependencies : soup_library_deps + static_deps, 68 kwargs: soup_library_kwargs, 69 ) 70endif 71 72# Use the static library to generate the .pc file if it's available. The shared 73# library .pc file does not have a Requires: on libsoup-2.4, and we use plugin 74# .pc files to generate dependencies for linking plugins statically. 75if default_library == 'shared' 76 pkgconfig.generate(gstsouphttpsrc_shared, install_dir : plugins_pkgconfig_install_dir) 77else 78 pkgconfig.generate(gstsouphttpsrc_static, install_dir : plugins_pkgconfig_install_dir) 79endif 80 81# Add the shared library to the plugins list if available. We pass this list of 82# plugins to hotdoc to generate the plugins cache, which introspects the plugin 83# by loading it. We need the shared plugin for that. 84if default_library == 'static' 85 plugins += [gstsouphttpsrc_static] 86else 87 plugins += [gstsouphttpsrc_shared] 88endif 89