[Mesa-dev] [PATCH v3 1/2] intel: genxml: add script to generate gzipped genxml

Jason Ekstrand jason at jlekstrand.net
Sat Mar 11 19:47:44 UTC 2017


You know, you could use "gzip | xxd"........

But I think 10 lines of python code is probably fine. :)

On Sat, Mar 11, 2017 at 11:22 AM, Lionel Landwerlin <
lionel.g.landwerlin at intel.com> wrote:

> v2 (from Dylan):
>    Add main function
>    Add missing Copyright
>    Use print_function
>
> v3: Add actual license (Dylan)
>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
> ---
>  src/intel/Makefile.genxml.am        |  1 +
>  src/intel/genxml/gen_zipped_file.py | 47 ++++++++++++++++++++++++++++++
> +++++++
>  2 files changed, 48 insertions(+)
>  create mode 100644 src/intel/genxml/gen_zipped_file.py
>
> diff --git a/src/intel/Makefile.genxml.am b/src/intel/Makefile.genxml.am
> index 20e4b15786..1866d7e2df 100644
> --- a/src/intel/Makefile.genxml.am
> +++ b/src/intel/Makefile.genxml.am
> @@ -60,4 +60,5 @@ EXTRA_DIST += \
>         genxml/genX_pack.h \
>         genxml/gen_macros.h \
>         genxml/gen_pack_header.py \
> +       genxml/gen_zipped_file.py \
>         genxml/README
> diff --git a/src/intel/genxml/gen_zipped_file.py
> b/src/intel/genxml/gen_zipped_file.py
> new file mode 100644
> index 0000000000..66222cabe7
> --- /dev/null
> +++ b/src/intel/genxml/gen_zipped_file.py
> @@ -0,0 +1,47 @@
> +#encoding=utf-8
> +#
> +# Copyright © 2017 Intel Corporation
> +#
> +# Permission is hereby granted, free of charge, to any person obtaining a
> +# copy of this software and associated documentation files (the
> "Software"),
> +# to deal in the Software without restriction, including without
> limitation
> +# the rights to use, copy, modify, merge, publish, distribute, sublicense,
> +# and/or sell copies of the Software, and to permit persons to whom the
> +# Software is furnished to do so, subject to the following conditions:
> +#
> +# The above copyright notice and this permission notice (including the
> next
> +# paragraph) shall be included in all copies or substantial portions of
> the
> +# Software.
> +#
> +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> OR
> +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> OTHER
> +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> DEALINGS
> +# IN THE SOFTWARE.
> +#
> +
> +from __future__ import print_function
> +import os
> +import sys
> +import zlib
> +
> +def main():
> +    if len(sys.argv) < 2:
> +        print("No input xml file specified")
> +        sys.exit(1)
> +
> +    with open(sys.argv[1]) as f:
> +        compressed_data = zlib.compress(f.read())
> +
> +    gen_name = os.path.splitext(os.path.basename(sys.argv[1]))[0]
> +    print("static const uint8_t %s_xml[] = {" % gen_name)
> +    print("   ", end='')
> +
> +    for i, c in enumerate(compressed_data, start=1):
> +        print("0x%.2x, " % ord(c), end='\n   ' if not i % 12 else '')
> +    print('\n};')
> +
> +if __name__ == '__main__':
> +    main()
> --
> 2.11.0
> _______________________________________________
> 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/20170311/65402b95/attachment.html>


More information about the mesa-dev mailing list