public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [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

* [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

* 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

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