Arkadiusz Hiler | eccae13 | 2018-05-15 14:07:50 +0300 | [diff] [blame] | 1 | project('igt-gpu-tools', 'c', |
Arkadiusz Hiler | 4b728a5 | 2018-07-18 00:21:44 +0300 | [diff] [blame] | 2 | version : '1.23', |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 3 | default_options: [ |
| 4 | 'warning_level=2', |
Lucas De Marchi | 523bc59 | 2018-06-06 15:27:39 -0700 | [diff] [blame] | 5 | 'c_std=gnu11', |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 6 | ], |
Daniel Vetter | 866970a | 2017-09-05 14:36:24 +0200 | [diff] [blame] | 7 | license : 'MIT', |
Petri Latvala | 779d2d4 | 2018-07-27 15:40:06 +0300 | [diff] [blame] | 8 | meson_version : '>=0.44.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 = [ |
Petri Latvala | 7fd5da2 | 2018-10-29 16:30:54 +0200 | [diff] [blame^] | 13 | '-Wbad-function-cast', |
| 14 | '-Wdeclaration-after-statement', |
| 15 | '-Wformat=2', |
Eric Anholt | cae05d9 | 2017-09-05 14:36:17 +0200 | [diff] [blame] | 16 | # igt_assert(0) in switch statements triggers a bunch of this. |
Daniel Vetter | c4614fe | 2017-09-05 14:36:20 +0200 | [diff] [blame] | 17 | '-Wimplicit-fallthrough=0', |
Petri Latvala | 7fd5da2 | 2018-10-29 16:30:54 +0200 | [diff] [blame^] | 18 | '-Wlogical-op', |
| 19 | '-Wmissing-declarations', |
| 20 | '-Wmissing-format-attribute', |
| 21 | '-Wmissing-noreturn', |
| 22 | '-Wmissing-prototypes', |
| 23 | '-Wnested-externs', |
| 24 | '-Wold-style-definition', |
| 25 | '-Wpointer-arith', |
| 26 | '-Wredundant-decls', |
| 27 | '-Wshadow', |
| 28 | '-Wstrict-prototypes', |
| 29 | '-Wuninitialized', |
| 30 | '-Wunused', |
| 31 | |
| 32 | '-Wno-clobbered', |
| 33 | '-Wno-maybe-uninitialized', |
| 34 | '-Wno-missing-field-initializers', |
| 35 | '-Wno-pointer-arith', |
| 36 | '-Wno-sign-compare', |
| 37 | # Macros asserting on the range of their arguments triggers this. |
| 38 | '-Wno-type-limits', |
| 39 | '-Wno-unused-parameter', |
| 40 | '-Wno-unused-result', |
| 41 | |
| 42 | '-Werror=address', |
| 43 | '-Werror=array-bounds', |
| 44 | '-Werror=implicit', |
| 45 | '-Werror=init-self', |
| 46 | '-Werror=int-to-pointer-cast', |
| 47 | '-Werror=main', |
| 48 | '-Werror=missing-braces', |
| 49 | '-Werror=nonnull', |
| 50 | '-Werror=pointer-to-int-cast', |
| 51 | '-Werror=return-type', |
| 52 | '-Werror=sequence-point', |
| 53 | '-Werror=trigraphs', |
| 54 | '-Werror=write-strings', |
Daniel Vetter | c4614fe | 2017-09-05 14:36:20 +0200 | [diff] [blame] | 55 | ] |
| 56 | |
| 57 | foreach cc_arg : cc_args |
| 58 | if cc.has_argument(cc_arg) |
| 59 | add_global_arguments(cc_arg, language : 'c') |
| 60 | endif |
| 61 | endforeach |
Eric Anholt | cae05d9 | 2017-09-05 14:36:17 +0200 | [diff] [blame] | 62 | |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 63 | _build_overlay = false |
| 64 | _overlay_required = false |
| 65 | _build_man = false |
| 66 | _man_required = false |
| 67 | _build_audio = false |
| 68 | _audio_required = false |
| 69 | _build_chamelium = false |
| 70 | _chamelium_required = false |
| 71 | _build_docs = false |
| 72 | _docs_required = false |
| 73 | _build_tests = false |
| 74 | _tests_required = false |
Petri Latvala | 18c1e75 | 2018-08-08 14:07:00 +0300 | [diff] [blame] | 75 | _build_runner = false |
| 76 | _runner_required = false |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 77 | |
| 78 | build_overlay = get_option('build_overlay') |
| 79 | overlay_backends = get_option('overlay_backends') |
| 80 | build_man = get_option('build_man') |
| 81 | with_valgrind = get_option('with_valgrind') |
| 82 | build_audio = get_option('build_audio') |
| 83 | build_chamelium = get_option('build_chamelium') |
| 84 | build_docs = get_option('build_docs') |
| 85 | build_tests = get_option('build_tests') |
| 86 | with_libdrm = get_option('with_libdrm') |
Daniel Vetter | 2908e4c | 2018-10-30 13:22:12 +0100 | [diff] [blame] | 87 | with_libunwind = get_option('with_libunwind') |
Petri Latvala | 18c1e75 | 2018-08-08 14:07:00 +0300 | [diff] [blame] | 88 | build_runner = get_option('build_runner') |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 89 | |
| 90 | _build_overlay = build_overlay != 'false' |
| 91 | _overlay_required = build_overlay == 'true' |
| 92 | _build_man = build_man != 'false' |
| 93 | _man_required = build_man == 'true' |
| 94 | _build_audio = build_audio != 'false' |
| 95 | _audio_required = build_audio == 'true' |
| 96 | _build_chamelium = build_chamelium != 'false' |
| 97 | _chamelium_required = build_chamelium == 'true' |
| 98 | _build_docs = build_docs != 'false' |
| 99 | _docs_required = build_docs == 'true' |
| 100 | _build_tests = build_tests != 'false' |
| 101 | _tests_required = build_tests == 'true' |
Petri Latvala | 18c1e75 | 2018-08-08 14:07:00 +0300 | [diff] [blame] | 102 | _build_runner = build_runner != 'false' |
| 103 | _runner_required = build_runner == 'true' |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 104 | |
| 105 | build_info = [] |
| 106 | |
Lucas De Marchi | 31ea7dd | 2018-07-24 15:20:23 -0700 | [diff] [blame] | 107 | inc = include_directories('include/drm-uapi', 'lib', 'lib/stubs/syscalls', '.') |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 108 | |
Daniel Vetter | 491e8c1 | 2017-12-05 11:16:49 +0100 | [diff] [blame] | 109 | inc_for_gtkdoc = include_directories('lib') |
| 110 | |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 111 | config = configuration_data() |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 112 | |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 113 | null_dep = dependency('', required : false) |
| 114 | |
| 115 | libdrm_info = [] |
| 116 | libdrm_intel = null_dep |
| 117 | libdrm_nouveau = null_dep |
| 118 | libdrm_amdgpu = null_dep |
| 119 | |
Arkadiusz Hiler | 43d7c05 | 2018-03-08 13:25:44 +0200 | [diff] [blame] | 120 | libdrm_version = '>=2.4.82' |
| 121 | libdrm = dependency('libdrm', version : libdrm_version) |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 122 | if with_libdrm.contains('auto') or with_libdrm.contains('intel') |
| 123 | libdrm_intel = dependency('libdrm_intel', version : libdrm_version, required : with_libdrm.contains('intel')) |
| 124 | libdrm_info += 'intel' |
| 125 | endif |
| 126 | if with_libdrm.contains('auto') or with_libdrm.contains('nouveau') |
| 127 | libdrm_nouveau = dependency('libdrm_nouveau', version : libdrm_version, required : with_libdrm.contains('nouveau')) |
| 128 | libdrm_info += 'nouveau' |
| 129 | endif |
| 130 | if with_libdrm.contains('auto') or with_libdrm.contains('amdgpu') |
| 131 | libdrm_amdgpu = dependency('libdrm_amdgpu', version : libdrm_version, required : with_libdrm.contains('amdgpu')) |
| 132 | libdrm_info += 'amdgpu' |
| 133 | endif |
| 134 | |
| 135 | build_info += 'With libdrm: ' + ','.join(libdrm_info) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 136 | |
| 137 | pciaccess = dependency('pciaccess', version : '>=0.10') |
| 138 | libkmod = dependency('libkmod') |
Arkadiusz Hiler | 643dc09 | 2017-11-24 17:17:48 +0200 | [diff] [blame] | 139 | libprocps = dependency('libprocps', required : true) |
Daniel Vetter | 2908e4c | 2018-10-30 13:22:12 +0100 | [diff] [blame] | 140 | |
| 141 | libunwind = null_dep |
| 142 | libunwindinfo = 'No' |
| 143 | if with_libunwind != 'false' |
| 144 | libunwind = dependency('libunwind', required : with_libunwind == 'true') |
| 145 | if libunwind.found() |
| 146 | libunwindinfo = 'Yes' |
| 147 | endif |
| 148 | endif |
| 149 | build_info += 'With libunwind: ' + libunwindinfo |
| 150 | |
Maarten Lankhorst | e39e099 | 2018-08-28 14:04:25 +0200 | [diff] [blame] | 151 | libdw = dependency('libdw', required : true) |
Chris Wilson | caea9c5 | 2018-05-30 22:44:56 +0100 | [diff] [blame] | 152 | ssl = dependency('openssl', required : true) |
Maxime Ripard | ddb3828 | 2018-10-04 14:39:01 +0200 | [diff] [blame] | 153 | pixman = dependency('pixman-1', required : true) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 154 | |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 155 | valgrind = null_dep |
| 156 | valgrindinfo = 'No' |
| 157 | if with_valgrind != 'false' |
| 158 | valgrind = dependency('valgrind', required : with_valgrind == 'true') |
| 159 | if valgrind.found() |
| 160 | config.set('HAVE_VALGRIND', 1) |
| 161 | valgrindinfo = 'Yes' |
| 162 | endif |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 163 | endif |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 164 | build_info += 'Valgrind annotations: ' + valgrindinfo |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 165 | |
Arkadiusz Hiler | f9b6fd6 | 2018-02-20 11:00:22 +0200 | [diff] [blame] | 166 | cairo = dependency('cairo', version : '>1.12.0', required : true) |
Antonio Argenziano | d75e676 | 2018-02-23 15:14:40 -0800 | [diff] [blame] | 167 | libudev = dependency('libudev', required : true) |
Petri Latvala | 9bbfbb1 | 2018-06-21 14:06:24 +0300 | [diff] [blame] | 168 | glib = dependency('glib-2.0', required : true) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 169 | |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 170 | gsl = null_dep |
| 171 | alsa = null_dep |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 172 | if _build_audio or _build_chamelium |
| 173 | gsl = dependency('gsl', required : _audio_required or _chamelium_required) |
| 174 | endif |
| 175 | if _build_audio |
| 176 | alsa = dependency('alsa', required : _audio_required) |
| 177 | endif |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 178 | |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 179 | audioinfo = 'No' |
| 180 | if _build_audio and alsa.found() and gsl.found() |
| 181 | audioinfo = 'Yes' |
| 182 | else |
| 183 | if _audio_required |
| 184 | error('Cannot build audio test due to missing dependencies') |
| 185 | endif |
| 186 | _build_audio = false |
| 187 | endif |
| 188 | build_info += 'Build audio test: ' + audioinfo |
| 189 | |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 190 | xmlrpc = dependency('xmlrpc', required : false) |
| 191 | xmlrpc_util = dependency('xmlrpc_util', required : false) |
| 192 | xmlrpc_client = dependency('xmlrpc_client', required : false) |
| 193 | |
Jani Nikula | 1ae18b0 | 2017-10-24 11:14:14 +0300 | [diff] [blame] | 194 | xmlrpc_cmd = find_program('xmlrpc-c-config', required : false) |
| 195 | if not xmlrpc.found() and xmlrpc_cmd.found() |
| 196 | libs_cmd = run_command(xmlrpc_cmd, 'client', '--libs') |
| 197 | cflags_cmd = run_command(xmlrpc_cmd, 'client', '--cflags') |
Arkadiusz Hiler | 892abc6 | 2017-10-17 15:05:41 +0300 | [diff] [blame] | 198 | |
| 199 | if libs_cmd.returncode() == 0 and cflags_cmd.returncode() == 0 |
| 200 | xmlrpc = declare_dependency(compile_args: cflags_cmd.stdout().strip().split(), |
| 201 | link_args : libs_cmd.stdout().strip().split()) |
| 202 | xmlrpc_util = declare_dependency() |
| 203 | xmlrpc_client = declare_dependency() |
| 204 | endif |
| 205 | endif |
| 206 | |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 207 | chamelium = null_dep |
| 208 | chameliuminfo = 'No' |
Maxime Ripard | ddb3828 | 2018-10-04 14:39:01 +0200 | [diff] [blame] | 209 | if _build_chamelium and gsl.found() and xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found() |
| 210 | chamelium = declare_dependency(dependencies : [ xmlrpc, |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 211 | xmlrpc_util, xmlrpc_client]) |
Arkadiusz Hiler | 892abc6 | 2017-10-17 15:05:41 +0300 | [diff] [blame] | 212 | config.set('HAVE_CHAMELIUM', 1) |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 213 | chameliuminfo = 'Yes' |
| 214 | elif _chamelium_required |
| 215 | error('Cannot build chamelium test due to missing dependencies') |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 216 | endif |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 217 | build_info += 'Build Chamelium test: ' + chameliuminfo |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 218 | |
| 219 | pthreads = dependency('threads') |
| 220 | math = cc.find_library('m') |
| 221 | realtime = cc.find_library('rt') |
| 222 | dlsym = cc.find_library('dl') |
| 223 | zlib = cc.find_library('z') |
| 224 | |
| 225 | if cc.has_header('linux/kd.h') |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 226 | config.set('HAVE_LINUX_KD_H', 1) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 227 | endif |
| 228 | if cc.has_header('sys/kd.h') |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 229 | config.set('HAVE_SYS_KD_H', 1) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 230 | endif |
| 231 | if cc.has_header('libgen.h') |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 232 | config.set('HAVE_LIBGEN_H', 1) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 233 | endif |
| 234 | if cc.has_header('sys/io.h') |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 235 | config.set('HAVE_SYS_IO_H', 1) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 236 | endif |
| 237 | if cc.has_header('cpuid.h') |
| 238 | # FIXME: Do we need the example link test from configure.ac? |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 239 | config.set('HAVE_CPUID_H', 1) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 240 | endif |
| 241 | |
| 242 | if cc.has_member('struct sysinfo', 'totalram', |
| 243 | prefix : '#include <sys/sysinfo.h>') |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 244 | config.set('HAVE_STRUCT_SYSINFO_TOTALRAM', 1) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 245 | endif |
| 246 | |
Lucas De Marchi | bcb37a9 | 2018-07-24 15:20:24 -0700 | [diff] [blame] | 247 | have = cc.has_function('memfd_create', prefix : '''#include <sys/mman.h>''', args : '-D_GNU_SOURCE') |
| 248 | config.set10('HAVE_MEMFD_CREATE', have) |
| 249 | |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 250 | add_project_arguments('-D_GNU_SOURCE', language : 'c') |
| 251 | add_project_arguments('-include', 'config.h', language : 'c') |
| 252 | |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 253 | config.set('PACKAGE_NAME', meson.project_name()) |
| 254 | config.set_quoted('PACKAGE_VERSION', meson.project_version()) |
| 255 | config.set_quoted('PACKAGE', meson.project_name()) |
| 256 | config.set('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version()) |
| 257 | config.set_quoted('TARGET_CPU_PLATFORM', host_machine.cpu_family()) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 258 | |
Daniel Vetter | 6e26225 | 2017-09-08 17:14:48 +0200 | [diff] [blame] | 259 | configure_file(output: 'config.h', install: false, configuration: config) |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 260 | |
Petri Latvala | 4ebf687 | 2018-01-15 13:14:56 +0200 | [diff] [blame] | 261 | prefix = get_option('prefix') |
| 262 | bindir = get_option('bindir') |
Arkadiusz Hiler | eccae13 | 2018-05-15 14:07:50 +0300 | [diff] [blame] | 263 | datadir = join_paths(get_option('datadir'), 'igt-gpu-tools') |
Petri Latvala | 4ebf687 | 2018-01-15 13:14:56 +0200 | [diff] [blame] | 264 | includedir = get_option('includedir') |
| 265 | libdir = get_option('libdir') |
Arkadiusz Hiler | eccae13 | 2018-05-15 14:07:50 +0300 | [diff] [blame] | 266 | libexecdir = join_paths(get_option('libexecdir'), 'igt-gpu-tools') |
Arkadiusz Hiler | 6cc5ebf | 2018-08-13 13:16:22 +0300 | [diff] [blame] | 267 | amdgpudir = join_paths(libexecdir, 'amdgpu') |
Petri Latvala | 4ebf687 | 2018-01-15 13:14:56 +0200 | [diff] [blame] | 268 | mandir = get_option('mandir') |
| 269 | pkgconfigdir = join_paths(libdir, 'pkgconfig') |
| 270 | |
Arkadiusz Hiler | 6cc5ebf | 2018-08-13 13:16:22 +0300 | [diff] [blame] | 271 | if get_option('use_rpath') |
| 272 | # Set up runpath for the test executables towards libigt.so. |
| 273 | # The path should be relative to $ORIGIN so the library is |
| 274 | # still found properly even if installed to a path other than |
| 275 | # prefix. |
| 276 | |
| 277 | # libdir and bindir are pathnames relative to prefix. meson |
| 278 | # enforces this. |
| 279 | |
| 280 | # 1. Start from the executable. |
| 281 | # 2. Executables are installed in certain dir. Add a .. for each |
| 282 | # directory name in it. |
| 283 | # 3. Add relative path to libdir. |
| 284 | |
| 285 | bindir_rpathdir = '$ORIGIN' |
| 286 | foreach p : bindir.split('/') |
| 287 | bindir_rpathdir = join_paths(bindir_rpathdir, '..') |
| 288 | endforeach |
| 289 | bindir_rpathdir = join_paths(bindir_rpathdir, libdir) |
| 290 | |
| 291 | libexecdir_rpathdir = '$ORIGIN' |
| 292 | foreach p : libexecdir.split('/') |
| 293 | libexecdir_rpathdir = join_paths(libexecdir_rpathdir, '..') |
| 294 | endforeach |
| 295 | libexecdir_rpathdir = join_paths(libexecdir_rpathdir, libdir) |
| 296 | |
| 297 | amdgpudir_rpathdir = '$ORIGIN' |
| 298 | foreach p : amdgpudir.split('/') |
| 299 | amdgpudir_rpathdir = join_paths(amdgpudir_rpathdir, '..') |
| 300 | endforeach |
| 301 | amdgpudir_rpathdir = join_paths(amdgpudir_rpathdir, libdir) |
| 302 | else |
| 303 | bindir_rpathdir = '' |
| 304 | libexecdir_rpathdir = '' |
| 305 | amdgpudir_rpathdir = '' |
| 306 | endif |
| 307 | |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 308 | subdir('lib') |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 309 | if _build_tests |
| 310 | subdir('tests') |
| 311 | build_info += 'Build tests: Yes' |
| 312 | else |
| 313 | build_info += 'Build tests: No' |
| 314 | endif |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 315 | subdir('benchmarks') |
| 316 | subdir('tools') |
Petri Latvala | 18c1e75 | 2018-08-08 14:07:00 +0300 | [diff] [blame] | 317 | subdir('runner') |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 318 | if libdrm_intel.found() |
| 319 | subdir('assembler') |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 320 | endif |
| 321 | subdir('overlay') |
| 322 | subdir('man') |
| 323 | |
| 324 | docs_info = 'No' |
| 325 | if _build_docs |
| 326 | if _build_tests |
| 327 | subdir('docs') |
| 328 | docs_info = 'Yes' |
| 329 | elif _docs_required |
| 330 | error('Documentation requires building tests') |
Eric Anholt | b26e918 | 2017-09-27 11:30:52 -0700 | [diff] [blame] | 331 | endif |
Daniel Vetter | 9a7d850 | 2017-09-05 14:36:14 +0200 | [diff] [blame] | 332 | endif |
Petri Latvala | 0e98bf6 | 2018-06-21 14:06:25 +0300 | [diff] [blame] | 333 | build_info += 'Build documentation: ' + docs_info |
| 334 | |
| 335 | message('Build options') |
| 336 | message('=============') |
| 337 | foreach str : build_info |
| 338 | message(str) |
| 339 | endforeach |