xref: /aosp_15_r20/external/angle/third_party/vulkan-headers/src/Makefile.release (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2024 The Khronos Group Inc.
2*8975f5c5SAndroid Build Coastguard Worker# SPDX-License-Identifier: Apache-2.0
3*8975f5c5SAndroid Build Coastguard Worker
4*8975f5c5SAndroid Build Coastguard Worker# Makefile.release - update external files generated in Vulkan spec
5*8975f5c5SAndroid Build Coastguard Worker# repository when a public specification update is done.
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker# Needed to get the right version of test, apparently
8*8975f5c5SAndroid Build Coastguard WorkerSHELL  = /bin/bash
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard WorkerREVISION = 999
11*8975f5c5SAndroid Build Coastguard Worker
12*8975f5c5SAndroid Build Coastguard Worker# Location of other repository clones
13*8975f5c5SAndroid Build Coastguard WorkerGIT	 = ..
14*8975f5c5SAndroid Build Coastguard WorkerSPEC	 = $(GIT)/Vulkan-Docs
15*8975f5c5SAndroid Build Coastguard WorkerHPP	 = $(GIT)/Vulkan-Hpp
16*8975f5c5SAndroid Build Coastguard WorkerREGISTRY = $(GIT)/registry/vulkan
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Workerupdate: version-check create-branch update-files push-branch
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard Worker# Working branch for the update, and a test if it exists
21*8975f5c5SAndroid Build Coastguard WorkerBRANCH = update-$(REVISION)
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Worker# Switch to new branch which will contain the update
24*8975f5c5SAndroid Build Coastguard Workercreate-branch: version-check
25*8975f5c5SAndroid Build Coastguard Worker	git switch -q main
26*8975f5c5SAndroid Build Coastguard Worker	git pull -q
27*8975f5c5SAndroid Build Coastguard Worker	# If branch already exists, do nothing
28*8975f5c5SAndroid Build Coastguard Worker	@if test `git branch -l $(BRANCH) | wc -l` == 1 ; then \
29*8975f5c5SAndroid Build Coastguard Worker	    echo "Branch $(BRANCH) already exists" ; \
30*8975f5c5SAndroid Build Coastguard Worker	    git switch $(BRANCH) ; \
31*8975f5c5SAndroid Build Coastguard Worker	else \
32*8975f5c5SAndroid Build Coastguard Worker	    echo "Creating branch $(BRANCH)" ; \
33*8975f5c5SAndroid Build Coastguard Worker	    git switch -c $(BRANCH) ; \
34*8975f5c5SAndroid Build Coastguard Worker	fi
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Worker# Update headers and scripts in the new branch
37*8975f5c5SAndroid Build Coastguard Workerupdate-files: remove-files update-headers update-scripts
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Worker# Vulkan SC Vulkan-Hpp headers not published in the Vulkan-Headers repository
40*8975f5c5SAndroid Build Coastguard WorkerSCHPPFILES = \
41*8975f5c5SAndroid Build Coastguard Worker    include/vulkan/vulkansc.hpp \
42*8975f5c5SAndroid Build Coastguard Worker    include/vulkan/vulkansc.cppm \
43*8975f5c5SAndroid Build Coastguard Worker    include/vulkan/vulkansc_*.hpp
44*8975f5c5SAndroid Build Coastguard Worker
45*8975f5c5SAndroid Build Coastguard Workerupdate-headers:
46*8975f5c5SAndroid Build Coastguard Worker	if test ! -d $(SPEC)/gen/include/ ; then \
47*8975f5c5SAndroid Build Coastguard Worker	    echo "No C header file source directory $(SPEC)/gen/include" ; \
48*8975f5c5SAndroid Build Coastguard Worker	    exit 1 ; \
49*8975f5c5SAndroid Build Coastguard Worker	fi
50*8975f5c5SAndroid Build Coastguard Worker	if test ! -d $(HPP)/vulkan ; then \
51*8975f5c5SAndroid Build Coastguard Worker	    echo "No C++ header file source directory $(HPP)/vulkan" ; \
52*8975f5c5SAndroid Build Coastguard Worker	    exit 1 ; \
53*8975f5c5SAndroid Build Coastguard Worker	fi
54*8975f5c5SAndroid Build Coastguard Worker	cp -r $(SPEC)/gen/include/* include/
55*8975f5c5SAndroid Build Coastguard Worker	cp -r $(HPP)/vulkan/* include/vulkan/
56*8975f5c5SAndroid Build Coastguard Worker	rm -f $(SCHPPFILES)
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Worker# Top-level scripts / XML to install
59*8975f5c5SAndroid Build Coastguard WorkerSCRIPTS = \
60*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/cgenerator.py \
61*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/generator.py \
62*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/parse_dependency.py \
63*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/reg.py \
64*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/stripAPI.py \
65*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/apiconventions.py \
66*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/vkconventions.py \
67*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/xml/vk.xml \
68*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/xml/video.xml \
69*8975f5c5SAndroid Build Coastguard Worker    $(REGISTRY)/specs/1.3-extensions/validation/validusage.json
70*8975f5c5SAndroid Build Coastguard Worker
71*8975f5c5SAndroid Build Coastguard Worker# Scripts in registry/spec_tools to install
72*8975f5c5SAndroid Build Coastguard WorkerSCRIPT_TOOLS = \
73*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/spec_tools/conventions.py \
74*8975f5c5SAndroid Build Coastguard Worker    $(SPEC)/scripts/spec_tools/util.py
75*8975f5c5SAndroid Build Coastguard Worker
76*8975f5c5SAndroid Build Coastguard Worker# Profiles to install
77*8975f5c5SAndroid Build Coastguard WorkerPROFILES = \
78*8975f5c5SAndroid Build Coastguard Worker    $(wildcard $(SPEC)/xml/profiles/*)
79*8975f5c5SAndroid Build Coastguard Worker
80*8975f5c5SAndroid Build Coastguard Workerupdate-scripts:
81*8975f5c5SAndroid Build Coastguard Worker	cp $(SCRIPTS) registry/
82*8975f5c5SAndroid Build Coastguard Worker	cp $(PROFILES) registry/profiles/
83*8975f5c5SAndroid Build Coastguard Worker	cp $(SCRIPT_TOOLS) registry/spec_tools/
84*8975f5c5SAndroid Build Coastguard Worker
85*8975f5c5SAndroid Build Coastguard Worker# To ensure updates are caught, old versions of installed files are
86*8975f5c5SAndroid Build Coastguard Worker# removed.
87*8975f5c5SAndroid Build Coastguard Worker
88*8975f5c5SAndroid Build Coastguard Worker# Files in include/ to keep
89*8975f5c5SAndroid Build Coastguard WorkerHEADERS_KEEP = \
90*8975f5c5SAndroid Build Coastguard Worker    include/vulkan/vk_icd.h \
91*8975f5c5SAndroid Build Coastguard Worker    include/vulkan/vk_layer.h
92*8975f5c5SAndroid Build Coastguard Worker
93*8975f5c5SAndroid Build Coastguard Workerremove-files:
94*8975f5c5SAndroid Build Coastguard Worker	rm -rf $(filter-out $(HEADERS_KEEP), $(wildcard include/vulkan/*))
95*8975f5c5SAndroid Build Coastguard Worker	rm -rf include/vk_video
96*8975f5c5SAndroid Build Coastguard Worker	rm -rf registry
97*8975f5c5SAndroid Build Coastguard Worker	mkdir include/vk_video registry registry/profiles registry/spec_tools
98*8975f5c5SAndroid Build Coastguard Worker
99*8975f5c5SAndroid Build Coastguard Worker# Once the branch is updated, push it to upstream
100*8975f5c5SAndroid Build Coastguard Worker# This does not actually push it for safety reasons
101*8975f5c5SAndroid Build Coastguard Workerpush-branch:
102*8975f5c5SAndroid Build Coastguard Worker	@echo Verify that all new files are 'git add'ed and obsolete files removed, then:
103*8975f5c5SAndroid Build Coastguard Worker	@echo git commit -m \"Update for Vulkan-Docs 1.3.$(REVISION)\"
104*8975f5c5SAndroid Build Coastguard Worker	@echo git push --set-upstream origin $(BRANCH)
105*8975f5c5SAndroid Build Coastguard Worker	@echo git switch main
106*8975f5c5SAndroid Build Coastguard Worker
107*8975f5c5SAndroid Build Coastguard Workerversion-check:
108*8975f5c5SAndroid Build Coastguard Worker	@if test $(REVISION) = 999 ; then echo "Must specify explicit REVISION= in make invocation" ; exit 1 ; fi
109