Blame meson.build

Packit Service 963350
project('gstreamer', 'c',
Packit Service 963350
  version : '1.14.1',
Packit Service 963350
  meson_version : '>= 0.40.1',
Packit Service 963350
  default_options : [ 'warning_level=1',
Packit Service 963350
                      'buildtype=debugoptimized' ])
Packit Service 963350
Packit Service 963350
gst_version = meson.project_version()
Packit Service 963350
version_arr = gst_version.split('.')
Packit Service 963350
gst_version_major = version_arr[0].to_int()
Packit Service 963350
gst_version_minor = version_arr[1].to_int()
Packit Service 963350
gst_version_micro = version_arr[2].to_int()
Packit Service 963350
if version_arr.length() == 4
Packit Service 963350
  gst_version_nano = version_arr[3].to_int()
Packit Service 963350
else
Packit Service 963350
  gst_version_nano = 0
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
host_system = host_machine.system()
Packit Service 963350
Packit Service 963350
apiversion = '1.0'
Packit Service 963350
soversion = 0
Packit Service 963350
# maintaining compatibility with the previous libtool versioning
Packit Service 963350
# current = minor * 100 + micro
Packit Service 963350
libversion = '@0@.@1@.0'.format(soversion, gst_version_minor * 100 + gst_version_micro)
Packit Service 963350
Packit Service 963350
prefix = get_option('prefix')
Packit Service 963350
libtype = get_option('library_format')
Packit Service 963350
Packit Service 963350
libexecdir = get_option('libexecdir')
Packit Service 963350
helpers_install_dir = join_paths(libexecdir, 'gstreamer-1.0')
Packit Service 963350
Packit Service 963350
cc = meson.get_compiler('c')
Packit Service 963350
Packit Service 963350
# Ignore several spurious warnings for things gstreamer does very commonly
Packit Service 963350
# If a warning is completely useless and spammy, use '/wdXXXX' to suppress it
Packit Service 963350
# If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once
Packit Service 963350
# NOTE: Only add warnings here if you are sure they're spurious
Packit Service 963350
if cc.get_id() == 'msvc'
Packit Service 963350
  add_project_arguments(
Packit Service 963350
      '/wd4018', # implicit signed/unsigned conversion
Packit Service 963350
      '/wd4146', # unary minus on unsigned (beware INT_MIN)
Packit Service 963350
      '/wd4244', # lossy type conversion (e.g. double -> int)
Packit Service 963350
      '/wd4305', # truncating type conversion (e.g. double -> float)
Packit Service 963350
      language : 'c')
Packit Service 963350
elif cc.has_argument('-Wl,-Bsymbolic-functions')
Packit Service 963350
  # FIXME: Add an option for this if people ask for it
Packit Service 963350
  add_project_link_arguments('-Wl,-Bsymbolic-functions', language : 'c')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Symbol visibility
Packit Service 963350
have_visibility_hidden = cc.has_argument('-fvisibility=hidden')
Packit Service 963350
if have_visibility_hidden
Packit Service 963350
  add_project_arguments('-fvisibility=hidden', language: 'c')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Disable strict aliasing
Packit Service 963350
if cc.has_argument('-fno-strict-aliasing')
Packit Service 963350
  add_project_arguments('-fno-strict-aliasing', language: 'c')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
cdata = configuration_data()
Packit Service 963350
cdata.set_quoted('GST_API_VERSION', apiversion)
Packit Service 963350
cdata.set_quoted('GST_DATADIR', join_paths(prefix, get_option('datadir')))
Packit Service 963350
cdata.set_quoted('LOCALEDIR', join_paths(prefix, get_option('localedir')))
Packit Service 963350
cdata.set_quoted('LIBDIR', join_paths(prefix, get_option('libdir')))
Packit Service 963350
cdata.set_quoted('GST_API_VERSION', '1.0')
Packit Service 963350
cdata.set_quoted('GETTEXT_PACKAGE', 'gstreamer-1.0')
Packit Service 963350
cdata.set_quoted('GST_LICENSE', 'LGPL')
Packit Service 963350
cdata.set_quoted('PACKAGE', 'gstreamer')
Packit Service 963350
cdata.set_quoted('PACKAGE_NAME', 'GStreamer')
Packit Service 963350
cdata.set_quoted('PACKAGE_STRING', 'GStreamer @0@'.format(gst_version))
Packit Service 963350
cdata.set_quoted('PACKAGE_TARNAME', 'gstreamer')
Packit Service 963350
cdata.set_quoted('PACKAGE_BUGREPORT', 'http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer')
Packit Service 963350
cdata.set_quoted('PACKAGE_URL', '')
Packit Service 963350
cdata.set_quoted('PACKAGE_VERSION', gst_version)
Packit Service 963350
cdata.set_quoted('PLUGINDIR', join_paths(get_option('prefix'), get_option('libdir'), 'gstreamer-1.0'))
Packit Service 963350
cdata.set_quoted('VERSION', gst_version)
Packit Service 963350
# FIXME: --with-memory-alignment],[8,N,malloc,pagesize (default is 32)]) option
Packit Service 963350
cdata.set('MEMORY_ALIGNMENT_MALLOC', 1)
Packit Service 963350
cdata.set_quoted('GST_PLUGIN_SCANNER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-plugin-scanner'))
Packit Service 963350
cdata.set_quoted('GST_PTP_HELPER_INSTALLED', join_paths(prefix, helpers_install_dir, 'gst-ptp-helper'))
Packit Service 963350
cdata.set_quoted('GST_PLUGIN_SCANNER_SUBDIR', libexecdir,
Packit Service 963350
  description: 'libexecdir path component, used to find plugin-scanner on relocatable builds on windows')
Packit Service 963350
Packit Service 963350
if host_system == 'darwin'
Packit Service 963350
  cdata.set_quoted('GST_EXTRA_MODULE_SUFFIX', '.dylib')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
if gst_version_nano > 0
Packit Service 963350
    # Have GST_ERROR message printed when running from git
Packit Service 963350
    cdata.set('GST_LEVEL_DEFAULT', 'GST_LEVEL_ERROR')
Packit Service 963350
else
Packit Service 963350
    cdata.set('GST_LEVEL_DEFAULT', 'GST_LEVEL_NONE')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# GStreamer package name and origin url
Packit Service 963350
gst_package_name = get_option('with-package-name')
Packit Service 963350
if gst_package_name == ''
Packit Service 963350
  if gst_version_nano == 0
Packit Service 963350
    gst_package_name = 'GStreamer source release'
Packit Service 963350
  elif gst_version_nano == 1
Packit Service 963350
    gst_package_name = 'GStreamer git'
Packit Service 963350
  else
Packit Service 963350
    gst_package_name = 'GStreamer prerelease'
Packit Service 963350
  endif
Packit Service 963350
endif
Packit Service 963350
cdata.set_quoted('GST_PACKAGE_NAME', gst_package_name)
Packit Service 963350
cdata.set_quoted('GST_PACKAGE_ORIGIN', get_option('with-package-origin'))
Packit Service 963350
Packit Service 963350
# These are only needed/used by the ABI tests
Packit Service 963350
host_defines = [
Packit Service 963350
  [ 'x86', 'HAVE_CPU_I386' ],
Packit Service 963350
  [ 'x86_64', 'HAVE_CPU_X86_64' ],
Packit Service 963350
  [ 'arm', 'HAVE_CPU_ARM' ],
Packit Service 963350
  [ 'aarch64', 'HAVE_CPU_AARCH64' ],
Packit Service 963350
  [ 'mips', 'HAVE_CPU_MIPS' ],
Packit Service 963350
  [ 'powerpc', 'HAVE_CPU_PPC' ],
Packit Service 963350
  [ 'powerpc64', 'HAVE_CPU_PPC64' ],
Packit Service 963350
  [ 'alpha', 'HAVE_CPU_ALPHA' ],
Packit Service 963350
  [ 'sparc', 'HAVE_CPU_SPARC' ],
Packit Service 963350
  [ 'ia64', 'HAVE_CPU_IA64' ],
Packit Service 963350
  [ 'hppa', 'HAVE_CPU_HPPA' ],
Packit Service 963350
  [ 'm68k', 'HAVE_CPU_M68K' ],
Packit Service 963350
  [ 's390', 'HAVE_CPU_S390' ],
Packit Service 963350
]
Packit Service 963350
foreach h : host_defines
Packit Service 963350
  if h.get(0) == host_machine.cpu()
Packit Service 963350
    cdata.set(h.get(1), 1)
Packit Service 963350
  endif
Packit Service 963350
endforeach
Packit Service 963350
# FIXME: should really be called HOST_CPU or such
Packit Service 963350
cdata.set_quoted('TARGET_CPU', host_machine.cpu())
Packit Service 963350
Packit Service 963350
check_headers = [
Packit Service 963350
  'dlfcn.h',
Packit Service 963350
  'inttypes.h',
Packit Service 963350
  'memory.h',
Packit Service 963350
  'poll.h',
Packit Service 963350
  'stdint.h',
Packit Service 963350
  'stdio_ext.h',
Packit Service 963350
  'strings.h',
Packit Service 963350
  'string.h',
Packit Service 963350
  'sys/param.h',
Packit Service 963350
  'sys/poll.h',
Packit Service 963350
  'sys/prctl.h',
Packit Service 963350
  'sys/socket.h',
Packit Service 963350
  'sys/stat.h',
Packit Service 963350
  'sys/times.h',
Packit Service 963350
  'sys/time.h',
Packit Service 963350
  'sys/types.h',
Packit Service 963350
  'sys/utsname.h',
Packit Service 963350
  'sys/wait.h',
Packit Service 963350
  'ucontext.h',
Packit Service 963350
  'unistd.h',
Packit Service 963350
  'valgrind/valgrind.h',
Packit Service 963350
  'sys/resource.h',
Packit Service 963350
]
Packit Service 963350
Packit Service 963350
if host_machine.system() == 'windows'
Packit Service 963350
  check_headers += ['winsock2.h']
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
foreach h : check_headers
Packit Service 963350
  if cc.has_header(h)
Packit Service 963350
    define = 'HAVE_' + h.underscorify().to_upper()
Packit Service 963350
    cdata.set(define, 1)
Packit Service 963350
  endif
Packit Service 963350
endforeach
Packit Service 963350
Packit Service 963350
if cc.has_member('struct tm', 'tm_gmtoff', prefix : '#include <time.h>')
Packit Service 963350
  cdata.set('HAVE_TM_GMTOFF', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
check_functions = [
Packit Service 963350
  'gmtime_r',
Packit Service 963350
  'sigaction',
Packit Service 963350
  'getrusage',
Packit Service 963350
  'fseeko',
Packit Service 963350
  'ftello',
Packit Service 963350
  'poll',
Packit Service 963350
  'ppoll',
Packit Service 963350
  'pselect',
Packit Service 963350
  'getpagesize',
Packit Service 963350
  'clock_gettime',
Packit Service 963350
  # These are needed by libcheck
Packit Service 963350
  'getline',
Packit Service 963350
  'mkstemp',
Packit Service 963350
  'alarm',
Packit Service 963350
  'gettimeofday',
Packit Service 963350
]
Packit Service 963350
Packit Service 963350
foreach f : check_functions
Packit Service 963350
  if cc.has_function(f)
Packit Service 963350
    define = 'HAVE_' + f.underscorify().to_upper()
Packit Service 963350
    cdata.set(define, 1)
Packit Service 963350
  endif
Packit Service 963350
endforeach
Packit Service 963350
Packit Service 963350
if cc.has_function('localtime_r', prefix : '#include<time.h>')
Packit Service 963350
  cdata.set('HAVE_LOCALTIME_R', 1)
Packit Service 963350
  # Needed by libcheck
Packit Service 963350
  cdata.set('HAVE_DECL_LOCALTIME_R', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
if cc.links('''#include <pthread.h>
Packit Service 963350
               int main() {
Packit Service 963350
                 pthread_setname_np("example"); return 0;
Packit Service 963350
               }''', name : 'pthread_setname_np(const char*)')
Packit Service 963350
  cdata.set('HAVE_PTHREAD_SETNAME_NP_WITHOUT_TID', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Check for posix timers and the monotonic clock
Packit Service 963350
time_prefix = '#include <time.h>\n'
Packit Service 963350
if cdata.has('HAVE_UNISTD_H')
Packit Service 963350
  time_prefix += '#include <unistd.h>'
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
posix_timers_src = time_prefix + '''
Packit Service 963350
#if !defined(_POSIX_TIMERS) || _POSIX_TIMERS < 0 || !defined(CLOCK_REALTIME)
Packit Service 963350
#error Either _POSIX_TIMERS or CLOCK_REALTIME not defined
Packit Service 963350
#endif
Packit Service 963350
'''
Packit Service 963350
if cc.compiles(posix_timers_src, name : 'posix timers from time.h')
Packit Service 963350
  cdata.set('HAVE_POSIX_TIMERS', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
monotonic_clock_src = time_prefix + '''
Packit Service 963350
#if !defined(_POSIX_MONOTONIC_CLOCK) || _POSIX_MONOTONIC_CLOCK < 0 || !defined(CLOCK_MONOTONIC)
Packit Service 963350
#error Either _POSIX_MONOTONIC_CLOCK or CLOCK_MONOTONIC not defined
Packit Service 963350
#endif
Packit Service 963350
'''
Packit Service 963350
if cc.compiles(monotonic_clock_src, name : 'monotonic clock from time.h')
Packit Service 963350
  cdata.set('HAVE_MONOTONIC_CLOCK', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Check for __uint128_t (gcc) by checking for 128-bit division
Packit Service 963350
uint128_t_src = '''int main() {
Packit Service 963350
static __uint128_t v1 = 100;
Packit Service 963350
static __uint128_t v2 = 10;
Packit Service 963350
static __uint128_t u;
Packit Service 963350
u = v1 / v2;
Packit Service 963350
}'''
Packit Service 963350
if cc.compiles(uint128_t_src, name : '__uint128_t available')
Packit Service 963350
  cdata.set('HAVE_UINT128_T', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# All supported platforms have long long now
Packit Service 963350
cdata.set('HAVE_LONG_LONG', 1)
Packit Service 963350
Packit Service 963350
# We only want to use the __declspec(dllexport/import) dance in GST_EXPORT when
Packit Service 963350
# building with MSVC
Packit Service 963350
if cc.get_id() == 'msvc'
Packit Service 963350
  cdata.set('GSTCONFIG_BUILT_WITH_MSVC', 1)
Packit Service 963350
else
Packit Service 963350
  cdata.set('GSTCONFIG_BUILT_WITH_MSVC', 0)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# -------------------------------------------------------------------------------------
Packit Service 963350
# config.h things needed by libcheck
Packit Service 963350
# -------------------------------------------------------------------------------------
Packit Service 963350
if cc.has_function('getpid')
Packit Service 963350
  cdata.set('HAVE_GETPID', 1)
Packit Service 963350
elif host_system == 'windows' and cc.has_function('_getpid')
Packit Service 963350
  cdata.set('HAVE_PROCESS_H', 1) # Used by gstreamer too
Packit Service 963350
  cdata.set('HAVE__GETPID', 1)
Packit Service 963350
endif
Packit Service 963350
if cc.has_function('strdup')
Packit Service 963350
  cdata.set('HAVE_DECL_STRDUP', 1)
Packit Service 963350
elif host_system == 'windows' and cc.has_function('_strdup')
Packit Service 963350
  cdata.set('HAVE__STRDUP', 1) # Windows (MSVC)
Packit Service 963350
endif
Packit Service 963350
if host_machine.system() != 'windows'
Packit Service 963350
  cdata.set('HAVE_FORK', 1)
Packit Service 963350
else
Packit Service 963350
  # libcheck requires HAVE_FORK to be 0 when fork() is not available
Packit Service 963350
  cdata.set('HAVE_FORK', 0)
Packit Service 963350
endif
Packit Service 963350
if cc.has_function('strsignal')
Packit Service 963350
  cdata.set('HAVE_DECL_STRSIGNAL', 1)
Packit Service 963350
endif
Packit Service 963350
# Check for availability of types
Packit Service 963350
if not cc.has_type('clockid_t', prefix : '#include <time.h>')
Packit Service 963350
  cdata.set('clockid_t', 'int')
Packit Service 963350
endif
Packit Service 963350
if not cc.has_type('timer_t', prefix : '#include <time.h>')
Packit Service 963350
  cdata.set('timer_t', 'int')
Packit Service 963350
endif
Packit Service 963350
if not cc.has_members('struct timespec', 'tv_sec', 'tv_nsec',
Packit Service 963350
		      prefix : '#include <time.h>')
Packit Service 963350
  cdata.set('STRUCT_TIMESPEC_DEFINITION_MISSING', 1)
Packit Service 963350
endif
Packit Service 963350
if not cc.has_members('struct itimerspec', 'it_interval', 'it_value',
Packit Service 963350
		      prefix : '#include <time.h>')
Packit Service 963350
  cdata.set('STRUCT_ITIMERSPEC_DEFINITION_MISSING', 1)
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Platform deps; only ws2_32 and execinfo for now
Packit Service 963350
platform_deps = []
Packit Service 963350
if host_machine.system() == 'windows'
Packit Service 963350
  platform_deps = [cc.find_library('ws2_32')]
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
backtrace_deps = []
Packit Service 963350
if not get_option('disable_libunwind')
Packit Service 963350
  unwind_dep = dependency('libunwind', required : false)
Packit Service 963350
  dw_dep = dependency('libdw', required: false)
Packit Service 963350
  backtrace_deps = [unwind_dep, dw_dep]
Packit Service 963350
  if unwind_dep.found()
Packit Service 963350
    cdata.set('HAVE_UNWIND', 1)
Packit Service 963350
    if dw_dep.found()
Packit Service 963350
      cdata.set('HAVE_DW', 1)
Packit Service 963350
    else
Packit Service 963350
      message('Support for backtraces is partial only.')
Packit Service 963350
    endif
Packit Service 963350
  else
Packit Service 963350
    if cc.has_function('backtrace')
Packit Service 963350
      cdata.set('HAVE_BACKTRACE', 1)
Packit Service 963350
    else
Packit Service 963350
        message('NO backtraces support.')
Packit Service 963350
    endif
Packit Service 963350
  endif
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
if cc.has_header('execinfo.h')
Packit Service 963350
  if cc.has_function('backtrace', prefix : '#include <execinfo.h>')
Packit Service 963350
    cdata.set('HAVE_BACKTRACE', 1)
Packit Service 963350
  else
Packit Service 963350
    execinfo_dep = cc.find_library('execinfo', required : false)
Packit Service 963350
    if execinfo_dep.found() and cc.has_function('backtrace', prefix : '#include <execinfo.h>', dependencies : execinfo_dep)
Packit Service 963350
      cdata.set('HAVE_BACKTRACE', 1)
Packit Service 963350
      platform_deps += execinfo_dep
Packit Service 963350
    endif
Packit Service 963350
  endif
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
disable_gst_debug = get_option('disable_gst_debug')
Packit Service 963350
if disable_gst_debug
Packit Service 963350
  add_project_arguments(['-Wno-unused'], language: 'c')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
warning_flags = [
Packit Service 963350
  '-Wmissing-declarations',
Packit Service 963350
  '-Wmissing-prototypes',
Packit Service 963350
  '-Wredundant-decls',
Packit Service 963350
  '-Wundef',
Packit Service 963350
  '-Wwrite-strings',
Packit Service 963350
  '-Wformat',
Packit Service 963350
  '-Wformat-nonliteral',
Packit Service 963350
  '-Wformat-security',
Packit Service 963350
  '-Wold-style-definition',
Packit Service 963350
  '-Winit-self',
Packit Service 963350
  '-Wmissing-include-dirs',
Packit Service 963350
  '-Waddress',
Packit Service 963350
  '-Waggregate-return',
Packit Service 963350
  '-Wno-multichar',
Packit Service 963350
  '-Wnested-externs',
Packit Service 963350
  '-Wdeclaration-after-statement',
Packit Service 963350
  '-Wvla',
Packit Service 963350
  '-Wpointer-arith',
Packit Service 963350
]
Packit Service 963350
Packit Service 963350
foreach extra_arg : warning_flags
Packit Service 963350
  if cc.has_argument (extra_arg)
Packit Service 963350
    add_project_arguments([extra_arg], language: 'c')
Packit Service 963350
  endif
Packit Service 963350
endforeach
Packit Service 963350
Packit Service 963350
# Used by the gstutils test
Packit Service 963350
gmp_dep = cc.find_library('gmp', required : false)
Packit Service 963350
cdata.set('HAVE_GMP', gmp_dep.found())
Packit Service 963350
gsl_dep = cc.find_library('gsl', required : false)
Packit Service 963350
gslcblas_dep = cc.find_library('gslcblas', required : false)
Packit Service 963350
cdata.set('HAVE_GSL', gsl_dep.found() and gslcblas_dep.found())
Packit Service 963350
test_deps = [gmp_dep, gsl_dep, gslcblas_dep]
Packit Service 963350
Packit Service 963350
# Used by gstinfo.c
Packit Service 963350
dl_dep = cc.find_library('dl', required : false)
Packit Service 963350
cdata.set('HAVE_DLADDR', cc.has_function('dladdr', dependencies : dl_dep))
Packit Service 963350
Packit Service 963350
Packit Service 963350
configinc = include_directories('.')
Packit Service 963350
libsinc = include_directories('libs')
Packit Service 963350
privinc = include_directories('gst')
Packit Service 963350
Packit Service 963350
# Find dependencies
Packit Service 963350
glib_dep = dependency('glib-2.0', version : '>=2.32.0',
Packit Service 963350
  fallback: ['glib', 'libglib_dep'])
Packit Service 963350
gobject_dep = dependency('gobject-2.0',
Packit Service 963350
  fallback: ['glib', 'libgobject_dep'])
Packit Service 963350
gmodule_dep = dependency('gmodule-2.0',
Packit Service 963350
  fallback: ['glib', 'libgmodule_dep'])
Packit Service 963350
if host_machine.system() == 'windows'
Packit Service 963350
    gio_dep = dependency('gio-2.0',
Packit Service 963350
        fallback: ['glib', 'libgio_dep'])
Packit Service 963350
else
Packit Service 963350
    gio_dep = [dependency('gio-2.0',
Packit Service 963350
                  fallback: ['glib', 'libgio_dep']),
Packit Service 963350
               dependency('gio-unix-2.0',
Packit Service 963350
                  fallback: ['glib', 'libgio_dep'])]
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
mathlib = cc.find_library('m', required : false)
Packit Service 963350
# Needed for timer_create/settime/delete
Packit Service 963350
# Also provides clock_gettime in glibc < 2.17
Packit Service 963350
rt_lib = cc.find_library('rt', required : false)
Packit Service 963350
Packit Service 963350
gir = find_program('g-ir-scanner', required : false)
Packit Service 963350
gnome = import('gnome')
Packit Service 963350
Packit Service 963350
# Fixme, not very elegant.
Packit Service 963350
build_gir = gir.found() and not meson.is_cross_build() and not get_option('disable_introspection')
Packit Service 963350
Packit Service 963350
gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
Packit Service 963350
    'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
Packit Service 963350
    'g_setenv("GST_REGISTRY_1.0", "/no/way/this/exists.reg", TRUE);' + \
Packit Service 963350
    'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
Packit Service 963350
    'g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);' + \
Packit Service 963350
    'gst_init(NULL,NULL);' ]
Packit Service 963350
Packit Service 963350
# Used by the *_mkenum.py helper scripts
Packit Service 963350
glib_mkenums = find_program('glib-mkenums')
Packit Service 963350
Packit Service 963350
gst_c_args = ['-DHAVE_CONFIG_H']
Packit Service 963350
if libtype == 'static'
Packit Service 963350
  gst_c_args += ['-DGST_STATIC_COMPILATION']
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Used in gst/parse/meson.build and below
Packit Service 963350
python3 = import('python3').find_python()
Packit Service 963350
Packit Service 963350
bashcomp_dep = dependency('bash-completion', version : '>= 2.0', required : false)
Packit Service 963350
Packit Service 963350
bashcomp_found = bashcomp_dep.found()
Packit Service 963350
bash_completions_dir = ''
Packit Service 963350
bash_helpers_dir = ''
Packit Service 963350
Packit Service 963350
if bashcomp_found
Packit Service 963350
  # get_pkgconfig_variable() won't let us set the prefix
Packit Service 963350
  pkgconfig = find_program('pkg-config')
Packit Service 963350
Packit Service 963350
  runcmd = run_command(pkgconfig,
Packit Service 963350
      '--define-variable=prefix=.',
Packit Service 963350
      '--variable=completionsdir',
Packit Service 963350
      'bash-completion')
Packit Service 963350
Packit Service 963350
  if (runcmd.returncode() == 0)
Packit Service 963350
    bash_completions_dir = runcmd.stdout().strip()
Packit Service 963350
  else
Packit Service 963350
    message('Found bash-completion but the .pc file did not set \'completionsdir\'.')
Packit Service 963350
    bashcomp_found = false
Packit Service 963350
  endif
Packit Service 963350
Packit Service 963350
  runcmd = run_command(pkgconfig,
Packit Service 963350
      '--define-variable=prefix=.',
Packit Service 963350
      '--variable=helpersdir',
Packit Service 963350
      'bash-completion')
Packit Service 963350
Packit Service 963350
  if (runcmd.returncode() == 0)
Packit Service 963350
    bash_helpers_dir = runcmd.stdout().strip()
Packit Service 963350
  else
Packit Service 963350
    message('Found bash-completion, but the .pc file did not set \'helpersdir\'.')
Packit Service 963350
    bashcomp_found = false
Packit Service 963350
  endif
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
subdir('gst')
Packit Service 963350
subdir('libs')
Packit Service 963350
subdir('plugins')
Packit Service 963350
subdir('tools')
Packit Service 963350
subdir('pkgconfig')
Packit Service 963350
subdir('tests')
Packit Service 963350
subdir('data')
Packit Service 963350
Packit Service 963350
# xgettext is optional (on Windows for instance)
Packit Service 963350
if find_program('xgettext', required : false).found()
Packit Service 963350
  subdir('po')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
configure_file(output : 'config.h', configuration : cdata)
Packit Service 963350
Packit Service 963350
if build_machine.system() == 'windows'
Packit Service 963350
  message('Disabling gtk-doc while building on Windows')
Packit Service 963350
elif get_option('disable_gtkdoc')
Packit Service 963350
  message('gtk-doc is disabled via options')
Packit Service 963350
else
Packit Service 963350
  if find_program('gtkdoc-scan', required : false).found()
Packit Service 963350
    subdir('docs')
Packit Service 963350
  else
Packit Service 963350
    message('Not building documentation as gtk-doc was not found')
Packit Service 963350
  endif
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")')
Packit Service 963350
Packit Service 963350
install_data('gst-element-check-1.0.m4', install_dir : join_paths(get_option('datadir'), 'aclocal'))