summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Engestrom <[email protected]>2019-02-26 12:32:04 +0000
committerEric Engestrom <[email protected]>2019-02-28 17:30:44 +0000
commitbb6b691c574ecc891528947f92be227fb6bcf872 (patch)
tree9040fa39fa20a7d55a9e8e4ea79a876507a1110e /src
parent4c3b2932422a7b8cad6b8373bbcf30328754b76b (diff)
driconf: add DTD to allow the drirc xml (00-mesa-defaults.conf) to be validated
This DTD can be used to validate the drirc xml: $ xmllint --noout --valid 00-mesa-defaults.conf Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/util/00-mesa-defaults.conf13
-rw-r--r--src/util/meson.build16
2 files changed, 28 insertions, 1 deletions
diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf
index f5405a0da84..320de83a619 100644
--- a/src/util/00-mesa-defaults.conf
+++ b/src/util/00-mesa-defaults.conf
@@ -1,3 +1,4 @@
+<?xml version="1.0" standalone="yes"?>
<!--
============================================
@@ -27,6 +28,18 @@ TODO: document the other workarounds.
-->
+<!DOCTYPE driconf [
+ <!ELEMENT driconf (device+)>
+ <!ELEMENT device (application+)>
+ <!ATTLIST device driver CDATA #IMPLIED>
+ <!ELEMENT application (option+)>
+ <!ATTLIST application name CDATA #REQUIRED
+ executable CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option name CDATA #REQUIRED
+ value CDATA #REQUIRED>
+]>
+
<driconf>
<!-- Please always enable app-specific workarounds for all drivers and
screens. -->
diff --git a/src/util/meson.build b/src/util/meson.build
index 397c2228129..4f64681f191 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -100,7 +100,21 @@ files_mesa_util = files(
'vma.h',
)
-install_data('00-mesa-defaults.conf', install_dir : join_paths(get_option('datadir'), 'drirc.d'))
+files_drirc = files('00-mesa-defaults.conf')
+
+install_data(files_drirc, install_dir : join_paths(get_option('datadir'), 'drirc.d'))
+
+if with_tests
+ prog_xmllint = find_program('xmllint', required : false, native : true)
+ if prog_xmllint.found()
+ test(
+ 'drirc xml validation',
+ prog_xmllint,
+ args : ['--noout', '--valid', files_drirc],
+ suite : ['util'],
+ )
+ endif
+endif
files_xmlconfig = files(
'xmlconfig.c',