diff options
Diffstat (limited to 'src/gen_dispatch.py')
-rwxr-xr-x | src/gen_dispatch.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/gen_dispatch.py b/src/gen_dispatch.py index f4d0f31..3daad84 100755 --- a/src/gen_dispatch.py +++ b/src/gen_dispatch.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright © 2013 Intel Corporation @@ -466,6 +467,7 @@ class Generator(object): func.args_decl)) def write_header_header(self, out_file): + self.close() self.out_file = open(out_file, 'w') self.outln('/* GL dispatch header.') @@ -514,9 +516,17 @@ class Generator(object): self.outln('typedef uint32_t khronos_uint32_t;') self.outln('typedef uint64_t khronos_uint64_t;') self.outln('typedef float khronos_float_t;') - self.outln('typedef long khronos_intptr_t;') - self.outln('typedef long khronos_ssize_t;') - self.outln('typedef unsigned long khronos_usize_t;') + self.outln('#ifdef _WIN64') + self.outln('typedef signed long long int khronos_intptr_t;') + self.outln('typedef unsigned long long int khronos_uintptr_t;') + self.outln('typedef signed long long int khronos_ssize_t;') + self.outln('typedef unsigned long long int khronos_usize_t;') + self.outln('#else') + self.outln('typedef signed long int khronos_intptr_t;') + self.outln('typedef unsigned long int khronos_uintptr_t;') + self.outln('typedef signed long int khronos_ssize_t;') + self.outln('typedef unsigned long int khronos_usize_t;') + self.outln('#endif') self.outln('typedef uint64_t khronos_utime_nanoseconds_t;') self.outln('typedef int64_t khronos_stime_nanoseconds_t;') self.outln('#define KHRONOS_MAX_ENUM 0x7FFFFFFF') @@ -525,7 +535,6 @@ class Generator(object): self.outln(' KHRONOS_TRUE = 1,') self.outln(' KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM') self.outln('} khronos_boolean_enum_t;') - self.outln('typedef uintptr_t khronos_uintptr_t;') if self.target == "glx": self.outln('#include <X11/Xlib.h>') @@ -756,6 +765,7 @@ class Generator(object): self.outln('') def write_source(self, f): + self.close() self.out_file = open(f, 'w') self.outln('/* GL dispatch code.') @@ -848,6 +858,12 @@ class Generator(object): for func in self.sorted_functions: self.write_function_pointer(func) + def close(self): + if self.out_file: + self.out_file.close() + self.out_file = None + + argparser = argparse.ArgumentParser(description='Generate GL dispatch wrappers.') argparser.add_argument('files', metavar='file.xml', nargs='+', help='GL API XML files to be parsed') argparser.add_argument('--outputdir', metavar='dir', required=False, help='Destination directory for files (default to current dir)') @@ -912,3 +928,5 @@ for f in args.files: generator.write_header(os.path.join(includedir, name + '_generated.h')) if build_source: generator.write_source(os.path.join(srcdir, name + '_generated_dispatch.c')) + + generator.close() |