[Mesa-dev] [PATCH] anv: Import mako templates only during execution of anv_extensions

Jason Ekstrand jason at jlekstrand.net
Wed Jan 10 17:16:31 UTC 2018


On Wed, Jan 10, 2018 at 4:09 AM, Andres Gomez <agomez at igalia.com> wrote:

> anv_extensions usage from anv_icd was bringing the unwanted dependency
> of mako templates for the latter. We don't want that since it will
> force the dependency even for distributable tarballs which was not
> needed until now.
>
> Jason suggested this approach.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104551
> Fixes: 0ab04ba979b ("anv: Use python to generate ICD json files")
> Cc: Jason Ekstrand <jason.ekstrand at intel.com>
> Cc: Emil Velikov <emil.velikov at collabora.com>
> Signed-off-by: Andres Gomez <agomez at igalia.com>
> ---
>  src/intel/vulkan/anv_extensions.py | 50 +++++++++++++++++++-----------
> --------
>  1 file changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_
> extensions.py
> index 16e5582598e..21e28530e9a 100644
> --- a/src/intel/vulkan/anv_extensions.py
> +++ b/src/intel/vulkan/anv_extensions.py
> @@ -29,8 +29,6 @@ import copy
>  import re
>  import xml.etree.cElementTree as et
>
> -from mako.template import Template
> -
>  MAX_API_VERSION = '1.0.57'
>
>  class Extension:
> @@ -160,7 +158,31 @@ def _init_exts_from_xml(xml):
>          ext = ext_name_map[ext_name]
>          ext.type = ext_elem.attrib['type']
>
> -_TEMPLATE = Template(COPYRIGHT + """
>

A simpler patch would be to simply do

_TEMPLATE = COPYRIGHT + """
/* Stuff */
"""

And then do f.write(Template(_TEMPLATE)).render(**template_env) in the "if
__name__ == '__main__'".  That way we don't have to move as much code
around.


> +if __name__ == '__main__':
> +    parser = argparse.ArgumentParser()
> +    parser.add_argument('--out', help='Output C file.', required=True)
> +    parser.add_argument('--xml',
> +                        help='Vulkan API XML file.',
> +                        required=True,
> +                        action='append',
> +                        dest='xml_files')
> +    args = parser.parse_args()
> +
> +    for filename in args.xml_files:
> +        _init_exts_from_xml(filename)
> +
> +    for ext in EXTENSIONS:
> +        assert ext.type == 'instance' or ext.type == 'device'
> +
> +    template_env = {
> +        'MAX_API_VERSION': MAX_API_VERSION,
> +        'instance_extensions': [e for e in EXTENSIONS if e.type ==
> 'instance'],
> +        'device_extensions': [e for e in EXTENSIONS if e.type ==
> 'device'],
> +    }
> +
> +    from mako.template import Template
> +
> +    _TEMPLATE = Template(COPYRIGHT + """
>  #include "anv_private.h"
>
>  #include "vk_util.h"
> @@ -260,27 +282,5 @@ VkResult anv_EnumerateDeviceExtensionProperties(
>  }
>  """)
>
> -if __name__ == '__main__':
> -    parser = argparse.ArgumentParser()
> -    parser.add_argument('--out', help='Output C file.', required=True)
> -    parser.add_argument('--xml',
> -                        help='Vulkan API XML file.',
> -                        required=True,
> -                        action='append',
> -                        dest='xml_files')
> -    args = parser.parse_args()
> -
> -    for filename in args.xml_files:
> -        _init_exts_from_xml(filename)
> -
> -    for ext in EXTENSIONS:
> -        assert ext.type == 'instance' or ext.type == 'device'
> -
> -    template_env = {
> -        'MAX_API_VERSION': MAX_API_VERSION,
> -        'instance_extensions': [e for e in EXTENSIONS if e.type ==
> 'instance'],
> -        'device_extensions': [e for e in EXTENSIONS if e.type ==
> 'device'],
> -    }
> -
>      with open(args.out, 'w') as f:
>          f.write(_TEMPLATE.render(**template_env))
> --
> 2.15.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180110/b1c5a42e/attachment-0001.html>


More information about the mesa-dev mailing list