X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=meson.build;h=c5c78fc2bf70546a9ee30822b2f17c076e775ddc;hb=499d3cd726a4ca9cbbdd4b4fe9ccdca78ef538ba;hp=e670015744a26d438ab7a1a2c9c7131f24326157;hpb=f89fc3441ba97b4bebf23ff018a3b5abf12c57cf;p=platform%2Fupstream%2Fgstreamer.git diff --git a/meson.build b/meson.build index e670015..c5c78fc 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-ugly', 'c', - version : '1.15.0.1', - meson_version : '>= 0.47', + version : '1.19.2', + meson_version : '>= 0.54', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -16,14 +16,15 @@ else endif gst_version_is_dev = gst_version_minor % 2 == 1 and gst_version_micro < 90 -have_cxx = add_languages('cpp', required : false) +have_cxx = add_languages('cpp', native: false, required: false) -glib_req = '>= 2.40.0' +glib_req = '>= 2.56.0' gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor) api_version = '1.0' -plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir')) +plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') +plugins = [] cc = meson.get_compiler('c') if have_cxx @@ -31,17 +32,27 @@ if have_cxx endif if cc.get_id() == 'msvc' - # Ignore several spurious warnings for things gstreamer does very commonly - # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it - # If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once - # NOTE: Only add warnings here if you are sure they're spurious - add_project_arguments( + msvc_args = [ + # Ignore several spurious warnings for things gstreamer does very commonly + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it + # If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once + # NOTE: Only add warnings here if you are sure they're spurious '/wd4018', # implicit signed/unsigned conversion '/wd4146', # unary minus on unsigned (beware INT_MIN) '/wd4244', # lossy type conversion (e.g. double -> int) '/wd4305', # truncating type conversion (e.g. double -> float) cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8 - language : 'c') + + # Enable some warnings on MSVC to match GCC/Clang behaviour + '/w14062', # enumerator 'identifier' in switch of enum 'enumeration' is not handled + '/w14101', # 'identifier' : unreferenced local variable + '/w14189', # 'identifier' : local variable is initialized but not referenced + ] + if have_cxx + add_project_arguments(msvc_args, language: ['c', 'cpp']) + else + add_project_arguments(msvc_args, language: 'c') + endif # Disable SAFESEH with MSVC for plugins and libs that use external deps that # are built with MinGW noseh_link_args = ['/SAFESEH:NO'] @@ -147,17 +158,25 @@ gstcheck_dep = dependency('gstreamer-check-1.0', version : gst_req, gstcontroller_dep = dependency('gstreamer-controller-1.0', version : gst_req, fallback : ['gstreamer', 'gst_controller_dep']) -orc_dep = dependency('orc-0.4', version : '>= 0.4.16', required : get_option('orc')) +orc_dep = dependency('orc-0.4', version : '>= 0.4.16', required : get_option('orc'), + fallback : ['orc', 'orc_dep']) if orc_dep.found() cdata.set('HAVE_ORC', 1) # used by a52dec for cpu detection else cdata.set('DISABLE_ORC', 1) endif +gmodule_dep = dependency('gmodule-2.0', fallback : ['glib', 'libgmodule_dep']) + +if gmodule_dep.version().version_compare('< 2.67.4') + cdata.set('g_memdup2(ptr,sz)', '(G_LIKELY(((guint64)(sz)) < G_MAXUINT)) ? g_memdup(ptr,sz) : (g_abort(),NULL)') +endif + ugly_args = ['-DHAVE_CONFIG_H'] configinc = include_directories('.') libsinc = include_directories('gst-libs') +# Disable compiler warnings for unused variables and args if gst debug system is disabled if gst_dep.type_name() == 'internal' gst_debug_disabled = not subproject('gstreamer').get_variable('gst_debug') else @@ -166,8 +185,16 @@ else gst_debug_disabled = cc.has_header_symbol('gst/gstconfig.h', 'GST_DISABLE_GST_DEBUG', dependencies: gst_dep) endif -if gst_debug_disabled and cc.has_argument('-Wno-unused') - add_project_arguments('-Wno-unused', language: 'c') +if gst_debug_disabled + message('GStreamer debug system is disabled') + if cc.has_argument('-Wno-unused') + add_project_arguments('-Wno-unused', language: 'c') + endif + if have_cxx and cxx.has_argument ('-Wno-unused') + add_project_arguments('-Wno-unused', language: 'cpp') + endif +else + message('GStreamer debug system is enabled') endif warning_flags = [ @@ -244,6 +271,7 @@ if get_option('default_library') == 'shared' plugins_pkgconfig_install_dir = disabler() endif +python3 = import('python').find_installation() subdir('gst') subdir('ext') subdir('tests') @@ -253,8 +281,38 @@ if find_program('xgettext', required : get_option('nls')).found() cdata.set('ENABLE_NLS', 1) subdir('po') endif +subdir('docs') +subdir('scripts') + +# Set release date +if gst_version_nano == 0 + extract_release_date = find_program('scripts/extract-release-date-from-doap-file.py') + run_result = run_command(extract_release_date, gst_version, files('gst-plugins-ugly.doap')) + if run_result.returncode() == 0 + release_date = run_result.stdout().strip() + cdata.set_quoted('GST_PACKAGE_RELEASE_DATETIME', release_date) + message('Package release date: ' + release_date) + else + # Error out if our release can't be found in the .doap file + error(run_result.stderr()) + endif +endif configure_file(output : 'config.h', configuration : cdata) -python3 = import('python').find_installation() run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")') + +if meson.version().version_compare('>= 0.54') + plugin_names = [] + foreach plugin: plugins + # FIXME: Use str.subtring() when we can depend on Meson 0.56 + split = plugin.name().split('gst') + if split.length() == 2 + plugin_names += [split[1]] + else + warning('Need substring API in meson >= 0.56 to properly parse plugin name: ' + plugin.name()) + plugin_names += [plugin.name()] + endif + endforeach + summary({'Plugins':plugin_names}, list_sep: ', ') +endif