X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=meson.build;h=e738c557f0d9b3d2b77b9cdde6cd4cbf0b20091b;hb=04a637ae64582e8830205c42cc6d9ef4aabc969a;hp=834e15d45edfb1125271a3e3b67c78c6a8735dda;hpb=d11450f23891a2cb77e85fe5a3f96bf89d61ebe8;p=platform%2Fupstream%2Fgstreamer.git diff --git a/meson.build b/meson.build index 834e15d..e738c55 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gstreamer', 'c', - version : '1.15.0.1', + version : '1.16.0', meson_version : '>= 0.47', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) @@ -14,6 +14,7 @@ if version_arr.length() == 4 else gst_version_nano = 0 endif +gst_version_is_dev = gst_version_minor % 2 == 1 and gst_version_micro < 90 host_system = host_machine.system() @@ -21,7 +22,9 @@ apiversion = '1.0' soversion = 0 # maintaining compatibility with the previous libtool versioning # current = minor * 100 + micro -libversion = '@0@.@1@.0'.format(soversion, gst_version_minor * 100 + gst_version_micro) +curversion = gst_version_minor * 100 + gst_version_micro +libversion = '@0@.@1@.0'.format(soversion, curversion) +osxversion = curversion + 1 prefix = get_option('prefix') @@ -30,6 +33,8 @@ helpers_install_dir = join_paths(libexecdir, 'gstreamer-1.0') cc = meson.get_compiler('c') +cdata = configuration_data() + # 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 @@ -40,6 +45,7 @@ if cc.get_id() == 'msvc' '/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') elif cc.has_link_argument('-Wl,-Bsymbolic-functions') # FIXME: Add an option for this if people ask for it @@ -47,17 +53,49 @@ elif cc.has_link_argument('-Wl,-Bsymbolic-functions') endif # Symbol visibility -have_visibility_hidden = cc.has_argument('-fvisibility=hidden') -if have_visibility_hidden +have_visibility_hidden = false +if cc.get_id() == 'msvc' + export_define = '__declspec(dllexport) extern' +elif cc.has_argument('-fvisibility=hidden') add_project_arguments('-fvisibility=hidden', language: 'c') + export_define = 'extern __attribute__ ((visibility ("default")))' + have_visibility_hidden = true +else + export_define = 'extern' endif +# Passing this through the command line would be too messy +cdata.set('GST_API_EXPORT', export_define) + # Disable strict aliasing if cc.has_argument('-fno-strict-aliasing') add_project_arguments('-fno-strict-aliasing', language: 'c') endif -cdata = configuration_data() +# Define G_DISABLE_DEPRECATED for development versions +if gst_version_is_dev + message('Disabling deprecated GLib API') + add_project_arguments('-DG_DISABLE_DEPRECATED', language: 'c') +endif + +cast_checks = get_option('gobject-cast-checks') +if cast_checks.disabled() or (cast_checks.auto() and not gst_version_is_dev) + message('Disabling GLib cast checks') + add_project_arguments('-DG_DISABLE_CAST_CHECKS', language: 'c') +endif + +glib_asserts = get_option('glib-asserts') +if glib_asserts.disabled() or (glib_asserts.auto() and not gst_version_is_dev) + message('Disabling GLib asserts') + add_project_arguments('-DG_DISABLE_ASSERT', language: 'c') +endif + +glib_checks = get_option('glib-checks') +if glib_checks.disabled() or (glib_checks.auto() and not gst_version_is_dev) + message('Disabling GLib checks') + add_project_arguments('-DG_DISABLE_CHECKS', language: 'c') +endif + cdata.set_quoted('GST_API_VERSION', apiversion) cdata.set_quoted('GST_DATADIR', join_paths(prefix, get_option('datadir'))) cdata.set_quoted('LOCALEDIR', join_paths(prefix, get_option('localedir'))) @@ -74,15 +112,22 @@ cdata.set_quoted('PACKAGE_URL', '') cdata.set_quoted('PACKAGE_VERSION', gst_version) cdata.set_quoted('PLUGINDIR', join_paths(get_option('prefix'), get_option('libdir'), 'gstreamer-1.0')) cdata.set_quoted('VERSION', gst_version) -# FIXME: --with-memory-alignment],[8,N,malloc,pagesize (default is 32)]) option -cdata.set('MEMORY_ALIGNMENT_MALLOC', 1) cdata.set_quoted('GST_PLUGIN_SCANNER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-plugin-scanner')) cdata.set_quoted('GST_PTP_HELPER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-ptp-helper')) cdata.set_quoted('GST_PLUGIN_SCANNER_SUBDIR', libexecdir, description: 'libexecdir path component, used to find plugin-scanner on relocatable builds on windows') cdata.set('GST_DISABLE_OPTION_PARSING', not get_option('option-parsing')) -if host_system == 'darwin' +mem_align_opt = get_option('memory-alignment') +if mem_align_opt == 'malloc' + cdata.set('MEMORY_ALIGNMENT_MALLOC', 1) +elif mem_align_opt == 'pagesize' + cdata.set('MEMORY_ALIGNMENT_PAGESIZE', 1) +else + cdata.set('MEMORY_ALIGNMENT', mem_align_opt.to_int()) +endif + +if ['darwin', 'ios'].contains(host_system) cdata.set_quoted('GST_EXTRA_MODULE_SUFFIX', '.dylib') endif @@ -302,8 +347,9 @@ endif backtrace_deps = [] unwind_dep = dependency('libunwind', required : get_option('libunwind')) -dw_dep = dependency('libdw', required: get_option('libunwind')) -backtrace_deps = [unwind_dep, dw_dep] +dw_dep = dependency('libdw', required: get_option('libdw')) +dbghelp_dep = dependency('DbgHelp', required : get_option('dbghelp')) +backtrace_deps = [unwind_dep, dw_dep, dbghelp_dep] if unwind_dep.found() cdata.set('HAVE_UNWIND', 1) if dw_dep.found() @@ -311,12 +357,12 @@ if unwind_dep.found() else message('Support for backtraces is partial only.') endif +elif cc.has_function('backtrace') + cdata.set('HAVE_BACKTRACE', 1) +elif dbghelp_dep.found() + cdata.set('HAVE_DBGHELP', 1) else - if cc.has_function('backtrace') - cdata.set('HAVE_BACKTRACE', 1) - else - message('NO backtraces support.') - endif + message('NO backtraces support.') endif if cc.has_header('execinfo.h') @@ -351,7 +397,6 @@ warning_flags = [ '-Waddress', '-Waggregate-return', '-Wno-multichar', - '-Wnested-externs', '-Wdeclaration-after-statement', '-Wvla', '-Wpointer-arith', @@ -382,7 +427,7 @@ libsinc = include_directories('libs') privinc = include_directories('gst') # Find dependencies -glib_dep = dependency('glib-2.0', version : '>=2.32.0', +glib_dep = dependency('glib-2.0', version : '>=2.40.0', fallback: ['glib', 'libglib_dep']) gobject_dep = dependency('gobject-2.0', fallback: ['glib', 'libgobject_dep']) @@ -413,7 +458,7 @@ gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + 'g_setenv("GST_REGISTRY_1.0", "/no/way/this/exists.reg", TRUE);' + \ 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \ 'g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);' + \ - 'gst_init(NULL,NULL);' ] + 'gst_init(NULL,NULL);', '--quiet'] gst_c_args = ['-DHAVE_CONFIG_H'] @@ -425,7 +470,7 @@ if get_option('default_library') == 'static' endif # Used in gst/parse/meson.build and below -python3 = import('python3').find_python() +python3 = import('python').find_installation() bashcomp_option = get_option('bash-completion') bashcomp_dep = dependency('bash-completion', version : '>= 2.0', required : bashcomp_option) @@ -458,6 +503,15 @@ if bashcomp_dep.found() endif endif +plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') + +pkgconfig = import('pkgconfig') +plugins_pkgconfig_install_dir = join_paths(plugins_install_dir, 'pkgconfig') +if get_option('default_library') == 'shared' + # If we don't build static plugins there is no need to generate pc files + plugins_pkgconfig_install_dir = disabler() +endif + subdir('gst') subdir('libs') subdir('plugins')