diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2017-10-22 18:40:24 +0300 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2018-02-06 13:12:33 +0000 |
commit | 781fd07e5518b21b5d910e0c58108a517903fda3 (patch) | |
tree | 74d3f45ddbbbba880cd6a5397de505a4a13d8c76 | |
parent | a3a9e99b527936502a10aed7559799b2aa1e186e (diff) | |
download | xorg-driver-xf86-video-intel-781fd07e5518b21b5d910e0c58108a517903fda3.tar.gz |
meson: Add meson build system
Allow building the driver with meson. Could probably use
plenty of cleanups, but at least it gives me a working driver.
And I think I managed to make it build everything that
autotools builds.
Quite a few compiler warnings were suppressed as well. Might
want to look at those at some point.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-rw-r--r-- | man/meson.build | 23 | ||||
-rw-r--r-- | meson.build | 208 | ||||
-rw-r--r-- | meson_options.txt | 42 | ||||
-rw-r--r-- | src/legacy/i810/meson.build | 49 | ||||
-rw-r--r-- | src/legacy/i810/xvmc/meson.build | 15 | ||||
-rw-r--r-- | src/meson.build | 156 | ||||
-rw-r--r-- | src/sna/brw/meson.build | 41 | ||||
-rw-r--r-- | src/sna/fb/meson.build | 31 | ||||
-rw-r--r-- | src/sna/git_version.h.in | 1 | ||||
-rw-r--r-- | src/sna/meson.build | 139 | ||||
-rw-r--r-- | src/uxa/meson.build | 65 | ||||
-rw-r--r-- | tools/meson.build | 98 | ||||
-rw-r--r-- | xvmc/meson.build | 31 |
13 files changed, 899 insertions, 0 deletions
diff --git a/man/meson.build b/man/meson.build new file mode 100644 index 00000000..7d22f6bf --- /dev/null +++ b/man/meson.build @@ -0,0 +1,23 @@ +configure_file(input : 'intel.man', + output : 'intel.4', + command : [ + 'sed', + '-e', + 's/__appmansuffix__/@0@/g'.format(man_config.get('appmansuffix')), + '-e', + 's/__filemansuffix__/@0@/g'.format(man_config.get('filemansuffix')), + '-e', + 's/__drivermansuffix__/@0@/g'.format(man_config.get('drivermansuffix')), + '-e', + 's/__miscmansuffix__/@0@/g'.format(man_config.get('miscmansuffix')), + '-e', + 's/__xservername__/@0@/g'.format(man_config.get('xservername')), + '-e', + 's/__xconfigfile__/@0@/g'.format(man_config.get('xconfigfile')), + '-e', + 's/__vendorversion__/@0@/g'.format(man_config.get('vendorversion')), + '@INPUT@' + ], + capture : true, + install_dir: join_paths(get_option('mandir'), 'man4'), + install : true) diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..227ca2eb --- /dev/null +++ b/meson.build @@ -0,0 +1,208 @@ +project('xf86-video-intel', 'c', + version : '2.99.917', + default_options: [ + 'warning_level=2', + 'c_std=gnu99', + ], + license : 'MIT', + meson_version : '>0.40.0') + +config = configuration_data() + +version = meson.project_version().split('.') +config.set('PACKAGE_VERSION_MAJOR', version[0]) +config.set('PACKAGE_VERSION_MINOR', version[1]) +config.set('PACKAGE_VERSION_PATCHLEVEL', version[2]) + +config.set_quoted('LIBEXEC_PATH', join_paths(get_option('prefix'), + get_option('libexecdir'))) + +cc = meson.get_compiler('c') + +xorg = dependency('xorg-server', version : '>= 1.6', required : true) +pthreads = dependency('threads', required : true) +pciaccess = dependency('pciaccess', version : '>= 0.10', required : true) + +x11 = dependency('x11', required : false) +xfixes = dependency('xfixes', required : false) +png = dependency('libpng', required : false) + +if not cc.has_function('clock_gettime', args : '-lrt') + error('clock_gettime() missing') +endif + +if cc.has_function('getline') + config.set('HAVE_GETLINE', 1) +endif + +if cc.has_function('strndup') + config.set('HAVE_STRNDUP', 1) +endif + +if cc.has_function('strcasecmp') + config.set('HAVE_STRCASECMP', 1) +endif + +dependency('xproto', required : true) +dependency('fontsproto', required : true) +dependency('damageproto', required : true) + +if cc.has_header_symbol('xorg-server.h', 'RANDR', + dependencies : xorg) + dependency('randrproto', required : true) +endif +if cc.has_header_symbol('xorg-server.h', 'RENDER', + dependencies : xorg) + dependency('renderproto', required : true) +endif +if cc.has_header_symbol('xorg-server.h', 'DPMSExtension', + dependencies : xorg) + dependency('xextproto', required : true) +endif + +with_tools = get_option('tools') + +config.set('USE_GIT_DESCRIBE', 1) +config.set('BUILDER_DESCRIPTION', 1) + +atomic_primitives = 'none' + +atomic_primitives_code = ''' +int atomic_add(int i) { + return __sync_fetch_and_add (&i, 1); +} +int atomic_cmpxchg(int i, int j, int k) { + return __sync_val_compare_and_swap (&i, j, k); +} +int main(void) { + return 0; +}''' +if cc.links(atomic_primitives_code, name : 'atomic primitives') + atomic_primitives = 'intel' + config.set('HAVE_ATOMIC_PRIMITIVES', 1) +endif + +if atomic_primitives == 'none' and cc.has_header('atomic_ops.h') + atomic_primitives = 'libatomic-ops' + config.set('HAVE_LIB_ATOMIC_OPS', 1) +endif + +if atomic_primitives == 'none' + error('xf86-video-intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.') +endif + +libudev = dependency('libudev', required : false) +if libudev.found() + config.set('HAVE_UDEV', 1) +endif + +cpuid_code = ''' +#include <cpuid.h> +#include <stddef.h> +int main(void) { + int eax, ebx, ecx, edx; + if (__get_cpuid_max(0, NULL) < 4) + return 0; + __cpuid_count(4, 0, eax, ebx, ecx, edx); + return 0; +}''' +if cc.links(cpuid_code, name : '__cpuid()') + config.set('HAVE_CPUID_H', 1) +endif + +has_shm = (cc.has_header('sys/ipc.h') and + cc.has_header('X11/extensions/XShm.h') and + cc.has_header('X11/extensions/shmproto.h') and + cc.has_header('X11/extensions/shmstr.h')) +if has_shm + config.set('HAVE_MIT_SHM', 1) + config.set('HAVE_X11_EXTENSIONS_SHMPROTO_H', 1) + config.set('HAVE_X11_EXTENSIONS_SHMSTR_H', 1) +endif + +if cc.has_header('X11/extensions/Xinerama.h') + config.set('HAVE_X11_EXTENSIONS_XINERAMA_H', 1) +endif + +if cc.has_header('X11/extensions/dpmsconst.h') + config.set('HAVE_X11_EXTENSIONS_DPMSCONST_H', 1) +endif + +pixman = dependency('pixman-1', version : '>= 0.16.0', required : true) + +if pixman.version() >= '0.24.0' + config.set('HAS_PIXMAN_TRIANGLES', 1) +endif +if pixman.version() >= '0.27.1' + config.set('HAS_PIXMAN_GLYPHS', 1) +endif + +with_kms = get_option('kms') +if with_kms + config.set('KMS', 1) +endif + +with_ums = get_option('ums') +if with_ums + has_ums = cc.has_header('vgaHW.h', + dependencies : xorg) + + # Currently 'required' doesn't work for cc.has_header() & co. + if not has_ums + error('UMS dependencies not met') + endif + + config.set('UMS', 1) +endif + +with_xvmc = get_option('xvmc') +if with_xvmc + dependency('xvmc', required : true) + dependency('dri2proto', required : true) + dependency('x11', required : true) + dependency('x11-xcb', required : true) + dependency('xcb-dri2', required : true) + dependency('xcb-aux', required : true) + dependency('libdrm_intel', required : true) + + config.set('ENABLE_XVMC', 1) +endif + +with_valgrind = get_option('valgrind') +if with_valgrind + message('Checking Valgrind support') + valgrind = dependency('valgrind', required : true) + config.set('HAVE_VALGRIND', 1) +endif + +inc = include_directories([ '.', 'src', 'xvmc', 'src/render_program', ]) + +add_project_arguments('-include', 'config.h', language : 'c') + +man_config = configuration_data() +man_config.set('appmansuffix', '1') +man_config.set('filemansuffix', '5') +man_config.set('drivermansuffix', '4') +man_config.set('miscmansuffix', '7') +man_config.set('xservername', + cc.get_define('__XSERVERNAME__', + prefix : '#include <xorg-server.h>', + dependencies : xorg)) +man_config.set('xconfigfile', + cc.get_define('__XCONFIGFILE____', + prefix : '#include <xorg-server.h>', + dependencies : xorg)) +man_config.set('vendorversion', '"@0@ @1@" "@2@"'.format(meson.project_name(), + meson.project_version(), + 'X Version 11')) + +subdir('src') +subdir('tools') + +if with_xvmc + subdir('xvmc') +endif + +subdir('man') + +configure_file(output: 'config.h', install: false, configuration: config) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 00000000..99312740 --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,42 @@ +option('sna', type : 'boolean', value : true, + description : 'Build with SNA support') +option('uxa', type : 'boolean', value : true, + description : 'Build with UXA support') +option('xaa', type : 'boolean', value : true, + description : 'Build with XAA support') +option('ums', type : 'boolean', value : true, + description : 'Build with UMS support') +option('kms', type : 'boolean', value : true, + description : 'Build with KMS support') +option('dri1', type : 'boolean', value : true, + description : 'Build DRI1 support') +option('dri2', type : 'boolean', value : true, + description : 'Build with DRI2 support') +option('dri3', type : 'boolean', value : true, + description : 'Build with DRI3 support') +option('present', type : 'boolean', value : true, + description : 'Enable Present support') +option('xvmc', type : 'boolean', value : true, + description : 'Enable XvMC support') +option('valgrind', type : 'boolean', value : true, + description : 'Enable valgrindified ioctls for debugging') +option('default-dri', type : 'combo', value : '2', choices : [ '1', '2', '3' ], + description : 'Select the default maximum DRI level') +option('default-accel', type : 'combo', value : 'sna', choices : [ 'sna', 'uxa', 'none' ], + description : 'Select the default acceleration method') +option('tools', type : 'boolean', value : true, + description : 'Enable building and installing the miscellaneous tools') +option('backlight', type : 'boolean', value : true, + description : 'Enable control of the backlight') +option('backlight-helper', type : 'boolean', value : true, + description : 'Enable building the backlight helper executable for running X under a normal user') +option('tearfree', type : 'boolean', value : false, + description : 'Enable use of TearFree by default') +option('use-create2', type : 'boolean', value : false, + description : 'Enable use of create2 ioctl (experimental)') +option('async-swap', type : 'boolean', value : false, + description : 'Enable use of asynchronous swaps (experimental)') +option('debug', type : 'combo', value : 'no', choices : [ 'no', 'sync', 'memory', 'pixmap', 'full' ], + description : 'Enable internal debugging') +option('xorg-module-dir', type : 'string', value : '@libdir@/xorg/modules', + description : 'Default xorg module directory') diff --git a/src/legacy/i810/meson.build b/src/legacy/i810/meson.build new file mode 100644 index 00000000..8d0f3193 --- /dev/null +++ b/src/legacy/i810/meson.build @@ -0,0 +1,49 @@ +i810_sources = [ + 'i810_accel.c', + 'i810_cursor.c', + 'i810_driver.c', + 'i810_memory.c', + 'i810_video.c', + 'i810_wmark.c', +] + +xorg = dependency('xorg-server', required : true) + +i810_deps = [ + dependency('libdrm', required : true), + dependency('pciaccess', required : true), + xorg, +] + +if cc.has_header('xaa.h', dependencies : xorg) + config.set('HAVE_XAA_H', 1) + i810_sources += 'i810_xaa.c' +endif + +if cc.has_header('dgaproc.h', dependencies : xorg) + config.set('HAVE_DGAPROC_H', 1) + i810_sources += 'i810_dga.c' +endif + +if with_dri1 + i810_sources += 'i810_dri.c' + i810_deps += dependency('xf86driproto', required : true) + + if with_xvmc + i810_sources += 'i810_hwmc.c' + endif +endif + +i810 = static_library('legacy_i810', + sources : i810_sources, + dependencies : i810_deps, + include_directories : inc, + c_args : [ + '-Wno-unused-parameter', + '-Wno-sign-compare', + ], + install : false) + +if with_xvmc + subdir('xvmc') +endif diff --git a/src/legacy/i810/xvmc/meson.build b/src/legacy/i810/xvmc/meson.build new file mode 100644 index 00000000..cd05f3ef --- /dev/null +++ b/src/legacy/i810/xvmc/meson.build @@ -0,0 +1,15 @@ +shared_library('I810XvMC', + soversion : '1', + version : '1.0.0', + sources : 'I810XvMC.c', + dependencies : [ + dependency('x11', required : true), + dependency('xvmc', required : true), + dependency('xorg-server', required : true), + dependency('libdrm', required : true), + ], + c_args : [ + '-Wno-unused-parameter', + '-Wno-sign-compare', + ], + install : true) diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 00000000..3998dac8 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,156 @@ +xorg = dependency('xorg-server', required : true) +libdrm = dependency('libdrm', required : true) +pixman = dependency('pixman-1', required : true) + +with_dri1 = get_option('dri1') +if with_dri1 + dri1 = dependency('xf86driproto', required : true) + has_dri1 = (cc.has_header('dri.h', dependencies : xorg) and + cc.has_header('sarea.h', dependencies : xorg) and + cc.has_header('dristruct.h', dependencies : xorg)) + + # Currently 'required' doesn't work for cc.has_header() & co. + if not has_dri1 + error('DRI1 dependencies not met') + endif + + config.set('HAVE_DRI1', 1) +endif + +with_dri2 = get_option('dri2') +if with_dri2 + dri2 = dependency('dri2proto', version : '>= 2.6', required : true) + + dri = dependency('dri', required : false) + if dri.found() + dridriverdir = dri.get_pkgconfig_variable('dridriverdir') + else + dridriverdir = join_paths(get_option('libdir'), 'dri') + endif + + config.set('HAVE_DRI2', 1) + config.set_quoted('DRI_DRIVER_PATH', dridriverdir) +endif + +with_dri3 = get_option('dri3') +if with_dri3 + dri3 = dependency('dri3proto', required : true) + has_dri3 = (cc.has_header_symbol('xorg-server.h', 'DRI3', + dependencies : xorg) and + cc.has_header('misyncstr.h', + dependencies : xorg) and + cc.has_header('misyncshm.h', + dependencies : xorg)) + + # Currently 'required' doesn't work for cc.has_header() & co. + if not has_dri3 + error('DRI3 dependencies not met') + endif + + config.set('HAVE_DRI3', 1) +endif + +default_dri = get_option('default-dri') +config.set('DEFAULT_DRI_LEVEL', default_dri) + +present = dependency('presentproto', required : false) +has_present = (present.found() and + cc.has_header('present.h', dependencies : xorg)) +if has_present + config.set('HAVE_PRESENT', 1) +endif + +if get_option('backlight') + config.set('USE_BACKLIGHT', 1) +endif +with_backlight_helper = get_option('backlight-helper') +if with_backlight_helper + config.set('USE_BACKLIGHT_HELPER', 1) +endif + +debug = get_option('debug') +if debug == 'sync' + config.set('DEBUG_SYNC', 1) +endif +if debug == 'memory' or debug == 'full' + config.set('DEBUG_MEMORY', 1) +endif +if debug == 'pixmap' or debug == 'full' + config.set('DEBUG_PIXMAP', 1) +endif +if debug == 'full' + config.set('HAS_DEBUG_FULL', 1) +endif + +intel_drv_sources = [ + 'backlight.c', + 'fd.c', + 'intel_device.c', + 'intel_options.c', + 'intel_module.c', +] + +intel_drv_deps = [ + dependency('pciaccess', version : '>= 0.10', required : true), + xorg, +] + +intel_drv_libs = [] + +if with_ums + subdir('legacy/i810') + intel_drv_libs += i810 +endif + +default_accel = get_option('default-accel') + +with_sna = get_option('sna') +if with_sna + subdir('sna') + intel_drv_libs += sna +elif default_accel == 'sna' + error('SNA not available, so can\'t selected as the default acceleration method') +endif + +with_uxa = get_option('uxa') +if with_uxa + subdir('uxa') + intel_drv_libs += uxa +elif default_accel == 'uxa' + error('UXA not available, so can\'t selected as the default acceleration method') +endif + +if default_accel == 'sna' + config.set('DEFAULT_ACCEL_METHOD', 'SNA') +elif default_accel == 'uxa' + config.set('DEFAULT_ACCEL_METHOD', 'UXA') +else + config.set('DEFAULT_ACCEL_METHOD', 'NOACCEL') +endif + +if with_valgrind + intel_drv_deps += valgrind +endif + +xorg_moduledir = get_option('xorg-module-dir') +moduledir = '' +foreach dir : xorg_moduledir.split('/') + if dir == '@libdir@' + dir = get_option('libdir') + endif + moduledir = join_paths(moduledir, dir) +endforeach + +shared_module('intel_drv', + sources : intel_drv_sources, + dependencies : intel_drv_deps, + link_with : intel_drv_libs, + c_args : [ + '-DMAJOR_IN_SYSMACROS', + '-Wno-unused-parameter', + '-Wno-sign-compare', + '-Wno-missing-field-initializers', + ], + name_prefix : '', + install_dir : join_paths(moduledir, 'drivers'), + install : true) diff --git a/src/sna/brw/meson.build b/src/sna/brw/meson.build new file mode 100644 index 00000000..fcf2b120 --- /dev/null +++ b/src/sna/brw/meson.build @@ -0,0 +1,41 @@ +brw_deps = [ + xorg, + libudev, + libdrm, +] + +if with_valgrind + brw_deps += valgrind +endif + +brw = static_library('brw', + sources : [ + 'brw_disasm.c', + 'brw_eu.c', + 'brw_eu_emit.c', + 'brw_sf.c', + 'brw_wm.c', + ], + dependencies : brw_deps, + include_directories : inc, + c_args : [ + '-Wno-unused-parameter', + '-Wno-sign-compare', + ], + install : false) + +executable('brw_test', + sources : [ + 'brw_test.c', + 'brw_test_gen4.c', + 'brw_test_gen5.c', + 'brw_test_gen6.c', + 'brw_test_gen7.c', + ], + link_with : brw, + include_directories : inc, + c_args : [ + '-Wno-unused-const-variable', + '-Wno-unused-parameter', + ], + install : false) diff --git a/src/sna/fb/meson.build b/src/sna/fb/meson.build new file mode 100644 index 00000000..3a09ba22 --- /dev/null +++ b/src/sna/fb/meson.build @@ -0,0 +1,31 @@ +fb = static_library('fb', + sources : [ + 'fbarc.c', + 'fbbitmap.c', + 'fbblt.c', + 'fbbltone.c', + 'fbclip.c', + 'fbcopy.c', + 'fbfill.c', + 'fbgc.c', + 'fbglyph.c', + 'fbimage.c', + 'fbline.c', + 'fbpict.c', + 'fbpoint.c', + 'fbpush.c', + 'fbseg.c', + 'fbspan.c', + 'fbstipple.c', + 'fbtile.c', + 'fbutil.c', + ], + dependencies : [ + xorg, + pixman, + ], + c_args : [ + '-Wno-unused-parameter', + '-Wno-sign-compare', + ], + install : false) diff --git a/src/sna/git_version.h.in b/src/sna/git_version.h.in new file mode 100644 index 00000000..dd8e5170 --- /dev/null +++ b/src/sna/git_version.h.in @@ -0,0 +1 @@ +static const char git_version[] = "@VCS_TAG@"; diff --git a/src/sna/meson.build b/src/sna/meson.build new file mode 100644 index 00000000..5631d4d8 --- /dev/null +++ b/src/sna/meson.build @@ -0,0 +1,139 @@ +config.set('USE_SNA', 1) + +if cc.has_member('struct sysinfo', 'totalram', + prefix : '#include <sys/sysinfo.h>') + config.set('HAVE_STRUCT_SYSINFO_TOTALRAM', 1) +endif + +git_version_h = vcs_tag(input : 'git_version.h.in', output : 'git_version.h', + fallback : 'not compiled from git', + command : [ 'git', 'describe' ] ) + +config.set('HAVE_DOT_GIT', 1) + +if cc.has_header('alloca.h') + config.set('HAVE_ALLOCA_H', 1) +endif + +sna_deps = [ + cc.find_library('m', required : true), + dependency('threads', required : true), + dependency('xorg-server', required : true), + dependency('libdrm', required : true), +] + +sna_sources = [ + 'blt.c', + 'kgem.c', + 'sna_accel.c', + 'sna_acpi.c', + 'sna_blt.c', + 'sna_composite.c', + 'sna_cpu.c', + 'sna_damage.c', + 'sna_display.c', + 'sna_display_fake.c', + 'sna_driver.c', + 'sna_glyphs.c', + 'sna_gradient.c', + 'sna_io.c', + 'sna_render.c', + 'sna_stream.c', + 'sna_trapezoids.c', + 'sna_trapezoids_boxes.c', + 'sna_trapezoids_imprecise.c', + 'sna_trapezoids_mono.c', + 'sna_trapezoids_precise.c', + 'sna_tiling.c', + 'sna_transform.c', + 'sna_threads.c', + 'sna_vertex.c', + 'sna_video.c', + 'sna_video_overlay.c', + 'sna_video_sprite.c', + 'sna_video_textured.c', + 'gen2_render.c', + 'gen3_render.c', + 'gen4_common.c', + 'gen4_render.c', + 'gen4_source.c', + 'gen4_vertex.c', + 'gen5_render.c', + 'gen6_common.c', + 'gen6_render.c', + 'gen7_render.c', + 'gen8_eu.c', + 'gen8_render.c', + 'gen8_vertex.c', + 'gen9_render.c', +] + +if libudev.found() + sna_deps += libudev +endif + +if with_valgrind + sna_deps += valgrind +endif + +if with_dri2 + sna_sources += 'sna_dri2.c' + sna_deps += [ + dependency('dri2proto', required : true), + cc.find_library('rt', required : true), + ] +endif + +if with_dri3 + sna_sources += 'sna_dri3.c' + sna_deps += dri3 +endif + +if has_present + sna_sources += 'sna_present.c' + sna_deps += present +endif + +if with_xvmc + sna_sources += 'sna_video_hwmc.c' +endif + +if debug == 'full' + sna_sources += [ + 'kgem_debug.c', + 'kgem_debug_gen2.c', + 'kgem_debug_gen3.c', + 'kgem_debug_gen4.c', + 'kgem_debug_gen5.c', + 'kgem_debug_gen6.c', + 'kgem_debug_gen7.c', + ] +endif + +if get_option('tearfree') + config.set('TEARFREE', 1) +endif +if get_option('use-create2') + config.set('USE_CREATE2', 1) +endif +if get_option('async-swap') + config.set('USE_ASYNC_SWAP', 1) +endif + +subdir('brw') +subdir('fb') + +sna = static_library('sna', + [ git_version_h, sna_sources ], + dependencies : sna_deps, + link_with : [ brw, fb, ], + include_directories : inc, + c_args : [ + '-Wno-missing-field-initializers', + '-Wno-unused-but-set-variable', + '-Wno-shift-negative-value', + '-Wno-unused-parameter', + '-Wno-sign-compare', + '-Wno-type-limits', + ], + install : false) diff --git a/src/uxa/meson.build b/src/uxa/meson.build new file mode 100644 index 00000000..5f0929ae --- /dev/null +++ b/src/uxa/meson.build @@ -0,0 +1,65 @@ +config.set('USE_UXA', 1) + +uxa_sources = [ + 'intel_batchbuffer.c', + 'intel_display.c', + 'intel_driver.c', + 'intel_memory.c', + 'intel_uxa.c', + 'intel_video.c', + 'intel_video_overlay.c', + 'intel_uxa_video.c', + 'i830_3d.c', + 'i830_render.c', + 'i915_3d.c', + 'i915_render.c', + 'i915_video.c', + 'i965_3d.c', + 'i965_video.c', + 'i965_render.c', + 'uxa.c', + 'uxa-accel.c', + 'uxa-glyphs.c', + 'uxa-render.c', + 'uxa-unaccel.c', +] + +uxa_deps = [ + dependency('xorg-server', version : '>= 1.6', required : true), + dependency('pixman-1', version : '>= 0.24.0', required : true), + dependency('libdrm', required : true), + dependency('libdrm_intel', version : '>= 2.4.52', required : true), + dependency('libudev', required : false), +] + +if with_dri2 + uxa_sources += 'intel_dri.c' + uxa_deps += dependency('dri2proto', version : '>= 2.6', required : true) +endif + +if with_dri3 + uxa_sources += [ + 'intel_dri3.c', + 'intel_sync.c', + ] +endif + +if has_present + uxa_sources += 'intel_present.c' +endif + +if with_xvmc + uxa_sources += 'intel_hwmc.c' +endif + +uxa = static_library('uxa', + sources : uxa_sources, + dependencies : uxa_deps, + include_directories : inc, + c_args : [ + '-Wno-deprecated-declarations', + '-Wno-shift-negative-value', + '-Wno-unused-parameter', + '-Wno-sign-compare', + ], + install : false) diff --git a/tools/meson.build b/tools/meson.build new file mode 100644 index 00000000..b4621abb --- /dev/null +++ b/tools/meson.build @@ -0,0 +1,98 @@ +if with_tools + executable('intel-virtual-output', + sources : 'virtual.c', + dependencies : [ + dependency('x11', required : true), + dependency('xext', required : true), + dependency('xfixes', required : true), + dependency('xrender', required : true), + dependency('xdamage', required : true), + dependency('xrandr', required : true), + dependency('xrender', required : true), + dependency('xcursor', required : true), + dependency('xscrnsaver', required : true), + dependency('xinerama', required : true), + dependency('xtst', required : true), + dependency('pixman-1', required : true), + ], + c_args : [ + '-Wno-unused-parameter', + '-Wno-sign-compare', + ], + install : true) + + configure_file(input : 'intel-virtual-output.man', + output : 'intel-virtual-output.4', + command : [ + 'sed', + '-e', + 's/__appmansuffix__/@0@/g'.format(man_config.get('appmansuffix')), + '-e', + 's/__filemansuffix__/@0@/g'.format(man_config.get('filemansuffix')), + '-e', + 's/__drivermansuffix__/@0@/g'.format(man_config.get('drivermansuffix')), + '-e', + 's/__miscmansuffix__/@0@/g'.format(man_config.get('miscmansuffix')), + '-e', + 's/__xservername__/@0@/g'.format(man_config.get('xservername')), + '-e', + 's/__xconfigfile__/@0@/g'.format(man_config.get('xconfigfile')), + '-e', + 's/__vendorversion__/@0@/g'.format(man_config.get('vendorversion')), + '@INPUT@' + ], + capture : true, + install_dir: join_paths(get_option('mandir'), 'man4'), + install : true) + + executable('cursor', + sources : 'cursor.c', + dependencies : [ + dependency('x11', required : true), + dependency('xfixes', required : true), + dependency('libpng', required : true), + ], + c_args : [ + '-Wno-unused-parameter', + ], + install : false) +endif + +if with_tools and with_dri3 + executable('dri3info', + sources : 'dri3info.c', + dependencies : [ + dependency('x11-xcb', required : true), + dependency('xcb-dri3', required : true), + dependency('x11', required : true), + dependency('xrandr', required : true), + dependency('xxf86vm', required : true), + dependency('dri3proto', required : true), + dependency('dri', required : true), + dependency('libdrm', required : true), + ], + install : false) +endif + +if with_backlight_helper + executable('xf86-video-intel-backlight-helper', + sources : 'backlight_helper.c', + install_dir : get_option('libexecdir'), + install_mode : [ 'rws--x--x', 'root', 'root' ], + c_args : [ + '-DMAJOR_IN_SYSMACROS', + '-Wno-sign-compare', + ], + install : true) + + polkit_config = configuration_data() + polkit_config.set('LIBEXEC_PATH', + join_paths(get_option('prefix'), + get_option('libexecdir'))) + + configure_file(input : 'org.x.xf86-video-intel.backlight-helper.policy.in', + output : 'org.x.xf86-video-intel.backlight-helper.policy', + configuration : polkit_config, + install_dir : join_paths(get_option('datadir'), 'polkit-1/actions'), + install : true) +endif diff --git a/xvmc/meson.build b/xvmc/meson.build new file mode 100644 index 00000000..0ecc51e5 --- /dev/null +++ b/xvmc/meson.build @@ -0,0 +1,31 @@ +xvmc_sources = [ + 'intel_xvmc.c', + 'intel_xvmc_dump.c', + 'i915_xvmc.c', + 'i965_xvmc.c', + 'xvmc_vld.c', + 'intel_batchbuffer.c', +] + +shared_library('IntelXvMC', + soversion : '1', + version : '1.0.0', + sources : xvmc_sources, + dependencies : [ + dependency('threads', required : true), + dependency('x11', required : true), + dependency('xvmc', required : true), + dependency('xorg-server', required : true), + dependency('x11-xcb', required : true), + dependency('xcb-aux', required : true), + dependency('xcb-dri2', required : true), + dependency('libdrm_intel', required : true), + ], + c_args : [ + '-DFALSE=0', '-DTRUE=1', + '-Wno-unused-but-set-variable', + '-Wno-unused-parameter', + '-Wno-sign-compare', + '-Wno-pointer-sign', + ], + install : true) |