scripts: Update lvl_genvk.py with 1.1 changes
diff --git a/scripts/lvl_genvk.py b/scripts/lvl_genvk.py
index 7c81f51..a4347c1 100644
--- a/scripts/lvl_genvk.py
+++ b/scripts/lvl_genvk.py
@@ -50,21 +50,33 @@
 # by specified short names. The generator options incorporate the following
 # parameters:
 #
-# extensions - list of extension names to include.
+# features - list of <feature> names to include; defaults to all features
+# extensions - list of <extension> names to include.
 # protect - True if re-inclusion protection should be added to headers
 # directory - path to directory in which to generate the target(s)
-def makeGenOpts(extensions = [], removeExtensions = [], protect = True, directory = '.'):
+def makeGenOpts(features = [],
+                extensions = [],
+                removeExtensions = [],
+                protect = True,
+                directory = '.'):
     global genOpts
     genOpts = {}
 
     # Descriptive names for various regexp patterns used to select
     # versions and extensions
-    allVersions     = allExtensions = '.*'
+    allFeatures     = allExtensions = '.*'
     noVersions      = noExtensions = None
 
     addExtensions     = makeREstring(extensions)
     removeExtensions  = makeREstring(removeExtensions)
 
+    if len(features) > 0:
+        features = makeREstring(features)
+    else:
+        features = allFeatures
+
+    # write('* Selecting features: ', features, file=sys.stderr)
+
     # Copyright text prefixing all headers (list of strings).
     prefixStrings = [
         '/*',
@@ -110,8 +122,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -131,8 +143,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -152,8 +164,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -173,8 +185,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -194,8 +206,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -215,8 +227,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -236,8 +248,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -257,8 +269,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -278,8 +290,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -300,8 +312,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -322,8 +334,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -344,8 +356,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -366,8 +378,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -388,8 +400,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -410,8 +422,8 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = features,
+            emitversions      = features,
             defaultExtensions = 'vulkan',
             addExtensions     = addExtensions,
             removeExtensions  = removeExtensions,
@@ -432,17 +444,19 @@
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
-            versions          = allVersions,
-            emitversions      = allVersions,
+            versions          = featuresPat,
+            emitversions      = featuresPat,
             defaultExtensions = 'vulkan',
-            addExtensions     = addExtensions,
-            removeExtensions  = removeExtensions,
+            addExtensions     = addExtensionsPat,
+            removeExtensions  = removeExtensionsPat,
+            emitExtensions    = emitExtensionsPat,
             prefixText        = prefixStrings + vkPrefixStrings,
             protectFeature    = False,
             apicall           = 'VKAPI_ATTR ',
             apientry          = 'VKAPI_CALL ',
             apientryp         = 'VKAPI_PTR *',
             alignFuncParam    = 48,
+            expandEnumerants  = False,
             helper_file_type  = 'typemap_helper_header')
         ]
 
@@ -503,7 +517,8 @@
     global genOpts
 
     # Create generator options with specified parameters
-    makeGenOpts(extensions = args.extension,
+    makeGenOpts(features = args.feature,
+                extensions = args.extension,
                 removeExtensions = args.removeExtension,
                 protect = args.protect,
                 directory = args.directory)
@@ -529,7 +544,9 @@
         write('No generator options for unknown target:',
               args.target, file=sys.stderr)
 
-# -extension name - may be a single extension name, a a space-separated list
+# -feature name
+# -extension name
+# For both, "name" may be a single name, or a space-separated list
 # of names, or a regular expression.
 if __name__ == '__main__':
     parser = argparse.ArgumentParser()
@@ -537,6 +554,9 @@
     parser.add_argument('-extension', action='append',
                         default=[],
                         help='Specify an extension or extensions to add to targets')
+    parser.add_argument('-feature', action='append',
+                        default=[],
+                        help='Specify a core API feature name or names to add to targets')
     parser.add_argument('-removeExtension', action='append',
                         default=[],
                         help='Specify an extension or extensions to remove from targets')
@@ -572,6 +592,7 @@
     args = parser.parse_args()
 
     # This splits arguments which are space-separated lists
+    args.feature = [name for arg in args.feature for name in arg.split()]
     args.extension = [name for arg in args.extension for name in arg.split()]
 
     # Load & parse registry