scripts: Update generators for 1.1
diff --git a/scripts/common_codegen.py b/scripts/common_codegen.py
new file mode 100644
index 0000000..7319c01
--- /dev/null
+++ b/scripts/common_codegen.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python3 -i
+#
+# Copyright (c) 2015-2017 The Khronos Group Inc.
+# Copyright (c) 2015-2017 Valve Corporation
+# Copyright (c) 2015-2017 LunarG, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Author: Mark Lobodzinski <mark@lunarg.com>
+
+import os,re,sys,string
+import xml.etree.ElementTree as etree
+from generator import *
+from collections import namedtuple
+from vuid_mapping import *
+
+# Copyright text prefixing all headers (list of strings).
+prefixStrings = [
+    '/*',
+    '** Copyright (c) 2015-2017 The Khronos Group Inc.',
+    '** Copyright (c) 2015-2017 Valve Corporation',
+    '** Copyright (c) 2015-2017 LunarG, Inc.',
+    '** Copyright (c) 2015-2017 Google Inc.',
+    '**',
+    '** Licensed under the Apache License, Version 2.0 (the "License");',
+    '** you may not use this file except in compliance with the License.',
+    '** You may obtain a copy of the License at',
+    '**',
+    '**     http://www.apache.org/licenses/LICENSE-2.0',
+    '**',
+    '** Unless required by applicable law or agreed to in writing, software',
+    '** distributed under the License is distributed on an "AS IS" BASIS,',
+    '** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.',
+    '** See the License for the specific language governing permissions and',
+    '** limitations under the License.',
+    '*/',
+    ''
+]
+
+
+platform_dict = {
+    'android' : 'VK_USE_PLATFORM_ANDROID_KHR',
+    'ios' : 'VK_USE_PLATFORM_IOS_MVK',
+    'macos' : 'VK_USE_PLATFORM_MACOS_MVK',
+    'mir' : 'VK_USE_PLATFORM_MIR_KHR',
+    'vi' : 'VK_USE_PLATFORM_VI_NN',
+    'wayland' : 'VK_USE_PLATFORM_WAYLAND_KHR',
+    'win32' : 'VK_USE_PLATFORM_WIN32_KHR',
+    'xcb' : 'VK_USE_PLATFORM_XCB_KHR',
+    'xlib' : 'VK_USE_PLATFORM_XLIB_KHR',
+    'xlib_randr' : 'VK_USE_PLATFORM_XLIB_RANDR_EXT',
+}
+
+#
+# Return appropriate feature protect string from 'platform' tag on feature
+def GetFeatureProtect(interface):
+    """Get platform protection string"""
+    platform = interface.get('platform')
+    protect = None
+    if platform is not None:
+        protect = platform_dict[platform]
+    return protect