summaryrefslogtreecommitdiff
path: root/codegen/vulkan/xml/generate-core-block.rb
diff options
context:
space:
mode:
Diffstat (limited to 'codegen/vulkan/xml/generate-core-block.rb')
-rw-r--r--codegen/vulkan/xml/generate-core-block.rb125
1 files changed, 0 insertions, 125 deletions
diff --git a/codegen/vulkan/xml/generate-core-block.rb b/codegen/vulkan/xml/generate-core-block.rb
deleted file mode 100644
index 3a97e300..00000000
--- a/codegen/vulkan/xml/generate-core-block.rb
+++ /dev/null
@@ -1,125 +0,0 @@
-# Copyright 2018-2021 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-require 'nokogiri'
-
-
-renames = {}
-
-extension_name = ARGV[0]
-extension_suffix = /VK_([^_]+)_.+/.match(extension_name)[1]
-
-allowed_dependency_renames = ['']
-
-file = File.open("vk.xml")
-Nokogiri::XML(file).xpath('//extension[@name="' + extension_name + '"]').each do | extension |
- extension_enum_offset = 1000000000 + ((extension.attribute('number').content.to_i - 1) * 1000)
- extension.xpath('require').each do |require|
-
- do_rename = false
-
- if require.attribute('extension')
- allowed_dependency_renames.each do |dependency|
- if require.attribute('extension').content == dependency
- do_rename = true
- end
- end
- else
- do_rename = true
- end
-
- if do_rename == false
- puts "Extension interaction with " + require.attribute('extension').content + " needs addressing!"
- else
- core_block = "\t"*2 + require.to_s.lines[0].strip + "\n"
- alias_block = "\t"*3 + require.to_s.lines[0].strip + "\n"
-
- require.children.each do |element|
- if element.node_name != 'text' && element.node_name != 'comment'
-
- # Core Block
- if /.+_EXTENSION_NAME/.match(element.attribute('name').content) == nil &&
- /.+_SPEC_VERSION/.match(element.attribute('name').content) == nil
-
- case element.node_name
- when 'enum'
- attributes = element.attributes
- if element.attributes['offset']
- attributes['value'] = element.attribute('offset').content.to_i + extension_enum_offset
- attributes.delete('offset')
- end
-
- core_block << "\t"*3 + '<enum'
- attributes.each_pair do |key, value|
- core_block << ' ' + key + '="' + value.to_s + '"'
- end
- core_block << '/>' + "\n"
- when 'type', 'command'
- core_block << "\t"*3 + element.to_s.strip + "\n"
- else
- core_block << "Warning: Unknown type found!\n" << element.node_name
- end
- end
-
- # Alias Block + Renames
-
- if /.+_EXTENSION_NAME/.match(element.attribute('name').content) ||
- /.+_SPEC_VERSION/.match(element.attribute('name').content)
- alias_block << "\t"*4 + element.to_s.strip + "\n"
- else
- old_name = element.attribute('name').content
- new_name = old_name.sub('_' + extension_suffix,'').sub(extension_suffix,'')
- alias_block << "\t"*4 + '<alias name="' + old_name + '" value="' + new_name + '"/>' + "\n"
- renames[old_name] = new_name
- core_block.gsub!(old_name,new_name)
- end
- end
- end
- alias_block << "\t"*3 + require.to_s.lines[-1].strip
- core_block << "\t"*2 + require.to_s.lines[-1].strip
-
- puts alias_block
- puts
- puts core_block
- puts
- renames.each_pair do |old, new|
- puts old + ' -> ' + new
- end
- end
- end
-end
-
-outdata = File.read('vk.xml')
-
-renames.each_pair do |old, new|
- outdata.gsub!(old,new)
-end
-
-File.open('vk.xml', 'w') do |out|
- out << outdata
-end
-
-def rename_text_files(dir, renames, extension_name)
- Dir[dir + '/*.txt'].each do |name|
- # Skip renaming in the extension appendix, since this should preserve the old names.
- if (name != ('../appendices/' + extension_name + '.txt'))
- old_file = File.read(name)
-
- new_file = old_file.clone
- renames.each_pair do |old, new|
- new_file.gsub!(old,new)
- end
-
- if (old_file != new_file)
- File.write(name, new_file)
- end
- end
- end
- Dir[dir + '/*/'].each do |subdir|
- rename_text_files(subdir, renames, extension_name)
- end
-end
-
-rename_text_files('../chapters', renames, extension_name)
-rename_text_files('../appendices', renames, extension_name)