layers: Fix white_list string comparison data

Existing extension name comparisons produced false positives when
extensions shared common roots. Moved to a set of explicit strings.

Change-Id: I2951927ddfaedce1e7a9784d3b261a1fab830103
diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py
index e47d759..d4187ae 100644
--- a/scripts/helper_file_generator.py
+++ b/scripts/helper_file_generator.py
@@ -498,6 +498,7 @@
             '#include <string>',
             '#include <unordered_map>',
             '#include <utility>',
+            '#include <set>',
             '',
             '#include <vulkan/vulkan.h>',
             '']
@@ -638,9 +639,9 @@
                 '};'])
 
             # Output reference lists of instance/device extension names
-            struct.extend(['', 'static const char * const k%sExtensionNames = ' % type])
-            struct.extend([guarded(info['ifdef'], '    %s' % info['define']) for ext_name, info in extension_items])
-            struct.extend([';', ''])
+            struct.extend(['', 'static const std::set<std::string> k%sExtensionNames = {' % type])
+            struct.extend([guarded(info['ifdef'], '    %s,' % info['define']) for ext_name, info in extension_items])
+            struct.extend(['};', ''])
             output.extend(struct)
 
         output.extend(['', '#endif // VK_EXTENSION_HELPER_H_'])