queue: Allow re-usability after EOS
[platform/upstream/gstreamer.git] / meson.build
index 83c34cc..bfc3ae2 100644 (file)
@@ -48,31 +48,35 @@ elif cc.has_argument('-Wl,-Bsymbolic-functions')
   # FIXME: Add FATAL_WARNINGS from configure.ac
 endif
 
+# Symbol visibility
+have_visibility_hidden = cc.has_argument('-fvisibility=hidden')
+if have_visibility_hidden
+  add_project_arguments('-fvisibility=hidden', language: 'c')
+endif
+
 cdata = configuration_data()
-cdata.set('GST_VERSION_MAJOR', gst_version_major)
-cdata.set('GST_VERSION_MINOR', gst_version_minor)
-cdata.set('GST_VERSION_MICRO', gst_version_micro)
-cdata.set('GST_VERSION_NANO', gst_version_nano)
-cdata.set('GST_API_VERSION', '"@0@"'.format(apiversion))
-cdata.set('GST_DATADIR', '"@0@/@1@"'.format(prefix, get_option('datadir')))
-cdata.set('LOCALEDIR', '"@0@/@1@"'.format(prefix, get_option('localedir')))
-cdata.set('LIBDIR', '"@0@/@1@"'.format(prefix, get_option('libdir')))
-cdata.set('GST_API_VERSION', '"1.0"')
-cdata.set('GETTEXT_PACKAGE', '"gstreamer-1.0"')
-cdata.set('GST_LICENSE', '"LGPL"')
-cdata.set('PACKAGE', '"gstreamer"')
-cdata.set('PACKAGE_NAME', '"GStreamer"')
-cdata.set('PACKAGE_STRING', '"GStreamer @0@"'.format(gst_version))
-cdata.set('PACKAGE_TARNAME', '"gstreamer"')
-cdata.set('PACKAGE_BUGREPORT', '"http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"')
-cdata.set('PACKAGE_URL', '""')
-cdata.set('PACKAGE_VERSION', '"@0@"'.format(gst_version))
-cdata.set('PLUGINDIR', '"@0@/@1@/gstreamer-1.0"'.format(get_option('prefix'),get_option('libdir')))
-cdata.set('VERSION', '"@0@"'.format(gst_version))
+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')))
+cdata.set_quoted('LIBDIR', join_paths(prefix, get_option('libdir')))
+cdata.set_quoted('GST_API_VERSION', '1.0')
+cdata.set_quoted('GETTEXT_PACKAGE', 'gstreamer-1.0')
+cdata.set_quoted('GST_LICENSE', 'LGPL')
+cdata.set_quoted('PACKAGE', 'gstreamer')
+cdata.set_quoted('PACKAGE_NAME', 'GStreamer')
+cdata.set_quoted('PACKAGE_STRING', 'GStreamer @0@'.format(gst_version))
+cdata.set_quoted('PACKAGE_TARNAME', 'gstreamer')
+cdata.set_quoted('PACKAGE_BUGREPORT', 'http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer')
+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('GST_PLUGIN_SCANNER_INSTALLED', '"@0@/@1@/gst-plugin-scanner"'.format(prefix, helpers_install_dir))
-cdata.set('GST_PTP_HELPER_INSTALLED', '"@0@/@1@/gst-ptp-helper"'.format(prefix, helpers_install_dir))
+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')
 
 if gst_version_nano > 0
     # Have GST_ERROR message printed when running from git
@@ -85,13 +89,14 @@ endif
 gst_package_name = get_option('with-package-name')
 if gst_package_name == ''
   if gst_version_nano == 0
-    cdata.set_quoted('GST_PACKAGE_NAME', 'GStreamer source release')
+    gst_package_name = 'GStreamer source release'
   elif gst_version_nano == 1
-    cdata.set_quoted('GST_PACKAGE_NAME', 'GStreamer git')
+    gst_package_name = 'GStreamer git'
   else
-    cdata.set_quoted('GST_PACKAGE_NAME', 'GStreamer prerelease')
+    gst_package_name = 'GStreamer prerelease'
   endif
 endif
+cdata.set_quoted('GST_PACKAGE_NAME', gst_package_name)
 cdata.set_quoted('GST_PACKAGE_ORIGIN', get_option('with-package-origin'))
 
 # These are only needed/used by the ABI tests
@@ -116,7 +121,7 @@ foreach h : host_defines
   endif
 endforeach
 # FIXME: should really be called HOST_CPU or such
-cdata.set('TARGET_CPU', '"@0@"'.format(host_machine.cpu()))
+cdata.set_quoted('TARGET_CPU', host_machine.cpu())
 
 check_headers = [
   'dlfcn.h',
@@ -165,6 +170,7 @@ check_functions = [
   'fseeko',
   'ftello',
   'poll',
+  'ppoll',
   'pselect',
   'getpagesize',
   'clock_gettime',
@@ -320,8 +326,7 @@ if cc.has_header('execinfo.h')
 endif
 
 disable_gst_debug = get_option('disable_gst_debug')
-if get_option('disable_gst_debug')
-    cdata.set('GST_DISABLE_GST_DEBUG_DEFINE', '#define GST_DISABLE_GST_DEBUG 1')
+if disable_gst_debug
   add_project_arguments(['-Wno-unused'], language: 'c')
 endif
 
@@ -343,13 +348,20 @@ libsinc = include_directories('libs')
 privinc = include_directories('gst')
 
 # Find dependencies
-glib_dep = dependency('glib-2.0', version : '>=2.32.0')
-gobject_dep = dependency('gobject-2.0')
-gmodule_dep = dependency('gmodule-2.0')
+glib_dep = dependency('glib-2.0', version : '>=2.32.0',
+  fallback: ['glib', 'libglib_dep'])
+gobject_dep = dependency('gobject-2.0',
+  fallback: ['glib', 'libgobject_dep'])
+gmodule_dep = dependency('gmodule-2.0',
+  fallback: ['glib', 'libgmodule_dep'])
 if host_machine.system() == 'windows'
-    gio_dep = dependency('gio-2.0')
+    gio_dep = dependency('gio-2.0',
+        fallback: ['glib', 'libgio_dep'])
 else
-    gio_dep = [dependency('gio-2.0'), dependency('gio-unix-2.0')]
+    gio_dep = [dependency('gio-2.0',
+                  fallback: ['glib', 'libgio_dep']),
+               dependency('gio-unix-2.0',
+                  fallback: ['glib', 'libgio_dep'])]
 endif
 
 mathlib = cc.find_library('m', required : false)
@@ -380,11 +392,7 @@ if libtype == 'static'
 endif
 
 # Used in gst/parse/meson.build and below
-py3 = find_program('python3', required : false)
-if not py3.found()
-  # Maybe 'python' is Python 3
-  py3 = find_program('python')
-endif
+python3 = import('python3').find_python()
 
 bashcomp_dep = dependency('bash-completion', version : '>= 2.0', required : false)
 
@@ -397,7 +405,7 @@ if bashcomp_found
   pkgconfig = find_program('pkg-config')
 
   runcmd = run_command(pkgconfig,
-      '--define-variable=prefix="."',
+      '--define-variable=prefix=.',
       '--variable=completionsdir',
       'bash-completion')
 
@@ -409,7 +417,7 @@ if bashcomp_found
   endif
 
   runcmd = run_command(pkgconfig,
-      '--define-variable=prefix="."',
+      '--define-variable=prefix=.',
       '--variable=helpersdir',
       'bash-completion')
 
@@ -430,9 +438,7 @@ subdir('tests')
 subdir('po')
 subdir('data')
 
-configure_file(input : 'config.h.meson',
-  output : 'config.h',
-  configuration : cdata)
+configure_file(output : 'config.h', configuration : cdata)
 
 if build_machine.system() == 'windows'
   message('Disabling gtk-doc while building on Windows')
@@ -446,6 +452,6 @@ else
   endif
 endif
 
-run_command(py3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
+run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
 
 install_data('gst-element-check-1.0.m4', install_dir : join_paths(get_option('datadir'), 'aclocal'))