Blame meson.build

Packit Service 9402ce
# libva package version number, (as distinct from shared library version)
Packit Service 9402ce
# XXX: we want the package version to remain at 1.0.x for VA-API 0.32.y
Packit Service 9402ce
#
Packit Service 9402ce
# - major version is automatically generated from VA-API major version
Packit Service 9402ce
# - minor version is automatically generated from VA-API minor version
Packit Service 9402ce
# - increment micro for any library release
Packit Service 9402ce
# - reset micro version to zero when VA-API major or minor version is changed
Packit Service 9402ce
project(
Packit Service 9402ce
  'libva', 'c',
Packit Service 9402ce
  version : '2.5.0',
Packit Service 9402ce
  meson_version : '>= 0.37.0',
Packit Service 9402ce
  default_options : [ 'warning_level=1',
Packit Service 9402ce
                      'buildtype=debugoptimized' ])
Packit Service 9402ce
Packit Service 9402ce
# VA-API version
Packit Service 9402ce
# - increment major for any ABI change
Packit Service 9402ce
# - increment minor for any interface change (e.g. new/modified function)
Packit Service 9402ce
# - increment micro for any other change (new flag, new codec definition, etc.)
Packit Service 9402ce
# - reset micro version to zero when minor version is incremented
Packit Service 9402ce
# - reset minor version to zero when major version is incremented
Packit Service 9402ce
va_api_major_version = 1
Packit Service 9402ce
va_api_minor_version = 5
Packit Service 9402ce
va_api_micro_version = 0
Packit Service 9402ce
Packit Service 9402ce
va_api_version = '@0@.@1@.@2@'.format(va_api_major_version,
Packit Service 9402ce
				      va_api_minor_version,
Packit Service 9402ce
				      va_api_micro_version)
Packit Service 9402ce
Packit Service 9402ce
version_arr = meson.project_version().split('.')
Packit Service 9402ce
libva_major_version = version_arr[0]
Packit Service 9402ce
libva_minor_version = version_arr[1]
Packit Service 9402ce
libva_micro_version = version_arr[2]
Packit Service 9402ce
libva_version = '@0@.@1@.@2@'.format(libva_major_version,
Packit Service 9402ce
				     libva_minor_version,
Packit Service 9402ce
				     libva_micro_version)
Packit Service 9402ce
if version_arr.length() == 4
Packit Service 9402ce
  libva_version = '@0@.pre@1@'.format(libva_version, version_arr[3])
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
Packit Service 9402ce
# libva library version number (generated, do not change)
Packit Service 9402ce
# XXX: we want the SONAME to remain at libva.so.1 for VA-API major == 0
Packit Service 9402ce
#
Packit Service 9402ce
# The library name is generated libva.<x>.<y>.0 where
Packit Service 9402ce
# <x> = VA-API major version + 1
Packit Service 9402ce
# <y> = 100 * VA-API minor version + VA-API micro version
Packit Service 9402ce
#
Packit Service 9402ce
# For example:
Packit Service 9402ce
# VA-API 0.32.0 generates libva.so.1.3200.0
Packit Service 9402ce
# VA-API 0.34.1 generates libva.so.1.3401.0
Packit Service 9402ce
# VA-API 1.2.13 generates libva.so.2.213.0
Packit Service 9402ce
libva_interface_bias = va_api_major_version + 1
Packit Service 9402ce
libva_interface_age = 0
Packit Service 9402ce
libva_binary_age = 100 * va_api_minor_version + va_api_micro_version - libva_interface_age
Packit Service 9402ce
Packit Service 9402ce
libva_lt_current = 100 * va_api_minor_version + va_api_micro_version + libva_interface_bias
Packit Service 9402ce
libva_lt_revision = libva_interface_age
Packit Service 9402ce
libva_lt_age = libva_binary_age - libva_interface_age
Packit Service 9402ce
Packit Service 9402ce
libva_lt_current = libva_lt_current - libva_lt_age
Packit Service 9402ce
Packit Service 9402ce
libva_lt_version = '@0@.@1@.@2@'.format(libva_lt_current,
Packit Service 9402ce
					libva_lt_age,
Packit Service 9402ce
					libva_lt_revision)
Packit Service 9402ce
Packit Service 9402ce
driverdir = get_option('driverdir')
Packit Service 9402ce
if driverdir == ''
Packit Service 9402ce
  driverdir = '@0@/@1@/@2@'.format(get_option('prefix'), get_option('libdir'), 'dri')
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
configinc = include_directories('.')
Packit Service 9402ce
Packit Service 9402ce
cc = meson.get_compiler('c')
Packit Service 9402ce
dl_dep = cc.find_library('dl', required : false)
Packit Service 9402ce
Packit Service 9402ce
libdrm_dep = dependency('libdrm', version : '>= 2.4')
Packit Service 9402ce
Packit Service 9402ce
WITH_DRM = not get_option('disable_drm')
Packit Service 9402ce
Packit Service 9402ce
WITH_X11 = false
Packit Service 9402ce
if get_option('with_x11') != 'no'
Packit Service 9402ce
  x11_dep = dependency('x11', required : get_option('with_x11') == 'yes')
Packit Service 9402ce
  xext_dep = dependency('xext', required : get_option('with_x11') == 'yes')
Packit Service 9402ce
  xfixes_dep = dependency('xfixes', required : get_option('with_x11') == 'yes')
Packit Service 9402ce
Packit Service 9402ce
  WITH_X11 = (x11_dep.found() and xext_dep.found() and xfixes_dep.found())
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
if not WITH_X11 and get_option('with_glx') == 'yes'
Packit Service 9402ce
  error('VA/GLX explicitly enabled, but VA/X11 isn\'t built')
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
WITH_GLX = false
Packit Service 9402ce
if WITH_X11 and get_option('with_glx') != 'no'
Packit Service 9402ce
  gl_dep = dependency('gl', required : get_option('with_glx') == 'yes')
Packit Service 9402ce
  WITH_GLX = gl_dep.found()
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
WITH_WAYLAND = false
Packit Service 9402ce
if get_option('with_wayland') != 'no'
Packit Service 9402ce
  wayland_dep = dependency('wayland-client', version : '>= 1.11.0',
Packit Service 9402ce
			   required : get_option('with_wayland') == 'yes')
Packit Service 9402ce
  if wayland_dep.found()
Packit Service 9402ce
    prefix = wayland_dep.get_pkgconfig_variable('prefix')
Packit Service 9402ce
    wl_scanner = find_program('wayland-scanner',
Packit Service 9402ce
			      prefix + '/bin/wayland-scanner')
Packit Service 9402ce
  endif
Packit Service 9402ce
  WITH_WAYLAND = wayland_dep.found()
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
va_c_args = []
Packit Service 9402ce
if get_option('enable_va_messaging')
Packit Service 9402ce
  va_c_args += ['-DENABLE_VA_MESSAGING=1']
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
# Symbol visibility
Packit Service 9402ce
if cc.has_argument('-fvisibility=hidden')
Packit Service 9402ce
  va_c_args += ['-DHAVE_GNUC_VISIBILITY_ATTRIBUTE']
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
if (not WITH_DRM and not WITH_X11 and not WITH_WAYLAND)
Packit Service 9402ce
  error('Please install at least one backend dev files (DRM, X11, Wayland)')
Packit Service 9402ce
endif
Packit Service 9402ce
Packit Service 9402ce
subdir('va')
Packit Service 9402ce
subdir('pkgconfig')
Packit Service 9402ce
Packit Service 9402ce
doxygen = find_program('doxygen', required: false)
Packit Service 9402ce
Packit Service 9402ce
if get_option('enable_docs') and doxygen.found()
Packit Service 9402ce
  subdir('doc')
Packit Service 9402ce
endif