blob: 2b49a0db6500450b85af95de843d5ac8e13d8cb4 [file] [log] [blame]
Daniel Vetter9a7d8502017-09-05 14:36:14 +02001project('IGT gpu tests', 'c',
2 version : '1.19',
3 default_options: [
4 'warning_level=2',
5 'c_std=gnu99',
6 ],
7 license : 'MIT')
8
9cc = meson.get_compiler('c')
10
Daniel Vetterc4614fe2017-09-05 14:36:20 +020011cc_args = [
12 '-Wno-unused-parameter',
13 '-Wno-sign-compare',
14 '-Wno-missing-field-initializers',
15 '-Wno-clobbered',
Eric Anholtcae05d92017-09-05 14:36:17 +020016# Macros asserting on the range of their arguments triggers this.
Daniel Vetterc4614fe2017-09-05 14:36:20 +020017 '-Wno-type-limits',
Eric Anholtcae05d92017-09-05 14:36:17 +020018# igt_assert(0) in switch statements triggers a bunch of this.
Daniel Vetterc4614fe2017-09-05 14:36:20 +020019 '-Wimplicit-fallthrough=0',
20]
21
22foreach cc_arg : cc_args
23 if cc.has_argument(cc_arg)
24 add_global_arguments(cc_arg, language : 'c')
25 endif
26endforeach
Eric Anholtcae05d92017-09-05 14:36:17 +020027
Daniel Vetter9a7d8502017-09-05 14:36:14 +020028inc = include_directories('lib', '.')
29
30config_h = configuration_data()
31
32libdrm = dependency('libdrm', version : '>=2.4.82')
33libdrm_intel = dependency('libdrm_intel', required : false)
34libdrm_vc4 = dependency('libdrm_vc4', required : false)
35libdrm_nouveau = dependency('libdrm_nouveau', required : false)
36libdrm_amdgpu = dependency('libdrm_amdgpu', required : false)
37
38pciaccess = dependency('pciaccess', version : '>=0.10')
39libkmod = dependency('libkmod')
40libprocps = dependency('libprocps', required : false)
41if libprocps.found()
42 config_h.set('HAVE_PROCPS', 1)
43endif
44
45valgrind = dependency('valgrind', required : false)
46if valgrind.found()
47 config_h.set('HAVE_VALGRIND', 1)
48endif
49
50cairo = dependency('cairo', version : '>1.12.0', required : false)
51
52libudev = dependency('libudev', required : false)
53if libudev.found()
54 config_h.set('HAVE_UDEV', 1)
55endif
56
57glib = dependency('glib-2.0', required : false)
58if glib.found()
59 config_h.set('HAVE_GLIB', 1)
60endif
61
62libunwind = dependency('libunwind')
63gsl = dependency('gsl', required : false)
64alsa = dependency('alsa', required : false)
65
66pixman = dependency('pixman-1', required : false)
67xmlrpc = dependency('xmlrpc', required : false)
68xmlrpc_util = dependency('xmlrpc_util', required : false)
69xmlrpc_client = dependency('xmlrpc_client', required : false)
70
71if pixman.found() and xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found()
72 chamelium = declare_dependency(dependencies : [ pixman, xmlrpc,
73 xmlrpc_util, xmlrpc_client])
74else
75 chamelium = dependency('', required: false)
76endif
77
78pthreads = dependency('threads')
79math = cc.find_library('m')
80realtime = cc.find_library('rt')
81dlsym = cc.find_library('dl')
82zlib = cc.find_library('z')
83
84if cc.has_header('linux/kd.h')
85 config_h.set('HAVE_LINUX_KD_H', 1)
86endif
87if cc.has_header('sys/kd.h')
88 config_h.set('HAVE_SYS_KD_H', 1)
89endif
90if cc.has_header('libgen.h')
91 config_h.set('HAVE_LIBGEN_H', 1)
92endif
93if cc.has_header('sys/io.h')
94 config_h.set('HAVE_SYS_IO_H', 1)
95endif
96if cc.has_header('cpuid.h')
97 # FIXME: Do we need the example link test from configure.ac?
98 config_h.set('HAVE_CPUID_H', 1)
99endif
100
101if cc.has_member('struct sysinfo', 'totalram',
102 prefix : '#include <sys/sysinfo.h>')
103 config_h.set('HAVE_STRUCT_SYSINFO_TOTALRAM', 1)
104endif
105
106add_project_arguments('-D_GNU_SOURCE', language : 'c')
107add_project_arguments('-include', 'config.h', language : 'c')
108
109config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
110config_h.set_quoted('PACKAGE', meson.project_name())
111config_h.set_quoted('TARGET_CPU_PLATFORM', host_machine.cpu_family())
112
113configure_file(output: 'config.h', install: false, configuration: config_h)
114
115subdir('lib')
116subdir('tests')
117subdir('benchmarks')
118subdir('tools')
119if libdrm_intel.found()
120 subdir('assembler')
121 subdir('overlay')
122endif
Daniel Vetter895236c2017-09-05 14:36:21 +0200123subdir('man')