parameters: (args)
docstring: Returns a directory of [ generator function, generator options ] indexed
      by specified short names. The generator options incorporate the following
      parameters:
  
      args is an parsed argument object; see below for the fields that are used.
docstring_summary: Returns a directory of [ generator function, generator options ] indexed
      by specified short names. The generator options incorporate the following
      parameters:
docstring_tokens: Returns a directory of [ generator function generator options ] indexed by specified short names . The generator options incorporate the following parameters :
function: def makeGenOpts(args):
      """Returns a directory of [ generator function, generator options ] indexed
      by specified short names. The generator options incorporate the following
      parameters:
  
      args is an parsed argument object; see below for the fields that are used."""
      global genOpts
      genOpts = {}
  
      # Default class of extensions to include, or None
      defaultExtensions = args.defaultExtensions
  
      # Additional extensions to include (list of extensions)
      extensions = args.extension
  
      # Extensions to remove (list of extensions)
      removeExtensions = args.removeExtensions
  
      # Extensions to emit (list of extensions)
      emitExtensions = args.emitExtensions
  
      # Features to include (list of features)
      features = args.feature
  
      # Whether to disable inclusion protect in headers
      protect = args.protect
  
      # Output target directory
      directory = args.directory
  
      # Path to generated files, particularly api.py
      genpath = args.genpath
  
      # Descriptive names for various regexp patterns used to select
      # versions and extensions
      allFeatures = allExtensions = r'.*'
  
      # Turn lists of names/patterns into matching regular expressions
      addExtensionsPat     = makeREstring(extensions, None)
      removeExtensionsPat  = makeREstring(removeExtensions, None)
      emitExtensionsPat    = makeREstring(emitExtensions, allExtensions)
      featuresPat          = makeREstring(features, allFeatures)
  
      # Copyright text prefixing all headers (list of strings).
      # The SPDX formatting below works around constraints of the 'reuse' tool
      prefixStrings = [
          '/*',
          '** Copyright (c) 2015-2020 The Khronos Group Inc.',
          '**',
          '** SPDX' + '-License-Identifier: Apache-2.0',
          '*/',
          ''
      ]
  
      # Text specific to Vulkan headers
      vkPrefixStrings = [
          '/*',
          '** This header is generated from the Khronos Vulkan XML API Registry.',
          '**',
          '*/',
          ''
      ]
  
      # Defaults for generating re-inclusion protection wrappers (or not)
      protectFile = protect
  
      # An API style conventions object
      conventions = VulkanConventions()
  
      # API include files for spec and ref pages
      # Overwrites include subdirectories in spec source tree
      # The generated include files do not include the calling convention
      # macros (apientry etc.), unlike the header files.
      # Because the 1.0 core branch includes ref pages for extensions,
      # all the extension interfaces need to be generated, even though
      # none are used by the core spec itself.
      genOpts['apiinc'] = [
            DocOutputGenerator,
            DocGeneratorOptions(
              conventions       = conventions,
              filename          = 'timeMarker',
              directory         = directory,
              genpath           = genpath,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = None,
              addExtensions     = addExtensionsPat,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat,
              prefixText        = prefixStrings + vkPrefixStrings,
              apicall           = '',
              apientry          = '',
              apientryp         = '*',
              alignFuncParam    = 48,
              expandEnumerants  = False)
          ]
  
      # Python representation of API information, used by scripts that
      # don't need to load the full XML.
      genOpts['api.py'] = [
            PyOutputGenerator,
            DocGeneratorOptions(
              conventions       = conventions,
              filename          = 'api.py',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = None,
              addExtensions     = addExtensionsPat,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat,
              reparentEnums     = False)
          ]
  
      # API validity files for spec
      genOpts['validinc'] = [
            ValidityOutputGenerator,
            DocGeneratorOptions(
              conventions       = conventions,
              filename          = 'timeMarker',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = None,
              addExtensions     = addExtensionsPat,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat)
          ]
  
      # API host sync table files for spec
      genOpts['hostsyncinc'] = [
            HostSynchronizationOutputGenerator,
            DocGeneratorOptions(
              conventions       = conventions,
              filename          = 'timeMarker',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = None,
              addExtensions     = addExtensionsPat,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat,
              reparentEnums     = False)
          ]
  
      # Extension metainformation for spec extension appendices
      # Includes all extensions by default, but only so that the generated
      # 'promoted_extensions_*' files refer to all extensions that were
      # promoted to a core version.
      genOpts['extinc'] = [
            ExtensionMetaDocOutputGenerator,
            ExtensionMetaDocGeneratorOptions(
              conventions       = conventions,
              filename          = 'timeMarker',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = None,
              defaultExtensions = defaultExtensions,
              addExtensions     = addExtensionsPat,
              removeExtensions  = None,
              emitExtensions    = emitExtensionsPat)
          ]
  
      # Version and extension interface docs for version/extension appendices
      # Includes all extensions by default.
      genOpts['interfaceinc'] = [
            InterfaceDocGenerator,
            DocGeneratorOptions(
              conventions       = conventions,
              filename          = 'timeMarker',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = None,
              addExtensions     = addExtensionsPat,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat,
              reparentEnums     = False)
          ]
  
      # Platform extensions, in their own header files
      # Each element of the platforms[] array defines information for
      # generating a single platform:
      #   [0] is the generated header file name
      #   [1] is the set of platform extensions to generate
      #   [2] is additional extensions whose interfaces should be considered,
      #   but suppressed in the output, to avoid duplicate definitions of
      #   dependent types like VkDisplayKHR and VkSurfaceKHR which come from
      #   non-platform extensions.
  
      # Track all platform extensions, for exclusion from vulkan_core.h
      allPlatformExtensions = []
  
      # Extensions suppressed for all WSI platforms (WSI extensions required
      # by all platforms)
      commonSuppressExtensions = [ 'VK_KHR_display', 'VK_KHR_swapchain' ]
  
      # Extensions required and suppressed for beta "platform". This can
      # probably eventually be derived from the requires= attributes of
      # the extension blocks.
      betaRequireExtensions = [ 'VK_KHR_ray_tracing', 'VK_KHR_deferred_host_operations', 'VK_KHR_pipeline_library' ]
      betaSuppressExtensions = [ 'VK_NV_ray_tracing' ]
  
      platforms = [
          [ 'vulkan_android.h',     [ 'VK_KHR_android_surface',
                                      'VK_ANDROID_external_memory_android_hardware_buffer'
                                                                    ], commonSuppressExtensions ],
          [ 'vulkan_fuchsia.h',     [ 'VK_FUCHSIA_imagepipe_surface'], commonSuppressExtensions ],
          [ 'vulkan_ggp.h',         [ 'VK_GGP_stream_descriptor_surface',
                                      'VK_GGP_frame_token'          ], commonSuppressExtensions ],
          [ 'vulkan_ios.h',         [ 'VK_MVK_ios_surface'          ], commonSuppressExtensions ],
          [ 'vulkan_macos.h',       [ 'VK_MVK_macos_surface'        ], commonSuppressExtensions ],
          [ 'vulkan_vi.h',          [ 'VK_NN_vi_surface'            ], commonSuppressExtensions ],
          [ 'vulkan_wayland.h',     [ 'VK_KHR_wayland_surface'      ], commonSuppressExtensions ],
          [ 'vulkan_win32.h',       [ 'VK_.*_win32(|_.*)', 'VK_EXT_full_screen_exclusive' ],
                                                                       commonSuppressExtensions +
                                                                       [ 'VK_KHR_external_semaphore',
                                                                         'VK_KHR_external_memory_capabilities',
                                                                         'VK_KHR_external_fence',
                                                                         'VK_KHR_external_fence_capabilities',
                                                                         'VK_KHR_get_surface_capabilities2',
                                                                         'VK_NV_external_memory_capabilities',
                                                                       ] ],
          [ 'vulkan_xcb.h',         [ 'VK_KHR_xcb_surface'          ], commonSuppressExtensions ],
          [ 'vulkan_xlib.h',        [ 'VK_KHR_xlib_surface'         ], commonSuppressExtensions ],
          [ 'vulkan_directfb.h',    [ 'VK_EXT_directfb_surface'     ], commonSuppressExtensions ],
          [ 'vulkan_xlib_xrandr.h', [ 'VK_EXT_acquire_xlib_display' ], commonSuppressExtensions ],
          [ 'vulkan_metal.h',       [ 'VK_EXT_metal_surface'        ], commonSuppressExtensions ],
          [ 'vulkan_beta.h',        betaRequireExtensions,             betaSuppressExtensions ],
      ]
  
      for platform in platforms:
          headername = platform[0]
  
          allPlatformExtensions += platform[1]
  
          addPlatformExtensionsRE = makeREstring(
              platform[1] + platform[2], strings_are_regex=True)
          emitPlatformExtensionsRE = makeREstring(
              platform[1], strings_are_regex=True)
  
          opts = CGeneratorOptions(
              conventions       = conventions,
              filename          = headername,
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = None,
              defaultExtensions = None,
              addExtensions     = addPlatformExtensionsRE,
              removeExtensions  = None,
              emitExtensions    = emitPlatformExtensionsRE,
              prefixText        = prefixStrings + vkPrefixStrings,
              genFuncPointers   = True,
              protectFile       = protectFile,
              protectFeature    = False,
              protectProto      = '#ifndef',
              protectProtoStr   = 'VK_NO_PROTOTYPES',
              apicall           = 'VKAPI_ATTR ',
              apientry          = 'VKAPI_CALL ',
              apientryp         = 'VKAPI_PTR *',
              alignFuncParam    = 48)
  
          genOpts[headername] = [ COutputGenerator, opts ]
  
      # Header for core API + extensions.
      # To generate just the core API,
      # change to 'defaultExtensions = None' below.
      #
      # By default this adds all enabled, non-platform extensions.
      # It removes all platform extensions (from the platform headers options
      # constructed above) as well as any explicitly specified removals.
  
      removeExtensionsPat = makeREstring(
          allPlatformExtensions + removeExtensions, None, strings_are_regex=True)
  
      genOpts['vulkan_core.h'] = [
            COutputGenerator,
            CGeneratorOptions(
              conventions       = conventions,
              filename          = 'vulkan_core.h',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = defaultExtensions,
              addExtensions     = addExtensionsPat,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat,
              prefixText        = prefixStrings + vkPrefixStrings,
              genFuncPointers   = True,
              protectFile       = protectFile,
              protectFeature    = False,
              protectProto      = '#ifndef',
              protectProtoStr   = 'VK_NO_PROTOTYPES',
              apicall           = 'VKAPI_ATTR ',
              apientry          = 'VKAPI_CALL ',
              apientryp         = 'VKAPI_PTR *',
              alignFuncParam    = 48)
          ]
  
      # Unused - vulkan10.h target.
      # It is possible to generate a header with just the Vulkan 1.0 +
      # extension interfaces defined, but since the promoted KHR extensions
      # are now defined in terms of the 1.1 interfaces, such a header is very
      # similar to vulkan_core.h.
      genOpts['vulkan10.h'] = [
            COutputGenerator,
            CGeneratorOptions(
              conventions       = conventions,
              filename          = 'vulkan10.h',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = 'VK_VERSION_1_0',
              emitversions      = 'VK_VERSION_1_0',
              defaultExtensions = None,
              addExtensions     = None,
              removeExtensions  = None,
              emitExtensions    = None,
              prefixText        = prefixStrings + vkPrefixStrings,
              genFuncPointers   = True,
              protectFile       = protectFile,
              protectFeature    = False,
              protectProto      = '#ifndef',
              protectProtoStr   = 'VK_NO_PROTOTYPES',
              apicall           = 'VKAPI_ATTR ',
              apientry          = 'VKAPI_CALL ',
              apientryp         = 'VKAPI_PTR *',
              alignFuncParam    = 48)
          ]
  
      # Unused - vulkan11.h target.
      # It is possible to generate a header with just the Vulkan 1.0 +
      # extension interfaces defined, but since the promoted KHR extensions
      # are now defined in terms of the 1.1 interfaces, such a header is very
      # similar to vulkan_core.h.
      genOpts['vulkan11.h'] = [
            COutputGenerator,
            CGeneratorOptions(
              conventions       = conventions,
              filename          = 'vulkan11.h',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = '^VK_VERSION_1_[01]$',
              emitversions      = '^VK_VERSION_1_[01]$',
              defaultExtensions = None,
              addExtensions     = None,
              removeExtensions  = None,
              emitExtensions    = None,
              prefixText        = prefixStrings + vkPrefixStrings,
              genFuncPointers   = True,
              protectFile       = protectFile,
              protectFeature    = False,
              protectProto      = '#ifndef',
              protectProtoStr   = 'VK_NO_PROTOTYPES',
              apicall           = 'VKAPI_ATTR ',
              apientry          = 'VKAPI_CALL ',
              apientryp         = 'VKAPI_PTR *',
              alignFuncParam    = 48)
          ]
  
      genOpts['alias.h'] = [
            COutputGenerator,
            CGeneratorOptions(
              conventions       = conventions,
              filename          = 'alias.h',
              directory         = directory,
              genpath           = None,
              apiname           = 'vulkan',
              profile           = None,
              versions          = featuresPat,
              emitversions      = featuresPat,
              defaultExtensions = defaultExtensions,
              addExtensions     = None,
              removeExtensions  = removeExtensionsPat,
              emitExtensions    = emitExtensionsPat,
              prefixText        = None,
              genFuncPointers   = False,
              protectFile       = False,
              protectFeature    = False,
              protectProto      = '',
              protectProtoStr   = '',
              apicall           = '',
              apientry          = '',
              apientryp         = '',
              alignFuncParam    = 36)
          ]
function_tokens: def makeGenOpts ( args ) : global genOpts genOpts = { } # Default class of extensions to include, or None defaultExtensions = args . defaultExtensions # Additional extensions to include (list of extensions) extensions = args . extension # Extensions to remove (list of extensions) removeExtensions = args . removeExtensions # Extensions to emit (list of extensions) emitExtensions = args . emitExtensions # Features to include (list of features) features = args . feature # Whether to disable inclusion protect in headers protect = args . protect # Output target directory directory = args . directory # Path to generated files, particularly api.py genpath = args . genpath # Descriptive names for various regexp patterns used to select # versions and extensions allFeatures = allExtensions = r'.*' # Turn lists of names/patterns into matching regular expressions addExtensionsPat = makeREstring ( extensions , None ) removeExtensionsPat = makeREstring ( removeExtensions , None ) emitExtensionsPat = makeREstring ( emitExtensions , allExtensions ) featuresPat = makeREstring ( features , allFeatures ) # Copyright text prefixing all headers (list of strings). # The SPDX formatting below works around constraints of the 'reuse' tool prefixStrings = [ '/*' , '** Copyright (c) 2015-2020 The Khronos Group Inc.' , '**' , '** SPDX' + '-License-Identifier: Apache-2.0' , '*/' , '' ] # Text specific to Vulkan headers vkPrefixStrings = [ '/*' , '** This header is generated from the Khronos Vulkan XML API Registry.' , '**' , '*/' , '' ] # Defaults for generating re-inclusion protection wrappers (or not) protectFile = protect # An API style conventions object conventions = VulkanConventions ( ) # API include files for spec and ref pages # Overwrites include subdirectories in spec source tree # The generated include files do not include the calling convention # macros (apientry etc.), unlike the header files. # Because the 1.0 core branch includes ref pages for extensions, # all the extension interfaces need to be generated, even though # none are used by the core spec itself. genOpts [ 'apiinc' ] = [ DocOutputGenerator , DocGeneratorOptions ( conventions = conventions , filename = 'timeMarker' , directory = directory , genpath = genpath , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = None , addExtensions = addExtensionsPat , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat , prefixText = prefixStrings + vkPrefixStrings , apicall = '' , apientry = '' , apientryp = '*' , alignFuncParam = 48 , expandEnumerants = False ) ] # Python representation of API information, used by scripts that # don't need to load the full XML. genOpts [ 'api.py' ] = [ PyOutputGenerator , DocGeneratorOptions ( conventions = conventions , filename = 'api.py' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = None , addExtensions = addExtensionsPat , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat , reparentEnums = False ) ] # API validity files for spec genOpts [ 'validinc' ] = [ ValidityOutputGenerator , DocGeneratorOptions ( conventions = conventions , filename = 'timeMarker' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = None , addExtensions = addExtensionsPat , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat ) ] # API host sync table files for spec genOpts [ 'hostsyncinc' ] = [ HostSynchronizationOutputGenerator , DocGeneratorOptions ( conventions = conventions , filename = 'timeMarker' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = None , addExtensions = addExtensionsPat , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat , reparentEnums = False ) ] # Extension metainformation for spec extension appendices # Includes all extensions by default, but only so that the generated # 'promoted_extensions_*' files refer to all extensions that were # promoted to a core version. genOpts [ 'extinc' ] = [ ExtensionMetaDocOutputGenerator , ExtensionMetaDocGeneratorOptions ( conventions = conventions , filename = 'timeMarker' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = None , defaultExtensions = defaultExtensions , addExtensions = addExtensionsPat , removeExtensions = None , emitExtensions = emitExtensionsPat ) ] # Version and extension interface docs for version/extension appendices # Includes all extensions by default. genOpts [ 'interfaceinc' ] = [ InterfaceDocGenerator , DocGeneratorOptions ( conventions = conventions , filename = 'timeMarker' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = None , addExtensions = addExtensionsPat , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat , reparentEnums = False ) ] # Platform extensions, in their own header files # Each element of the platforms[] array defines information for # generating a single platform: #   [0] is the generated header file name #   [1] is the set of platform extensions to generate #   [2] is additional extensions whose interfaces should be considered, #   but suppressed in the output, to avoid duplicate definitions of #   dependent types like VkDisplayKHR and VkSurfaceKHR which come from #   non-platform extensions. # Track all platform extensions, for exclusion from vulkan_core.h allPlatformExtensions = [ ] # Extensions suppressed for all WSI platforms (WSI extensions required # by all platforms) commonSuppressExtensions = [ 'VK_KHR_display' , 'VK_KHR_swapchain' ] # Extensions required and suppressed for beta "platform". This can # probably eventually be derived from the requires= attributes of # the extension blocks. betaRequireExtensions = [ 'VK_KHR_ray_tracing' , 'VK_KHR_deferred_host_operations' , 'VK_KHR_pipeline_library' ] betaSuppressExtensions = [ 'VK_NV_ray_tracing' ] platforms = [ [ 'vulkan_android.h' , [ 'VK_KHR_android_surface' , 'VK_ANDROID_external_memory_android_hardware_buffer' ] , commonSuppressExtensions ] , [ 'vulkan_fuchsia.h' , [ 'VK_FUCHSIA_imagepipe_surface' ] , commonSuppressExtensions ] , [ 'vulkan_ggp.h' , [ 'VK_GGP_stream_descriptor_surface' , 'VK_GGP_frame_token' ] , commonSuppressExtensions ] , [ 'vulkan_ios.h' , [ 'VK_MVK_ios_surface' ] , commonSuppressExtensions ] , [ 'vulkan_macos.h' , [ 'VK_MVK_macos_surface' ] , commonSuppressExtensions ] , [ 'vulkan_vi.h' , [ 'VK_NN_vi_surface' ] , commonSuppressExtensions ] , [ 'vulkan_wayland.h' , [ 'VK_KHR_wayland_surface' ] , commonSuppressExtensions ] , [ 'vulkan_win32.h' , [ 'VK_.*_win32(|_.*)' , 'VK_EXT_full_screen_exclusive' ] , commonSuppressExtensions + [ 'VK_KHR_external_semaphore' , 'VK_KHR_external_memory_capabilities' , 'VK_KHR_external_fence' , 'VK_KHR_external_fence_capabilities' , 'VK_KHR_get_surface_capabilities2' , 'VK_NV_external_memory_capabilities' , ] ] , [ 'vulkan_xcb.h' , [ 'VK_KHR_xcb_surface' ] , commonSuppressExtensions ] , [ 'vulkan_xlib.h' , [ 'VK_KHR_xlib_surface' ] , commonSuppressExtensions ] , [ 'vulkan_directfb.h' , [ 'VK_EXT_directfb_surface' ] , commonSuppressExtensions ] , [ 'vulkan_xlib_xrandr.h' , [ 'VK_EXT_acquire_xlib_display' ] , commonSuppressExtensions ] , [ 'vulkan_metal.h' , [ 'VK_EXT_metal_surface' ] , commonSuppressExtensions ] , [ 'vulkan_beta.h' , betaRequireExtensions , betaSuppressExtensions ] , ] for platform in platforms : headername = platform [ 0 ] allPlatformExtensions += platform [ 1 ] addPlatformExtensionsRE = makeREstring ( platform [ 1 ] + platform [ 2 ] , strings_are_regex = True ) emitPlatformExtensionsRE = makeREstring ( platform [ 1 ] , strings_are_regex = True ) opts = CGeneratorOptions ( conventions = conventions , filename = headername , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = None , defaultExtensions = None , addExtensions = addPlatformExtensionsRE , removeExtensions = None , emitExtensions = emitPlatformExtensionsRE , prefixText = prefixStrings + vkPrefixStrings , genFuncPointers = True , protectFile = protectFile , protectFeature = False , protectProto = '#ifndef' , protectProtoStr = 'VK_NO_PROTOTYPES' , apicall = 'VKAPI_ATTR ' , apientry = 'VKAPI_CALL ' , apientryp = 'VKAPI_PTR *' , alignFuncParam = 48 ) genOpts [ headername ] = [ COutputGenerator , opts ] # Header for core API + extensions. # To generate just the core API, # change to 'defaultExtensions = None' below. # # By default this adds all enabled, non-platform extensions. # It removes all platform extensions (from the platform headers options # constructed above) as well as any explicitly specified removals. removeExtensionsPat = makeREstring ( allPlatformExtensions + removeExtensions , None , strings_are_regex = True ) genOpts [ 'vulkan_core.h' ] = [ COutputGenerator , CGeneratorOptions ( conventions = conventions , filename = 'vulkan_core.h' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = defaultExtensions , addExtensions = addExtensionsPat , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat , prefixText = prefixStrings + vkPrefixStrings , genFuncPointers = True , protectFile = protectFile , protectFeature = False , protectProto = '#ifndef' , protectProtoStr = 'VK_NO_PROTOTYPES' , apicall = 'VKAPI_ATTR ' , apientry = 'VKAPI_CALL ' , apientryp = 'VKAPI_PTR *' , alignFuncParam = 48 ) ] # Unused - vulkan10.h target. # It is possible to generate a header with just the Vulkan 1.0 + # extension interfaces defined, but since the promoted KHR extensions # are now defined in terms of the 1.1 interfaces, such a header is very # similar to vulkan_core.h. genOpts [ 'vulkan10.h' ] = [ COutputGenerator , CGeneratorOptions ( conventions = conventions , filename = 'vulkan10.h' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = 'VK_VERSION_1_0' , emitversions = 'VK_VERSION_1_0' , defaultExtensions = None , addExtensions = None , removeExtensions = None , emitExtensions = None , prefixText = prefixStrings + vkPrefixStrings , genFuncPointers = True , protectFile = protectFile , protectFeature = False , protectProto = '#ifndef' , protectProtoStr = 'VK_NO_PROTOTYPES' , apicall = 'VKAPI_ATTR ' , apientry = 'VKAPI_CALL ' , apientryp = 'VKAPI_PTR *' , alignFuncParam = 48 ) ] # Unused - vulkan11.h target. # It is possible to generate a header with just the Vulkan 1.0 + # extension interfaces defined, but since the promoted KHR extensions # are now defined in terms of the 1.1 interfaces, such a header is very # similar to vulkan_core.h. genOpts [ 'vulkan11.h' ] = [ COutputGenerator , CGeneratorOptions ( conventions = conventions , filename = 'vulkan11.h' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = '^VK_VERSION_1_[01]$' , emitversions = '^VK_VERSION_1_[01]$' , defaultExtensions = None , addExtensions = None , removeExtensions = None , emitExtensions = None , prefixText = prefixStrings + vkPrefixStrings , genFuncPointers = True , protectFile = protectFile , protectFeature = False , protectProto = '#ifndef' , protectProtoStr = 'VK_NO_PROTOTYPES' , apicall = 'VKAPI_ATTR ' , apientry = 'VKAPI_CALL ' , apientryp = 'VKAPI_PTR *' , alignFuncParam = 48 ) ] genOpts [ 'alias.h' ] = [ COutputGenerator , CGeneratorOptions ( conventions = conventions , filename = 'alias.h' , directory = directory , genpath = None , apiname = 'vulkan' , profile = None , versions = featuresPat , emitversions = featuresPat , defaultExtensions = defaultExtensions , addExtensions = None , removeExtensions = removeExtensionsPat , emitExtensions = emitExtensionsPat , prefixText = None , genFuncPointers = False , protectFile = False , protectFeature = False , protectProto = '' , protectProtoStr = '' , apicall = '' , apientry = '' , apientryp = '' , alignFuncParam = 36 ) ]