#!/usr/bin/python3 # # Copyright (c) 2016-2019 The Khronos Group 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. # Ensure config/extDependency.py is up-to-date before we import it. # If it is up to date, 'make' will print a useless warning without '-s'. import argparse,subprocess,sys subprocess.check_call(['make', '-s', 'config/extDependency.py']) # Alter sys.path to import config/extDependency.py. sys.path = sys.path + [ 'config' ] from genspec import * from extDependency import allExts, khrExts # Eventually, these may be defined by extDependency.py allVersions = [ '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') parser.add_argument('-chunked', action='store_true', help='Always generate chunked HTML outputs') parser.add_argument('-pdf', action='store_true', help='Always generate PDF outputs') parser.add_argument('-nov11', action='store_false', dest='v11', help='Suppress Vulkan 1.1 targets') parser.add_argument('-v10', action='store_true', help='Generate Vulkan 1.0 targets') args = parser.parse_args() if args.internal: # For internal build & pseudo-release repoDir = '/home/tree/git/vulkan' outDir = '/home/tree/git/vulkan/out' else: # For public release repoDir = '/home/tree/git/Vulkan-Docs' outDir = '/home/tree/git/registry/vulkan/specs' # Always build PDF for public releases args.pdf = True 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' specTargets = ' html' if args.chunked: specTargets += ' chunked' if args.pdf: specTargets += ' pdf' print('echo Info: Building release from', repoDir, 'to', outDir) print('echo Info: Building spec targets', specTargets) print('') # Vulkan 1.1 specs if args.v11: # Build ref pages and validusage targets only for 1.1 + all # extensions. buildBranch('1.1-extensions', versions = allVersions, extensions = allExts, ratified = False, apititle = '(with all registered Vulkan extensions)', xmlTargets = 'clobber install', specTargets = specTargets + ' validusage' + refPageTargets, repoDir = repoDir, outDir = outDir) buildBranch('1.1-khr-extensions', versions = allVersions, extensions = khrExts, ratified = True, apititle = '(with KHR extensions)', xmlTargets = 'clobber install', specTargets = specTargets, repoDir = repoDir, outDir = outDir) # Build style guide and registry documentation targets only for 1.1 # + no extensions. buildBranch('1.1', versions = allVersions, extensions = None, ratified = True, apititle = None, xmlTargets = 'clobber install', specTargets = specTargets + ' styleguide registry', repoDir = repoDir, outDir = outDir, needRefSources = True) # Vulkan 1.0 specs. Only build the core spec now that 1.1 is out. if args.v10: buildBranch('1.0-extensions', versions = Version1_0, extensions = allExts, ratified = False, apititle = '(with all registered Vulkan extensions)', xmlTargets = 'clobber install', specTargets = specTargets, repoDir = repoDir, outDir = outDir) buildBranch('1.0-wsi_extensions', versions = Version1_0, extensions = khrExts, ratified = True, apititle = '(with KHR extensions)', xmlTargets = 'clobber install', specTargets = specTargets, repoDir = repoDir, outDir = outDir) buildBranch('1.0', versions = Version1_0, extensions = None, ratified = True, apititle = None, xmlTargets = 'clobber install', specTargets = specTargets, repoDir = repoDir, outDir = outDir) else: print('echo Info: Not building 1.0 specs yet') print('echo Info: post-generation cleanup') createTags(releaseNum(), buildOnFriday())