Skip to content

Commit dc27c27

Browse files
scripts: Have legact genvk point to new script
1 parent 54cbefd commit dc27c27

File tree

3 files changed

+28
-398
lines changed

3 files changed

+28
-398
lines changed

scripts/generate_source.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
# the Registry has been imported. Yes this is awkward, but it was the least awkward way to make --verify work.
3838
generators = {}
3939

40-
def RunGenerators(api: str, registry: str, directory: str, styleFile: str, targetFilter: str, caching: bool):
40+
def RunGenerators(api: str, registry: str, directory: str, styleFile: str, targetFilter: str, flatOutput: bool):
4141

4242
try:
4343
common_codegen.RunShellCmd(f'clang-format --version')
@@ -130,7 +130,12 @@ def RunGenerators(api: str, registry: str, directory: str, styleFile: str, targe
130130
else:
131131
SetMergedApiNames(None)
132132

133-
outDirectory = os.path.abspath(os.path.join(directory, generators[target]['directory']))
133+
# For people who want to generate all the files in a single director
134+
if flatOutput:
135+
outDirectory = os.path.abspath(os.path.join(directory))
136+
else:
137+
outDirectory = os.path.abspath(os.path.join(directory, generators[target]['directory']))
138+
134139
options = BaseGeneratorOptions(
135140
customFileName = target,
136141
customDirectory = outDirectory)
@@ -155,7 +160,7 @@ def RunGenerators(api: str, registry: str, directory: str, styleFile: str, targe
155160
reg.apiGen()
156161

157162
# Run clang-format on the file
158-
if has_clang_format:
163+
if has_clang_format and styleFile:
159164
common_codegen.RunShellCmd(f'clang-format -i --style=file:{styleFile} {os.path.join(outDirectory, target)}')
160165

161166

@@ -182,7 +187,7 @@ def main(argv):
182187
group.add_argument('--target', nargs='+', help='only generate file names passed in')
183188
group.add_argument('-i', '--incremental', action='store_true', help='only update repo files that change')
184189
group.add_argument('-v', '--verify', action='store_true', help='verify repo files match generator output')
185-
group.add_argument('--no-caching', action='store_true', help='Do not try to cache generator objects')
190+
group.add_argument('-o', action='store', dest='directory', help='Create target and related files in specified directory')
186191
args = parser.parse_args(argv)
187192

188193
repo_dir = common_codegen.repo_relative('.')
@@ -210,12 +215,13 @@ def main(argv):
210215
temp_obj = tempfile.TemporaryDirectory(prefix='loader_codegen_')
211216
temp_dir = temp_obj.name
212217
gen_dir = temp_dir
218+
elif args.directory:
219+
gen_dir = args.directory
213220
else:
214221
# generate directly in the repo
215222
gen_dir = repo_dir
216223

217-
caching = not args.no_caching
218-
RunGenerators(api=args.api,registry=registry, directory=gen_dir, styleFile=style_file, targetFilter=args.target, caching=caching)
224+
RunGenerators(api=args.api,registry=registry, directory=gen_dir, styleFile=style_file, targetFilter=args.target, flatOutput=False)
219225

220226
# optional post-generation steps
221227
if args.verify:

scripts/loader_extension_generator.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def generate(self):
123123

124124
if self.filename == 'vk_loader_extensions.h':
125125
self.print_vk_loader_extensions_h(out)
126-
elif self.filename == 'vk_loader_extensions.c':
126+
elif self.filename == 'vk_loader_extensions.c' or self.filename == 'vk_loader_extensions.c.inc':
127127
self.print_vk_loader_extensions_c(out)
128128
elif self.filename == 'vk_layer_dispatch_table.h':
129129
self.print_vk_layer_dispatch_table(out)
@@ -230,12 +230,12 @@ def DescribeBlock(self, command, current_block, out, custom_commands_string = '
230230
return None
231231
elif command.version is not None:
232232
if command.version != current_block:
233-
out.append(f'\n{indent}// ---- Core Vulkan 1.{command.version.name.split("_")[-1]}{custom_commands_string}\n')
233+
out.append(f"\n{indent}// ---- Core Vulkan 1.{command.version.name.split('_')[-1]}{custom_commands_string}\n")
234234
return command.version
235235
else:
236236
# don't repeat unless the first extension is different (while rest can vary)
237237
if not isinstance(current_block, list) or current_block[0].name != command.extensions[0].name:
238-
out.append(f'\n{indent}// ---- {command.extensions[0].name if len(command.extensions) > 0 else ""} extension{custom_commands_string}\n')
238+
out.append(f"\n{indent}// ---- {command.extensions[0].name if len(command.extensions) > 0 else ''} extension{custom_commands_string}\n")
239239
return command.extensions
240240
else:
241241
return current_block
@@ -707,7 +707,7 @@ def OutputLoaderLookupFunc(self, out):
707707
current_block = self.DescribeBlock(command, current_block, out)
708708
if len(command.extensions) == 0:
709709
if cur_type == 'device':
710-
version_check = f' if (dev->should_ignore_device_commands_from_newer_version && api_version < {command.version.nameApi if command.version else "VK_API_VERSION_1_0"}) return NULL;\n'
710+
version_check = f" if (dev->should_ignore_device_commands_from_newer_version && api_version < {command.version.nameApi if command.version else 'VK_API_VERSION_1_0'}) return NULL;\n"
711711
else:
712712
version_check = ''
713713

@@ -1345,4 +1345,3 @@ def OutputInstantExtensionWhitelistArray(self, out):
13451345
if extension.protect is not None:
13461346
out.append( f'#endif // {extension.protect}\n')
13471347
out.append( ' NULL };\n')
1348-

0 commit comments

Comments
 (0)