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