diff options
Diffstat (limited to 'codegen/vulkan/scripts/genRelease')
-rwxr-xr-x | codegen/vulkan/scripts/genRelease | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/codegen/vulkan/scripts/genRelease b/codegen/vulkan/scripts/genRelease new file mode 100755 index 00000000..f3c4a2ab --- /dev/null +++ b/codegen/vulkan/scripts/genRelease @@ -0,0 +1,211 @@ +#!/usr/bin/python3 +# +# Copyright 2016-2021 The Khronos Group Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +import argparse +import subprocess +import sys + +from genspec import * + +# Eventually, these may be defined by extDependency.py +allVersions = [ 'VK_VERSION_1_0', 'VK_VERSION_1_1', 'VK_VERSION_1_2' ] +Version1_1 = [ 'VK_VERSION_1_0', 'VK_VERSION_1_1' ] +Version1_0 = [ 'VK_VERSION_1_0' ] + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + + parser.add_argument('-internal', action='store_true', + help='Generate internal build, not public') + parser.add_argument('-norefpages', action='store_true', + help='Do not generate refpages') + parser.add_argument('-singlerefpage', action='store_true', + help='Generate single-page refpage - NOT SUPPORTED') + parser.add_argument('-chunked', action='store_true', + help='Generate chunked HTML outputs') + parser.add_argument('-pdf', action='store_true', + help='Generate PDF outputs') + + parser.add_argument('-nov12', action='store_false', dest='v12', + help='Suppress Vulkan 1.2 targets') + parser.add_argument('-v11', action='store_true', + help='Generate Vulkan 1.1 targets') + parser.add_argument('-v10', action='store_true', + help='Generate Vulkan 1.0 targets') + + parser.add_argument('-nocorespec', action='store_false', dest='corespec', + help='Do not generate core API-only targets') + parser.add_argument('-nokhrspec', action='store_false', dest='khrspec', + help='Do not generate core API + KHR extensions-only targets') + parser.add_argument('-noallspec', action='store_false', dest='allspec', + help='Do not generate full API + all extensions targets') + + parser.add_argument('-genpath', action='store', + default='gen', + help='Path to directory containing generated files') + parser.add_argument('-repodir', action='store', dest='repoDir', + default=None, + help='Set the repository directory to build from (overrides defaults)') + parser.add_argument('-outdir', action='store', dest='outDir', + default=None, + help='Set the output directory to build into (overrides defaults)') + + args = parser.parse_args() + + # Ensure gen/extDependency.py is up-to-date before we import it. + # If it is up to date, 'make' will print a useless warning without '-s'. + subprocess.check_call(['make', '-s', 'GENERATED=' + args.genpath, 'extDependency']) + + # Alter sys.path to import extDependency.py + sys.path.insert(0, args.genpath) + + from extDependency import allExts, khrExts + + if args.internal: + # For internal build & pseudo-release + if args.repoDir == None: + args.repoDir = '/home/tree/git/vulkan' + if args.outDir == None: + args.outDir = '/home/tree/git/vulkan/out' + else: + # For public release + if args.repoDir == None: + args.repoDir = '/home/tree/git/Vulkan-Docs' + if args.outDir == None: + args.outDir = '/home/tree/git/registry/vulkan/specs' + + refPageTargets = '' + + if not args.norefpages: + # Generate separate reference pages + refPageTargets += ' manhtmlpages' + + if args.singlerefpage: + # Generate single-page refpage. + refPageTargets += ' manhtml' + if args.pdf: + refPageTargets += ' manpdf' + print('echo Info: single-page refpage targets are NOT SUPPORTED') + + specTargets = ' html' + if args.chunked: + specTargets += ' chunked' + if args.pdf: + specTargets += ' pdf' + + print('echo Info: Building release from', args.repoDir, 'to', args.outDir) + print('echo Info: Building spec targets', specTargets) + print('') + + # Current Vulkan 1.2 specs + if args.v12: + if args.allspec: + # Build ref pages and validusage targets only for 1.2 + all exts + # Formerly set xmlTargets = 'clobber install', but we no longer + # generate headers in the registry tree. + buildBranch(targetDir = '1.2-extensions', + versions = allVersions, + extensions = allExts, + ratified = False, + apititle = '(with all registered Vulkan extensions)', + specTargets = specTargets + ' validusage' + refPageTargets, + repoDir = args.repoDir, + outDir = args.outDir) + + if args.khrspec: + buildBranch(targetDir = '1.2-khr-extensions', + versions = allVersions, + extensions = khrExts, + ratified = True, + apititle = '(with KHR extensions)', + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + + if args.corespec: + # Build style guide and registry documentation targets only for 1.2 + # + no extensions. + buildBranch(targetDir = '1.2', + versions = allVersions, + extensions = None, + ratified = True, + apititle = None, + specTargets = specTargets + ' styleguide registry', + repoDir = args.repoDir, + outDir = args.outDir, + needRefSources = True) + + # Vulkan 1.1 specs + if args.v11: + if args.allspec: + buildBranch(targetDir = '1.1-extensions', + versions = Version1_1, + extensions = allExts, + ratified = False, + apititle = '(with all registered Vulkan extensions)', + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + + if args.khrspec: + buildBranch(targetDir = '1.1-khr-extensions', + versions = Version1_1, + extensions = khrExts, + ratified = True, + apititle = '(with KHR extensions)', + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + + if args.corespec: + buildBranch(targetDir = '1.1', + versions = Version1_1, + extensions = None, + ratified = True, + apititle = None, + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + else: + print('echo Info: Not building 1.1 specs yet') + + + # Vulkan 1.0 specs. + if args.v10: + if args.allspec: + buildBranch(targetDir = '1.0-extensions', + versions = Version1_0, + extensions = allExts, + ratified = False, + apititle = '(with all registered Vulkan extensions)', + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + + if args.khrspec: + buildBranch(targetDir = '1.0-wsi_extensions', + versions = Version1_0, + extensions = khrExts, + ratified = True, + apititle = '(with KHR extensions)', + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + + if args.corespec: + buildBranch(targetDir = '1.0', + versions = Version1_0, + extensions = None, + ratified = True, + apititle = None, + specTargets = specTargets, + repoDir = args.repoDir, + outDir = args.outDir) + else: + print('echo Info: Not building 1.0 specs yet') + + print('echo Info: post-generation cleanup') + createTags(releaseNum(), buildOnFriday()) |