* [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options
@ 2019-05-21 9:36 Arkadiusz Hiler
2019-05-21 9:36 ` [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 Arkadiusz Hiler
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Arkadiusz Hiler @ 2019-05-21 9:36 UTC (permalink / raw)
To: igt-dev; +Cc: Petri Latvala
Meson 0.47 comes with a new type of option called 'feature' so instead of:
type : 'combo',
value : 'auto',
choices : ['auto', 'true', 'false'],
We can:
type : 'feature',
The main difference is that the feature takes auto, enabled and disabled
instead of auto, true and false.
get_option() on a feature returns opaque object that can be passed as
a 'required' argument of a dependency. Auto is equivalent to 'required
: false', enabled is equivalent to 'required : true' and disabled
introduces new behavior forcing the dependency to be considered not
found.
This allows us to streamline a lot of logic regarding optional IGT
features.
This patch bumps required meson version to 0.47.0
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Simon Ser <simon.ser@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
.gitlab-ci.yml | 14 +++---
Dockerfile.fedora | 2 +-
NEWS | 4 +-
lib/meson.build | 2 +-
man/meson.build | 10 ++--
meson.build | 113 ++++++++++++--------------------------------
meson_options.txt | 32 ++++---------
overlay/meson.build | 17 ++++---
runner/meson.build | 12 +++--
tests/meson.build | 2 +-
10 files changed, 75 insertions(+), 133 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9fe6a8f6..771143a9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,13 +2,13 @@ image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora:latest
variables:
MESON_OPTIONS: >
-Dwith_libdrm=intel,nouveau,amdgpu
- -Dbuild_overlay=true
- -Dbuild_chamelium=true
- -Dwith_valgrind=true
- -Dbuild_man=true
- -Dbuild_tests=true
- -Dbuild_runner=true
- -Dwith_libunwind=true
+ -Dbuild_overlay=enabled
+ -Dbuild_chamelium=enabled
+ -Dwith_valgrind=enabled
+ -Dbuild_man=enabled
+ -Dbuild_tests=enabled
+ -Dbuild_runner=enabled
+ -Dwith_libunwind=enabled
LANG: "C.UTF-8"
stages:
diff --git a/Dockerfile.fedora b/Dockerfile.fedora
index 5283c8eb..6686e587 100644
--- a/Dockerfile.fedora
+++ b/Dockerfile.fedora
@@ -38,7 +38,7 @@ RUN dnf install -y clang
# Meson version switching shenanigans
WORKDIR /usr/src
-RUN curl -O https://files.pythonhosted.org/packages/17/d0/0fe98a9557a2f07dbe6f99ef57f2bc37450b641e1f6ceae9ce04c3c845dd/meson-0.46.0.tar.gz
+RUN curl -O https://files.pythonhosted.org/packages/c0/9b/44cdb8adcbb186be6cba5c93718d0c68f177b0e8082ae00cafa63a1d3535/meson-0.47.0.tar.gz
# Cleanup workdir
WORKDIR /
diff --git a/NEWS b/NEWS
index ffddc096..f4e96c69 100644
--- a/NEWS
+++ b/NEWS
@@ -3,7 +3,9 @@ Unreleased
General changes:
- - Bumped required meson version to 0.46. (Arkadiusz Hiler)
+ - Bumped required meson version to 0.47. (Arkadiusz Hiler)
+ - All the meson build options that used auto, true and false are now first
+ class 'feature' options taking auto, enabled and disabled (Arkadiusz Hiler)
Release 1.23 (2018-07-18)
-------------------------
diff --git a/lib/meson.build b/lib/meson.build
index 80736868..89d9e11d 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -104,7 +104,7 @@ if alsa.found()
lib_sources += 'igt_alsa.c'
endif
-if chamelium_found
+if chamelium.found()
lib_deps += chamelium
lib_sources += 'igt_chamelium.c'
lib_sources += 'igt_chamelium_stream.c'
diff --git a/man/meson.build b/man/meson.build
index a6b08900..35faad28 100644
--- a/man/meson.build
+++ b/man/meson.build
@@ -1,3 +1,5 @@
+build_man = get_option('build_man')
+
manpages = [
'intel_aubdump',
'intel_audio_dump',
@@ -22,10 +24,10 @@ defs_rst = configure_file(input : 'defs.rst.in',
output : 'defs.rst',
configuration : config)
-rst2man = find_program('rst2man-3', 'rst2man', required : _man_required)
+rst2man = find_program('rst2man-3', 'rst2man', required : build_man)
rst2man_script = find_program('rst2man.sh')
-if _build_man and rst2man.found()
+if rst2man.found()
foreach manpage : manpages
custom_target(manpage + '.1',
build_by_default : true,
@@ -36,10 +38,10 @@ if _build_man and rst2man.found()
install : true,
install_dir : join_paths(mandir, 'man1'))
endforeach
- build_info += 'Build man pages: Yes'
+ build_info += 'Build man pages: true'
else
if _man_required
error('Cannot build man pages due to missing dependencies')
endif
- build_info += 'Build man pages: No'
+ build_info += 'Build man pages: false'
endif
diff --git a/meson.build b/meson.build
index 2af08f9a..6268c58d 100644
--- a/meson.build
+++ b/meson.build
@@ -7,7 +7,7 @@ project('igt-gpu-tools', 'c',
'buildtype=debugoptimized',
],
license : 'MIT',
- meson_version : '>=0.46.0')
+ meson_version : '>=0.47.0')
if get_option('b_ndebug') != 'false'
error('Building without -Db_ndebug=false is not supported')
@@ -77,42 +77,10 @@ foreach cc_arg : cc_args
endif
endforeach
-_build_overlay = false
-_overlay_required = false
-_build_man = false
-_man_required = false
-_build_chamelium = false
-_chamelium_required = false
-_build_docs = false
-_docs_required = false
-_build_tests = false
-_tests_required = false
-_build_runner = false
-_runner_required = false
-
-build_overlay = get_option('build_overlay')
-overlay_backends = get_option('overlay_backends')
-build_man = get_option('build_man')
-with_valgrind = get_option('with_valgrind')
build_chamelium = get_option('build_chamelium')
build_docs = get_option('build_docs')
-build_tests = get_option('build_tests')
+build_tests = not get_option('build_tests').disabled()
with_libdrm = get_option('with_libdrm')
-with_libunwind = get_option('with_libunwind')
-build_runner = get_option('build_runner')
-
-_build_overlay = build_overlay != 'false'
-_overlay_required = build_overlay == 'true'
-_build_man = build_man != 'false'
-_man_required = build_man == 'true'
-_build_chamelium = build_chamelium != 'false'
-_chamelium_required = build_chamelium == 'true'
-_build_docs = build_docs != 'false'
-_docs_required = build_docs == 'true'
-_build_tests = build_tests != 'false'
-_tests_required = build_tests == 'true'
-_build_runner = build_runner != 'false'
-_runner_required = build_runner == 'true'
build_info = ['Build type: ' + get_option('buildtype')]
@@ -150,29 +118,17 @@ pciaccess = dependency('pciaccess', version : '>=0.10')
libkmod = dependency('libkmod')
libprocps = dependency('libprocps', required : true)
-libunwind = null_dep
-libunwindinfo = 'No'
-if with_libunwind != 'false'
- libunwind = dependency('libunwind', required : with_libunwind == 'true')
- if libunwind.found()
- libunwindinfo = 'Yes'
- endif
-endif
-build_info += 'With libunwind: ' + libunwindinfo
+libunwind = dependency('libunwind', required : get_option('with_libunwind'))
+build_info += 'With libunwind: @0@'.format(libunwind.found())
libdw = dependency('libdw', required : true)
pixman = dependency('pixman-1', required : true)
-valgrind = null_dep
-valgrindinfo = 'No'
-if with_valgrind != 'false'
- valgrind = dependency('valgrind', required : with_valgrind == 'true')
- if valgrind.found()
- config.set('HAVE_VALGRIND', 1)
- valgrindinfo = 'Yes'
- endif
+valgrind = dependency('valgrind', required : get_option('with_valgrind'))
+if valgrind.found()
+ config.set('HAVE_VALGRIND', 1)
endif
-build_info += 'Valgrind annotations: ' + valgrindinfo
+build_info += 'Valgrind annotations: @0@'.format(valgrind.found())
cairo = dependency('cairo', version : '>1.12.0', required : true)
libudev = dependency('libudev', required : true)
@@ -195,15 +151,16 @@ if not xmlrpc.found() and xmlrpc_cmd.found()
endif
endif
-gsl = null_dep
-alsa = null_dep
-chamelium = null_dep
-chamelium_found = false # TODO: use a disabler object instead
-chameliuminfo = 'No'
-if _build_chamelium
- gsl = dependency('gsl', required : _chamelium_required)
- alsa = dependency('alsa', required : _chamelium_required)
- libcurl = dependency('libcurl', required : _chamelium_required)
+if build_chamelium.enabled() and not (xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found())
+ error('Chamelium build forced and required dependency xmlrpc not found')
+endif
+
+gsl = dependency('gsl', required : build_chamelium)
+alsa = dependency('alsa', required : build_chamelium)
+libcurl = dependency('libcurl', required : build_chamelium)
+
+if xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found() and gsl.found() and alsa.found() and libcurl.found()
+ config.set('HAVE_CHAMELIUM', 1)
chamelium = declare_dependency(dependencies : [
xmlrpc,
xmlrpc_util,
@@ -211,13 +168,11 @@ if _build_chamelium
gsl,
alsa,
])
- if xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found() and gsl.found() and alsa.found() and libcurl.found()
- config.set('HAVE_CHAMELIUM', 1)
- chameliuminfo = 'Yes'
- chamelium_found = true
- endif
+else
+ chamelium = disabler()
endif
-build_info += 'Build Chamelium test: ' + chameliuminfo
+
+build_info += 'Build Chamelium test: @0@'.format(chamelium.found())
pthreads = dependency('threads')
math = cc.find_library('m')
@@ -319,12 +274,11 @@ else
endif
subdir('lib')
-if _build_tests
+if build_tests
subdir('tests')
- build_info += 'Build tests: Yes'
-else
- build_info += 'Build tests: No'
endif
+build_info += 'Build tests: @0@'.format(build_tests)
+
subdir('benchmarks')
subdir('tools')
subdir('runner')
@@ -334,18 +288,13 @@ endif
subdir('overlay')
subdir('man')
-gtk_doc = dependency('gtk-doc', required : _docs_required)
-
-docs_info = 'No'
-if _build_docs
- if _build_tests and gtk_doc.found()
- subdir('docs')
- docs_info = 'Yes'
- elif _docs_required
- error('Documentation requires building tests')
- endif
+gtk_doc = dependency('gtk-doc', required : build_docs)
+if build_tests and gtk_doc.found()
+ subdir('docs')
+elif build_docs.enabled()
+ error('Documentation requires building tests')
endif
-build_info += 'Build documentation: ' + docs_info
+build_info += 'Build documentation: @0@'.format(build_tests and gtk_doc.found())
message('Build options')
message('=============')
diff --git a/meson_options.txt b/meson_options.txt
index 888efe56..9cca0c4f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,7 +1,5 @@
option('build_overlay',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build overlay')
option('overlay_backends',
@@ -11,33 +9,23 @@ option('overlay_backends',
description : 'Overlay backends to enable')
option('build_chamelium',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build chamelium test')
option('with_valgrind',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build with support for valgrind annotations')
option('build_man',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build man pages')
option('build_docs',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build documentation')
option('build_tests',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build tests')
option('with_libdrm',
@@ -47,15 +35,11 @@ option('with_libdrm',
description : 'libdrm libraries to be used')
option('with_libunwind',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Use libunwind')
option('build_runner',
- type : 'combo',
- value : 'auto',
- choices : ['auto', 'true', 'false'],
+ type : 'feature',
description : 'Build test runner')
option('use_rpath',
diff --git a/overlay/meson.build b/overlay/meson.build
index 46d2d494..d133b6be 100644
--- a/overlay/meson.build
+++ b/overlay/meson.build
@@ -1,3 +1,6 @@
+build_overlay = get_option('build_overlay')
+overlay_backends = get_option('overlay_backends')
+
gpu_overlay_src = [
'chart.c',
'config.c',
@@ -18,7 +21,7 @@ xv_backend_required = false
xlib_backend_required = false
build_xv_backend = overlay_backends.contains('xv') or overlay_backends.contains('auto')
build_xlib_backend = overlay_backends.contains('x') or overlay_backends.contains('auto')
-if _overlay_required
+if build_overlay.enabled()
xv_backend_required = overlay_backends.contains('xv')
xlib_backend_required = overlay_backends.contains('x')
endif
@@ -30,7 +33,7 @@ dri2proto = dependency('dri2proto',
version : '>= 2.6',
required : xv_backend_required or xlib_backend_required)
cairo_xlib = dependency('cairo-xlib', required : xlib_backend_required)
-xrandr = dependency('xrandr', version : '>=1.3', required : _overlay_required)
+xrandr = dependency('xrandr', version : '>=1.3', required : build_overlay)
gpu_overlay_deps = [ realtime, math, cairo, pciaccess, libdrm,
libdrm_intel, lib_igt_perf ]
@@ -70,7 +73,7 @@ gpu_overlay_src += both_x11_src
gpu_overlay_src += 'kms/kms-overlay.c'
-leg = find_program('leg', required : _overlay_required)
+leg = find_program('leg', required : build_overlay)
if leg.found()
leg_file = custom_target('tracepoint_format',
output: 'tracepoint_format.h',
@@ -81,17 +84,17 @@ else
message('WARNING: leg command not found, disabling overlay; try : apt-get install peg')
endif
-if _build_overlay and ['x86', 'x86_64'].contains(host_machine.cpu_family()) and libdrm_intel.found() and leg.found() and xrandr.found() and cairo.found() and (with_xlib_backend or with_xv_backend)
+if not build_overlay.disabled() and ['x86', 'x86_64'].contains(host_machine.cpu_family()) and libdrm_intel.found() and leg.found() and xrandr.found() and cairo.found() and (with_xlib_backend or with_xv_backend)
executable('intel-gpu-overlay', gpu_overlay_src,
include_directories : inc,
c_args : gpu_overlay_cflags,
dependencies : gpu_overlay_deps,
install : true)
- build_info += 'Build overlay: Yes'
+ build_info += 'Build overlay: true'
build_info += 'Overlay backends: ' + ','.join(backends_strings)
else
- if _overlay_required
+ if build_overlay.enabled()
error('Cannot build overlay due to missing dependencies')
endif
- build_info += 'Build overlay: No'
+ build_info += 'Build overlay: false'
endif
diff --git a/runner/meson.build b/runner/meson.build
index b658f1d2..4eff193a 100644
--- a/runner/meson.build
+++ b/runner/meson.build
@@ -1,4 +1,4 @@
-jsonc = dependency('json-c', required: _runner_required)
+build_runner = get_option('build_runner')
runnerlib_sources = [ 'settings.c',
'job_list.c',
@@ -12,11 +12,13 @@ results_sources = [ 'results.c' ]
runner_test_sources = [ 'runner_tests.c' ]
runner_json_test_sources = [ 'runner_json_tests.c' ]
-if not _build_tests and _runner_required
+jsonc = dependency('json-c', required: build_runner)
+
+if not build_tests and jsonc.found()
error('Building test runner requires building tests')
endif
-if _build_runner and _build_tests and jsonc.found()
+if jsonc.found()
subdir('testdata')
runnerlib = static_library('igt_runner', runnerlib_sources,
@@ -58,7 +60,7 @@ if _build_runner and _build_tests and jsonc.found()
dependencies : [igt_deps, jsonc])
test('runner_json', runner_json_test)
- build_info += 'Build test runner: Yes'
+ build_info += 'Build test runner: true'
else
- build_info += 'Build test runner: No'
+ build_info += 'Build test runner: false'
endif
diff --git a/tests/meson.build b/tests/meson.build
index 351594fa..5786c2c7 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -243,7 +243,7 @@ if libdrm_nouveau.found()
test_deps += libdrm_nouveau
endif
-if chamelium_found
+if chamelium.found()
test_progs += [
'kms_chamelium',
]
--
2.21.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 6+ messages in thread* [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 2019-05-21 9:36 [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options Arkadiusz Hiler @ 2019-05-21 9:36 ` Arkadiusz Hiler 2019-05-23 8:58 ` Daniel Vetter 2019-05-21 10:47 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] meson: Start using 'feature' options Patchwork ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Arkadiusz Hiler @ 2019-05-21 9:36 UTC (permalink / raw) To: igt-dev; +Cc: Petri Latvala With updated minimum required version to 0.47.0 it is no longer needed. Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> --- docs/reference/igt-gpu-tools/meson.build | 41 +++++++----------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build index b2b2c1c2..4d177e49 100644 --- a/docs/reference/igt-gpu-tools/meson.build +++ b/docs/reference/igt-gpu-tools/meson.build @@ -54,37 +54,18 @@ configure_file(input: 'version.xml.in', output: 'version.xml', install: false, configuration: config) -if meson.version().version_compare('>= 0.47') - foreach group : test_groups - programs_xml = 'igt_test_programs_' + group + '_programs.xml' - generated_docs += custom_target(programs_xml, - output : programs_xml, - command : [ gen_programs, '@OUTPUT@', group, test_list_target ]) +foreach group : test_groups + programs_xml = 'igt_test_programs_' + group + '_programs.xml' + generated_docs += custom_target(programs_xml, + output : programs_xml, + command : [ gen_programs, '@OUTPUT@', group, test_list_target ]) - description_xml = 'igt_test_programs_' + group + '_description.xml' - generated_docs += custom_target(description_xml, - output : description_xml, - depends : test_executables, - command : [ gen_description, '@OUTPUT@', group, test_list_target ]) - endforeach -else - # older meson needs the build_by_default hack because gtkdoc dependency - # handling is broken - foreach group : test_groups - programs_xml = 'igt_test_programs_' + group + '_programs.xml' - custom_target(programs_xml, - build_by_default : true, - output : programs_xml, - command : [ gen_programs, '@OUTPUT@', group, test_list_target ]) - - description_xml = 'igt_test_programs_' + group + '_description.xml' - custom_target(description_xml, - build_by_default : true, - output : description_xml, - depends : test_executables, - command : [ gen_description, '@OUTPUT@', group, test_list_target ]) - endforeach -endif + description_xml = 'igt_test_programs_' + group + '_description.xml' + generated_docs += custom_target(description_xml, + output : description_xml, + depends : test_executables, + command : [ gen_description, '@OUTPUT@', group, test_list_target ]) +endforeach gnome.gtkdoc('igt-gpu-tools', content_files : ['igt_test_programs.xml'] + generated_docs, -- 2.21.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 2019-05-21 9:36 ` [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 Arkadiusz Hiler @ 2019-05-23 8:58 ` Daniel Vetter 0 siblings, 0 replies; 6+ messages in thread From: Daniel Vetter @ 2019-05-23 8:58 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev, Petri Latvala On Tue, May 21, 2019 at 12:36:02PM +0300, Arkadiusz Hiler wrote: > With updated minimum required version to 0.47.0 it is no longer needed. > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Petri Latvala <petri.latvala@intel.com> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > docs/reference/igt-gpu-tools/meson.build | 41 +++++++----------------- > 1 file changed, 11 insertions(+), 30 deletions(-) > > diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build > index b2b2c1c2..4d177e49 100644 > --- a/docs/reference/igt-gpu-tools/meson.build > +++ b/docs/reference/igt-gpu-tools/meson.build > @@ -54,37 +54,18 @@ configure_file(input: 'version.xml.in', > output: 'version.xml', > install: false, configuration: config) > > -if meson.version().version_compare('>= 0.47') > - foreach group : test_groups > - programs_xml = 'igt_test_programs_' + group + '_programs.xml' > - generated_docs += custom_target(programs_xml, > - output : programs_xml, > - command : [ gen_programs, '@OUTPUT@', group, test_list_target ]) > +foreach group : test_groups > + programs_xml = 'igt_test_programs_' + group + '_programs.xml' > + generated_docs += custom_target(programs_xml, > + output : programs_xml, > + command : [ gen_programs, '@OUTPUT@', group, test_list_target ]) > > - description_xml = 'igt_test_programs_' + group + '_description.xml' > - generated_docs += custom_target(description_xml, > - output : description_xml, > - depends : test_executables, > - command : [ gen_description, '@OUTPUT@', group, test_list_target ]) > - endforeach > -else > - # older meson needs the build_by_default hack because gtkdoc dependency > - # handling is broken > - foreach group : test_groups > - programs_xml = 'igt_test_programs_' + group + '_programs.xml' > - custom_target(programs_xml, > - build_by_default : true, > - output : programs_xml, > - command : [ gen_programs, '@OUTPUT@', group, test_list_target ]) > - > - description_xml = 'igt_test_programs_' + group + '_description.xml' > - custom_target(description_xml, > - build_by_default : true, > - output : description_xml, > - depends : test_executables, > - command : [ gen_description, '@OUTPUT@', group, test_list_target ]) > - endforeach > -endif > + description_xml = 'igt_test_programs_' + group + '_description.xml' > + generated_docs += custom_target(description_xml, > + output : description_xml, > + depends : test_executables, > + command : [ gen_description, '@OUTPUT@', group, test_list_target ]) > +endforeach > > gnome.gtkdoc('igt-gpu-tools', > content_files : ['igt_test_programs.xml'] + generated_docs, > -- > 2.21.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] meson: Start using 'feature' options 2019-05-21 9:36 [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options Arkadiusz Hiler 2019-05-21 9:36 ` [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 Arkadiusz Hiler @ 2019-05-21 10:47 ` Patchwork 2019-05-21 15:25 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-05-23 8:57 ` [igt-dev] [PATCH i-g-t 1/2] " Daniel Vetter 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2019-05-21 10:47 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/2] meson: Start using 'feature' options URL : https://patchwork.freedesktop.org/series/60894/ State : success == Summary == CI Bug Log - changes from CI_DRM_6110 -> IGTPW_3016 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/60894/revisions/1/mbox/ Known issues ------------ Here are the changes found in IGTPW_3016 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live_evict: - fi-bsw-kefka: [PASS][1] -> [DMESG-WARN][2] ([fdo#107709]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/fi-bsw-kefka/igt@i915_selftest@live_evict.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/fi-bsw-kefka/igt@i915_selftest@live_evict.html * igt@i915_selftest@live_hangcheck: - fi-skl-iommu: [PASS][3] -> [INCOMPLETE][4] ([fdo#108602] / [fdo#108744]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html #### Possible fixes #### * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [FAIL][5] ([fdo#109485]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#107709]: https://bugs.freedesktop.org/show_bug.cgi?id=107709 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602 [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744 [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485 Participating hosts (49 -> 44) ------------------------------ Additional (3): fi-icl-y fi-icl-u2 fi-gdg-551 Missing (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-hsw-peppy fi-byt-squawks fi-bsw-cyan fi-byt-clapper fi-bdw-samus Build changes ------------- * IGT: IGT_4999 -> IGTPW_3016 CI_DRM_6110: ae35264eb9f700d5f9856552bf98e20ec2b74739 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_3016: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/ IGT_4999: eee6e9ea7a7e22a64afc029a696b80da8053bc3c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] meson: Start using 'feature' options 2019-05-21 9:36 [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options Arkadiusz Hiler 2019-05-21 9:36 ` [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 Arkadiusz Hiler 2019-05-21 10:47 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] meson: Start using 'feature' options Patchwork @ 2019-05-21 15:25 ` Patchwork 2019-05-23 8:57 ` [igt-dev] [PATCH i-g-t 1/2] " Daniel Vetter 3 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2019-05-21 15:25 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev == Series Details == Series: series starting with [i-g-t,1/2] meson: Start using 'feature' options URL : https://patchwork.freedesktop.org/series/60894/ State : success == Summary == CI Bug Log - changes from CI_DRM_6110_full -> IGTPW_3016_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://patchwork.freedesktop.org/api/1.0/series/60894/revisions/1/mbox/ Known issues ------------ Here are the changes found in IGTPW_3016_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_cpu_reloc@full: - shard-iclb: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#109100]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb4/igt@gem_cpu_reloc@full.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb5/igt@gem_cpu_reloc@full.html * igt@gem_exec_gttfill@basic: - shard-kbl: [PASS][3] -> [INCOMPLETE][4] ([fdo#103665] / [fdo#110715]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl1/igt@gem_exec_gttfill@basic.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl4/igt@gem_exec_gttfill@basic.html * igt@gem_mmap_gtt@big-bo-tiledx: - shard-kbl: [PASS][5] -> [INCOMPLETE][6] ([fdo#103665]) +1 similar issue [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl7/igt@gem_mmap_gtt@big-bo-tiledx.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl4/igt@gem_mmap_gtt@big-bo-tiledx.html * igt@gem_pwrite@small-cpu-backwards: - shard-iclb: [PASS][7] -> [INCOMPLETE][8] ([fdo#107713]) +2 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb4/igt@gem_pwrite@small-cpu-backwards.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb5/igt@gem_pwrite@small-cpu-backwards.html * igt@gem_pwrite@small-gtt-forwards: - shard-snb: [PASS][9] -> [INCOMPLETE][10] ([fdo#105411]) +1 similar issue [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-snb1/igt@gem_pwrite@small-gtt-forwards.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-snb7/igt@gem_pwrite@small-gtt-forwards.html * igt@gem_userptr_blits@coherency-sync: - shard-hsw: [PASS][11] -> [INCOMPLETE][12] ([fdo#103540]) +3 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-hsw7/igt@gem_userptr_blits@coherency-sync.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-hsw1/igt@gem_userptr_blits@coherency-sync.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite: - shard-iclb: [PASS][13] -> [INCOMPLETE][14] ([fdo#106978] / [fdo#107713]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html * igt@prime_mmap_coherency@ioctl-errors: - shard-glk: [PASS][15] -> [INCOMPLETE][16] ([fdo#103359] / [k.org#198133]) +5 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-glk7/igt@prime_mmap_coherency@ioctl-errors.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-glk4/igt@prime_mmap_coherency@ioctl-errors.html #### Possible fixes #### * igt@gem_create@create-clear: - shard-kbl: [INCOMPLETE][17] ([fdo#103665] / [fdo#110401]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl4/igt@gem_create@create-clear.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl7/igt@gem_create@create-clear.html * igt@gem_mmap_gtt@big-copy: - shard-iclb: [INCOMPLETE][19] ([fdo#107713] / [fdo#109100]) -> [PASS][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb1/igt@gem_mmap_gtt@big-copy.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb4/igt@gem_mmap_gtt@big-copy.html * igt@gem_mmap_gtt@big-copy-odd: - shard-hsw: [INCOMPLETE][21] ([fdo#103540]) -> [PASS][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-hsw1/igt@gem_mmap_gtt@big-copy-odd.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-hsw7/igt@gem_mmap_gtt@big-copy-odd.html * igt@gem_mmap_gtt@forked-basic-small-copy-xy: - shard-kbl: [INCOMPLETE][23] ([fdo#103665]) -> [PASS][24] +7 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl4/igt@gem_mmap_gtt@forked-basic-small-copy-xy.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl7/igt@gem_mmap_gtt@forked-basic-small-copy-xy.html * igt@gem_ppgtt@blt-vs-render-ctx0: - shard-snb: [INCOMPLETE][25] ([fdo#105411]) -> [PASS][26] +3 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-snb7/igt@gem_ppgtt@blt-vs-render-ctx0.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-snb1/igt@gem_ppgtt@blt-vs-render-ctx0.html * igt@gem_pwrite@small-gtt-backwards: - shard-glk: [INCOMPLETE][27] ([fdo#103359] / [k.org#198133]) -> [PASS][28] +2 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-glk4/igt@gem_pwrite@small-gtt-backwards.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-glk5/igt@gem_pwrite@small-gtt-backwards.html * igt@kms_busy@basic-flip-a: - shard-snb: [SKIP][29] ([fdo#109271] / [fdo#109278]) -> [PASS][30] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-snb2/igt@kms_busy@basic-flip-a.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-snb2/igt@kms_busy@basic-flip-a.html * igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled: - shard-snb: [SKIP][31] ([fdo#109271]) -> [PASS][32] +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-snb2/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-snb2/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt: - shard-glk: [FAIL][33] ([fdo#103167]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite: - shard-iclb: [FAIL][35] ([fdo#103167]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0: - shard-iclb: [INCOMPLETE][37] ([fdo#107713] / [fdo#110026]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb7/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb4/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html * igt@kms_setmode@basic: - shard-kbl: [FAIL][39] ([fdo#99912]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl1/igt@kms_setmode@basic.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl1/igt@kms_setmode@basic.html * igt@perf@oa-exponents: - shard-glk: [FAIL][41] ([fdo#105483]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-glk8/igt@perf@oa-exponents.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-glk7/igt@perf@oa-exponents.html * igt@prime_busy@wait-hang-bsd: - shard-iclb: [INCOMPLETE][43] ([fdo#107713]) -> [PASS][44] +6 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb7/igt@prime_busy@wait-hang-bsd.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb7/igt@prime_busy@wait-hang-bsd.html #### Warnings #### * igt@gem_mmap_gtt@forked-big-copy-odd: - shard-iclb: [INCOMPLETE][45] ([fdo#107713] / [fdo#109100]) -> [TIMEOUT][46] ([fdo#109673]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb5/igt@gem_mmap_gtt@forked-big-copy-odd.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb4/igt@gem_mmap_gtt@forked-big-copy-odd.html * igt@gem_pwrite@huge-gtt-random: - shard-kbl: [INCOMPLETE][47] ([fdo#103665]) -> [SKIP][48] ([fdo#109271]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl3/igt@gem_pwrite@huge-gtt-random.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl7/igt@gem_pwrite@huge-gtt-random.html * igt@gem_tiled_swapping@non-threaded: - shard-hsw: [INCOMPLETE][49] ([fdo#103540]) -> [FAIL][50] ([fdo#108686]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-hsw6/igt@gem_tiled_swapping@non-threaded.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-hsw7/igt@gem_tiled_swapping@non-threaded.html * igt@gem_userptr_blits@coherency-sync: - shard-kbl: [SKIP][51] ([fdo#109271]) -> [INCOMPLETE][52] ([fdo#103665]) +2 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-kbl1/igt@gem_userptr_blits@coherency-sync.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-kbl3/igt@gem_userptr_blits@coherency-sync.html - shard-iclb: [SKIP][53] ([fdo#109290]) -> [INCOMPLETE][54] ([fdo#107713]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6110/shard-iclb4/igt@gem_userptr_blits@coherency-sync.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/shard-iclb5/igt@gem_userptr_blits@coherency-sync.html [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411 [fdo#105483]: https://bugs.freedesktop.org/show_bug.cgi?id=105483 [fdo#106978]: https://bugs.freedesktop.org/show_bug.cgi?id=106978 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686 [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109290]: https://bugs.freedesktop.org/show_bug.cgi?id=109290 [fdo#109673]: https://bugs.freedesktop.org/show_bug.cgi?id=109673 [fdo#110026]: https://bugs.freedesktop.org/show_bug.cgi?id=110026 [fdo#110401]: https://bugs.freedesktop.org/show_bug.cgi?id=110401 [fdo#110715]: https://bugs.freedesktop.org/show_bug.cgi?id=110715 [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912 [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133 Participating hosts (10 -> 6) ------------------------------ Missing (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 Build changes ------------- * IGT: IGT_4999 -> IGTPW_3016 * Piglit: piglit_4509 -> None CI_DRM_6110: ae35264eb9f700d5f9856552bf98e20ec2b74739 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_3016: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/ IGT_4999: eee6e9ea7a7e22a64afc029a696b80da8053bc3c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3016/ _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options 2019-05-21 9:36 [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options Arkadiusz Hiler ` (2 preceding siblings ...) 2019-05-21 15:25 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2019-05-23 8:57 ` Daniel Vetter 3 siblings, 0 replies; 6+ messages in thread From: Daniel Vetter @ 2019-05-23 8:57 UTC (permalink / raw) To: Arkadiusz Hiler; +Cc: igt-dev, Petri Latvala On Tue, May 21, 2019 at 12:36:01PM +0300, Arkadiusz Hiler wrote: > Meson 0.47 comes with a new type of option called 'feature' so instead of: > type : 'combo', > value : 'auto', > choices : ['auto', 'true', 'false'], > We can: > type : 'feature', > > The main difference is that the feature takes auto, enabled and disabled > instead of auto, true and false. > > get_option() on a feature returns opaque object that can be passed as > a 'required' argument of a dependency. Auto is equivalent to 'required > : false', enabled is equivalent to 'required : true' and disabled > introduces new behavior forcing the dependency to be considered not > found. > > This allows us to streamline a lot of logic regarding optional IGT > features. > > This patch bumps required meson version to 0.47.0 I checked debian, fedora and ubuntu, and this isn't making our distro support worse. > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Simon Ser <simon.ser@intel.com> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Read meson docs on this and this feature option is rather magic :-) Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Cheers, Daniel > --- > .gitlab-ci.yml | 14 +++--- > Dockerfile.fedora | 2 +- > NEWS | 4 +- > lib/meson.build | 2 +- > man/meson.build | 10 ++-- > meson.build | 113 ++++++++++++-------------------------------- > meson_options.txt | 32 ++++--------- > overlay/meson.build | 17 ++++--- > runner/meson.build | 12 +++-- > tests/meson.build | 2 +- > 10 files changed, 75 insertions(+), 133 deletions(-) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 9fe6a8f6..771143a9 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -2,13 +2,13 @@ image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-fedora:latest > variables: > MESON_OPTIONS: > > -Dwith_libdrm=intel,nouveau,amdgpu > - -Dbuild_overlay=true > - -Dbuild_chamelium=true > - -Dwith_valgrind=true > - -Dbuild_man=true > - -Dbuild_tests=true > - -Dbuild_runner=true > - -Dwith_libunwind=true > + -Dbuild_overlay=enabled > + -Dbuild_chamelium=enabled > + -Dwith_valgrind=enabled > + -Dbuild_man=enabled > + -Dbuild_tests=enabled > + -Dbuild_runner=enabled > + -Dwith_libunwind=enabled > LANG: "C.UTF-8" > > stages: > diff --git a/Dockerfile.fedora b/Dockerfile.fedora > index 5283c8eb..6686e587 100644 > --- a/Dockerfile.fedora > +++ b/Dockerfile.fedora > @@ -38,7 +38,7 @@ RUN dnf install -y clang > > # Meson version switching shenanigans > WORKDIR /usr/src > -RUN curl -O https://files.pythonhosted.org/packages/17/d0/0fe98a9557a2f07dbe6f99ef57f2bc37450b641e1f6ceae9ce04c3c845dd/meson-0.46.0.tar.gz > +RUN curl -O https://files.pythonhosted.org/packages/c0/9b/44cdb8adcbb186be6cba5c93718d0c68f177b0e8082ae00cafa63a1d3535/meson-0.47.0.tar.gz > > # Cleanup workdir > WORKDIR / > diff --git a/NEWS b/NEWS > index ffddc096..f4e96c69 100644 > --- a/NEWS > +++ b/NEWS > @@ -3,7 +3,9 @@ Unreleased > > General changes: > > - - Bumped required meson version to 0.46. (Arkadiusz Hiler) > + - Bumped required meson version to 0.47. (Arkadiusz Hiler) > + - All the meson build options that used auto, true and false are now first > + class 'feature' options taking auto, enabled and disabled (Arkadiusz Hiler) > > Release 1.23 (2018-07-18) > ------------------------- > diff --git a/lib/meson.build b/lib/meson.build > index 80736868..89d9e11d 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -104,7 +104,7 @@ if alsa.found() > lib_sources += 'igt_alsa.c' > endif > > -if chamelium_found > +if chamelium.found() > lib_deps += chamelium > lib_sources += 'igt_chamelium.c' > lib_sources += 'igt_chamelium_stream.c' > diff --git a/man/meson.build b/man/meson.build > index a6b08900..35faad28 100644 > --- a/man/meson.build > +++ b/man/meson.build > @@ -1,3 +1,5 @@ > +build_man = get_option('build_man') > + > manpages = [ > 'intel_aubdump', > 'intel_audio_dump', > @@ -22,10 +24,10 @@ defs_rst = configure_file(input : 'defs.rst.in', > output : 'defs.rst', > configuration : config) > > -rst2man = find_program('rst2man-3', 'rst2man', required : _man_required) > +rst2man = find_program('rst2man-3', 'rst2man', required : build_man) > rst2man_script = find_program('rst2man.sh') > > -if _build_man and rst2man.found() > +if rst2man.found() > foreach manpage : manpages > custom_target(manpage + '.1', > build_by_default : true, > @@ -36,10 +38,10 @@ if _build_man and rst2man.found() > install : true, > install_dir : join_paths(mandir, 'man1')) > endforeach > - build_info += 'Build man pages: Yes' > + build_info += 'Build man pages: true' > else > if _man_required > error('Cannot build man pages due to missing dependencies') > endif > - build_info += 'Build man pages: No' > + build_info += 'Build man pages: false' > endif > diff --git a/meson.build b/meson.build > index 2af08f9a..6268c58d 100644 > --- a/meson.build > +++ b/meson.build > @@ -7,7 +7,7 @@ project('igt-gpu-tools', 'c', > 'buildtype=debugoptimized', > ], > license : 'MIT', > - meson_version : '>=0.46.0') > + meson_version : '>=0.47.0') > > if get_option('b_ndebug') != 'false' > error('Building without -Db_ndebug=false is not supported') > @@ -77,42 +77,10 @@ foreach cc_arg : cc_args > endif > endforeach > > -_build_overlay = false > -_overlay_required = false > -_build_man = false > -_man_required = false > -_build_chamelium = false > -_chamelium_required = false > -_build_docs = false > -_docs_required = false > -_build_tests = false > -_tests_required = false > -_build_runner = false > -_runner_required = false > - > -build_overlay = get_option('build_overlay') > -overlay_backends = get_option('overlay_backends') > -build_man = get_option('build_man') > -with_valgrind = get_option('with_valgrind') > build_chamelium = get_option('build_chamelium') > build_docs = get_option('build_docs') > -build_tests = get_option('build_tests') > +build_tests = not get_option('build_tests').disabled() > with_libdrm = get_option('with_libdrm') > -with_libunwind = get_option('with_libunwind') > -build_runner = get_option('build_runner') > - > -_build_overlay = build_overlay != 'false' > -_overlay_required = build_overlay == 'true' > -_build_man = build_man != 'false' > -_man_required = build_man == 'true' > -_build_chamelium = build_chamelium != 'false' > -_chamelium_required = build_chamelium == 'true' > -_build_docs = build_docs != 'false' > -_docs_required = build_docs == 'true' > -_build_tests = build_tests != 'false' > -_tests_required = build_tests == 'true' > -_build_runner = build_runner != 'false' > -_runner_required = build_runner == 'true' > > build_info = ['Build type: ' + get_option('buildtype')] > > @@ -150,29 +118,17 @@ pciaccess = dependency('pciaccess', version : '>=0.10') > libkmod = dependency('libkmod') > libprocps = dependency('libprocps', required : true) > > -libunwind = null_dep > -libunwindinfo = 'No' > -if with_libunwind != 'false' > - libunwind = dependency('libunwind', required : with_libunwind == 'true') > - if libunwind.found() > - libunwindinfo = 'Yes' > - endif > -endif > -build_info += 'With libunwind: ' + libunwindinfo > +libunwind = dependency('libunwind', required : get_option('with_libunwind')) > +build_info += 'With libunwind: @0@'.format(libunwind.found()) > > libdw = dependency('libdw', required : true) > pixman = dependency('pixman-1', required : true) > > -valgrind = null_dep > -valgrindinfo = 'No' > -if with_valgrind != 'false' > - valgrind = dependency('valgrind', required : with_valgrind == 'true') > - if valgrind.found() > - config.set('HAVE_VALGRIND', 1) > - valgrindinfo = 'Yes' > - endif > +valgrind = dependency('valgrind', required : get_option('with_valgrind')) > +if valgrind.found() > + config.set('HAVE_VALGRIND', 1) > endif > -build_info += 'Valgrind annotations: ' + valgrindinfo > +build_info += 'Valgrind annotations: @0@'.format(valgrind.found()) > > cairo = dependency('cairo', version : '>1.12.0', required : true) > libudev = dependency('libudev', required : true) > @@ -195,15 +151,16 @@ if not xmlrpc.found() and xmlrpc_cmd.found() > endif > endif > > -gsl = null_dep > -alsa = null_dep > -chamelium = null_dep > -chamelium_found = false # TODO: use a disabler object instead > -chameliuminfo = 'No' > -if _build_chamelium > - gsl = dependency('gsl', required : _chamelium_required) > - alsa = dependency('alsa', required : _chamelium_required) > - libcurl = dependency('libcurl', required : _chamelium_required) > +if build_chamelium.enabled() and not (xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found()) > + error('Chamelium build forced and required dependency xmlrpc not found') > +endif > + > +gsl = dependency('gsl', required : build_chamelium) > +alsa = dependency('alsa', required : build_chamelium) > +libcurl = dependency('libcurl', required : build_chamelium) > + > +if xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found() and gsl.found() and alsa.found() and libcurl.found() > + config.set('HAVE_CHAMELIUM', 1) > chamelium = declare_dependency(dependencies : [ > xmlrpc, > xmlrpc_util, > @@ -211,13 +168,11 @@ if _build_chamelium > gsl, > alsa, > ]) > - if xmlrpc.found() and xmlrpc_util.found() and xmlrpc_client.found() and gsl.found() and alsa.found() and libcurl.found() > - config.set('HAVE_CHAMELIUM', 1) > - chameliuminfo = 'Yes' > - chamelium_found = true > - endif > +else > + chamelium = disabler() > endif > -build_info += 'Build Chamelium test: ' + chameliuminfo > + > +build_info += 'Build Chamelium test: @0@'.format(chamelium.found()) > > pthreads = dependency('threads') > math = cc.find_library('m') > @@ -319,12 +274,11 @@ else > endif > > subdir('lib') > -if _build_tests > +if build_tests > subdir('tests') > - build_info += 'Build tests: Yes' > -else > - build_info += 'Build tests: No' > endif > +build_info += 'Build tests: @0@'.format(build_tests) > + > subdir('benchmarks') > subdir('tools') > subdir('runner') > @@ -334,18 +288,13 @@ endif > subdir('overlay') > subdir('man') > > -gtk_doc = dependency('gtk-doc', required : _docs_required) > - > -docs_info = 'No' > -if _build_docs > - if _build_tests and gtk_doc.found() > - subdir('docs') > - docs_info = 'Yes' > - elif _docs_required > - error('Documentation requires building tests') > - endif > +gtk_doc = dependency('gtk-doc', required : build_docs) > +if build_tests and gtk_doc.found() > + subdir('docs') > +elif build_docs.enabled() > + error('Documentation requires building tests') > endif > -build_info += 'Build documentation: ' + docs_info > +build_info += 'Build documentation: @0@'.format(build_tests and gtk_doc.found()) > > message('Build options') > message('=============') > diff --git a/meson_options.txt b/meson_options.txt > index 888efe56..9cca0c4f 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -1,7 +1,5 @@ > option('build_overlay', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build overlay') > > option('overlay_backends', > @@ -11,33 +9,23 @@ option('overlay_backends', > description : 'Overlay backends to enable') > > option('build_chamelium', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build chamelium test') > > option('with_valgrind', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build with support for valgrind annotations') > > option('build_man', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build man pages') > > option('build_docs', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build documentation') > > option('build_tests', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build tests') > > option('with_libdrm', > @@ -47,15 +35,11 @@ option('with_libdrm', > description : 'libdrm libraries to be used') > > option('with_libunwind', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Use libunwind') > > option('build_runner', > - type : 'combo', > - value : 'auto', > - choices : ['auto', 'true', 'false'], > + type : 'feature', > description : 'Build test runner') > > option('use_rpath', > diff --git a/overlay/meson.build b/overlay/meson.build > index 46d2d494..d133b6be 100644 > --- a/overlay/meson.build > +++ b/overlay/meson.build > @@ -1,3 +1,6 @@ > +build_overlay = get_option('build_overlay') > +overlay_backends = get_option('overlay_backends') > + > gpu_overlay_src = [ > 'chart.c', > 'config.c', > @@ -18,7 +21,7 @@ xv_backend_required = false > xlib_backend_required = false > build_xv_backend = overlay_backends.contains('xv') or overlay_backends.contains('auto') > build_xlib_backend = overlay_backends.contains('x') or overlay_backends.contains('auto') > -if _overlay_required > +if build_overlay.enabled() > xv_backend_required = overlay_backends.contains('xv') > xlib_backend_required = overlay_backends.contains('x') > endif > @@ -30,7 +33,7 @@ dri2proto = dependency('dri2proto', > version : '>= 2.6', > required : xv_backend_required or xlib_backend_required) > cairo_xlib = dependency('cairo-xlib', required : xlib_backend_required) > -xrandr = dependency('xrandr', version : '>=1.3', required : _overlay_required) > +xrandr = dependency('xrandr', version : '>=1.3', required : build_overlay) > > gpu_overlay_deps = [ realtime, math, cairo, pciaccess, libdrm, > libdrm_intel, lib_igt_perf ] > @@ -70,7 +73,7 @@ gpu_overlay_src += both_x11_src > > gpu_overlay_src += 'kms/kms-overlay.c' > > -leg = find_program('leg', required : _overlay_required) > +leg = find_program('leg', required : build_overlay) > if leg.found() > leg_file = custom_target('tracepoint_format', > output: 'tracepoint_format.h', > @@ -81,17 +84,17 @@ else > message('WARNING: leg command not found, disabling overlay; try : apt-get install peg') > endif > > -if _build_overlay and ['x86', 'x86_64'].contains(host_machine.cpu_family()) and libdrm_intel.found() and leg.found() and xrandr.found() and cairo.found() and (with_xlib_backend or with_xv_backend) > +if not build_overlay.disabled() and ['x86', 'x86_64'].contains(host_machine.cpu_family()) and libdrm_intel.found() and leg.found() and xrandr.found() and cairo.found() and (with_xlib_backend or with_xv_backend) > executable('intel-gpu-overlay', gpu_overlay_src, > include_directories : inc, > c_args : gpu_overlay_cflags, > dependencies : gpu_overlay_deps, > install : true) > - build_info += 'Build overlay: Yes' > + build_info += 'Build overlay: true' > build_info += 'Overlay backends: ' + ','.join(backends_strings) > else > - if _overlay_required > + if build_overlay.enabled() > error('Cannot build overlay due to missing dependencies') > endif > - build_info += 'Build overlay: No' > + build_info += 'Build overlay: false' > endif > diff --git a/runner/meson.build b/runner/meson.build > index b658f1d2..4eff193a 100644 > --- a/runner/meson.build > +++ b/runner/meson.build > @@ -1,4 +1,4 @@ > -jsonc = dependency('json-c', required: _runner_required) > +build_runner = get_option('build_runner') > > runnerlib_sources = [ 'settings.c', > 'job_list.c', > @@ -12,11 +12,13 @@ results_sources = [ 'results.c' ] > runner_test_sources = [ 'runner_tests.c' ] > runner_json_test_sources = [ 'runner_json_tests.c' ] > > -if not _build_tests and _runner_required > +jsonc = dependency('json-c', required: build_runner) > + > +if not build_tests and jsonc.found() > error('Building test runner requires building tests') > endif > > -if _build_runner and _build_tests and jsonc.found() > +if jsonc.found() > subdir('testdata') > > runnerlib = static_library('igt_runner', runnerlib_sources, > @@ -58,7 +60,7 @@ if _build_runner and _build_tests and jsonc.found() > dependencies : [igt_deps, jsonc]) > test('runner_json', runner_json_test) > > - build_info += 'Build test runner: Yes' > + build_info += 'Build test runner: true' > else > - build_info += 'Build test runner: No' > + build_info += 'Build test runner: false' > endif > diff --git a/tests/meson.build b/tests/meson.build > index 351594fa..5786c2c7 100644 > --- a/tests/meson.build > +++ b/tests/meson.build > @@ -243,7 +243,7 @@ if libdrm_nouveau.found() > test_deps += libdrm_nouveau > endif > > -if chamelium_found > +if chamelium.found() > test_progs += [ > 'kms_chamelium', > ] > -- > 2.21.0 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-05-23 8:58 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-05-21 9:36 [igt-dev] [PATCH i-g-t 1/2] meson: Start using 'feature' options Arkadiusz Hiler 2019-05-21 9:36 ` [igt-dev] [PATCH i-g-t 2/2] docs/meson: Remove the hax for meson < 0.47 Arkadiusz Hiler 2019-05-23 8:58 ` Daniel Vetter 2019-05-21 10:47 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] meson: Start using 'feature' options Patchwork 2019-05-21 15:25 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-05-23 8:57 ` [igt-dev] [PATCH i-g-t 1/2] " Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox