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