summaryrefslogtreecommitdiff
path: root/src/sna/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/meson.build')
-rw-r--r--src/sna/meson.build139
1 files changed, 139 insertions, 0 deletions
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)