1config.set('USE_SNA', 1)
2
3if cc.has_member('struct sysinfo', 'totalram',
4		 prefix : '#include <sys/sysinfo.h>')
5  config.set('HAVE_STRUCT_SYSINFO_TOTALRAM', 1)
6endif
7
8git_version_h = vcs_tag(input : 'git_version.h.in', output : 'git_version.h',
9			fallback : 'not compiled from git',
10			command : [ 'git', 'describe' ] )
11
12config.set('HAVE_DOT_GIT', 1)
13
14if cc.has_header('alloca.h')
15  config.set('HAVE_ALLOCA_H', 1)
16endif
17
18sna_deps = [
19  cc.find_library('m', required : true),
20  dependency('threads', required : true),
21  dependency('xorg-server', required : true),
22  dependency('libdrm', required : true),
23]
24
25sna_sources = [
26  'blt.c',
27  'kgem.c',
28  'sna_accel.c',
29  'sna_acpi.c',
30  'sna_blt.c',
31  'sna_composite.c',
32  'sna_cpu.c',
33  'sna_damage.c',
34  'sna_display.c',
35  'sna_display_fake.c',
36  'sna_driver.c',
37  'sna_glyphs.c',
38  'sna_gradient.c',
39  'sna_io.c',
40  'sna_render.c',
41  'sna_stream.c',
42  'sna_trapezoids.c',
43  'sna_trapezoids_boxes.c',
44  'sna_trapezoids_imprecise.c',
45  'sna_trapezoids_mono.c',
46  'sna_trapezoids_precise.c',
47  'sna_tiling.c',
48  'sna_transform.c',
49  'sna_threads.c',
50  'sna_vertex.c',
51  'sna_video.c',
52  'sna_video_overlay.c',
53  'sna_video_sprite.c',
54  'sna_video_textured.c',
55  'gen2_render.c',
56  'gen3_render.c',
57  'gen4_common.c',
58  'gen4_render.c',
59  'gen4_source.c',
60  'gen4_vertex.c',
61  'gen5_render.c',
62  'gen6_common.c',
63  'gen6_render.c',
64  'gen7_render.c',
65  'gen8_eu.c',
66  'gen8_render.c',
67  'gen8_vertex.c',
68  'gen9_render.c',
69]
70
71if libudev.found()
72  sna_deps += libudev
73endif
74
75if with_valgrind
76  sna_deps += valgrind
77endif
78
79if with_dri2
80  sna_sources += 'sna_dri2.c'
81  sna_deps += [
82    dependency('dri2proto', required : true),
83    cc.find_library('rt', required : true),
84  ]
85endif
86
87if with_dri3
88  sna_sources += 'sna_dri3.c'
89  sna_deps += dri3
90endif
91
92if has_present
93  sna_sources += 'sna_present.c'
94  sna_deps += present
95endif
96
97if with_xvmc
98  sna_sources += 'sna_video_hwmc.c'
99endif
100
101if debug == 'full'
102  sna_sources += [
103    'kgem_debug.c',
104    'kgem_debug_gen2.c',
105    'kgem_debug_gen3.c',
106    'kgem_debug_gen4.c',
107    'kgem_debug_gen5.c',
108    'kgem_debug_gen6.c',
109    'kgem_debug_gen7.c',
110  ]
111endif
112
113if get_option('tearfree')
114  config.set('TEARFREE', 1)
115endif
116if get_option('use-create2')
117  config.set('USE_CREATE2', 1)
118endif
119if get_option('async-swap')
120  config.set('USE_ASYNC_SWAP', 1)
121endif
122
123subdir('brw')
124subdir('fb')
125
126sna = static_library('sna',
127		     [ git_version_h, sna_sources ],
128		     dependencies : sna_deps,
129		     link_with : [ brw, fb, ],
130		     include_directories : inc,
131		     c_args : [
132		       '-Wno-missing-field-initializers',
133		       '-Wno-unused-but-set-variable',
134		       '-Wno-shift-negative-value',
135		       '-Wno-unused-parameter',
136		       '-Wno-sign-compare',
137		       '-Wno-type-limits',
138		     ],
139		     install : false)
140