blob: 0ded569ba4eb97c2f38bce96b37dd3669cbf880a [file] [log] [blame]
guanghuafanb79e94a2016-03-29 11:08:23 -07001#!/bin/bash
2
3# Copyright 2015 The Android Open Source Project
4# Copyright (C) 2015 Valve Corporation
5
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9
10# http://www.apache.org/licenses/LICENSE-2.0
11
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
19cd $dir
20
21rm -rf generated
22mkdir -p generated/include generated/common
23
24python ../vk-generate.py Android dispatch-table-ops layer > generated/include/vk_dispatch_table_helper.h
25
26python ../vk_helper.py --gen_enum_string_helper ../include/vulkan/vulkan.h --abs_out_dir generated/include
27python ../vk_helper.py --gen_struct_wrappers ../include/vulkan/vulkan.h --abs_out_dir generated/include
28
29python ../vk-layer-generate.py Android object_tracker ../include/vulkan/vulkan.h > generated/include/object_tracker.cpp
30python ../vk-layer-generate.py Android unique_objects ../include/vulkan/vulkan.h > generated/include/unique_objects.cpp
31( cd generated/include; python ../../../genvk.py threading -registry ../../../vk.xml thread_check.h )
32( cd generated/include; python ../../../genvk.py paramchecker -registry ../../../vk.xml parameter_validation.h )
33
34cp -f ../layers/vk_layer_config.cpp generated/common/
35cp -f ../layers/vk_layer_extension_utils.cpp generated/common/
36cp -f ../layers/vk_layer_utils.cpp generated/common/
37cp -f ../layers/vk_layer_table.cpp generated/common/
38
39# layer names and their original source files directory
40# 1 to 1 correspondence -- one layer one source file; additional files are copied
41# at fixup step
42declare layers=(core_validation device_limits image object_tracker parameter_validation swapchain threading unique_objects)
43declare src_dirs=(../layers ../layers ../layers generated/include ../layers ../layers ../layers generated/include)
44
45SRC_ROOT=generated/layer-src
46BUILD_ROOT=generated/gradle-build
47
48# create build-script root directory
49cp -fr gradle-templates generated/gradle-build
50for ((i = 0; i < ${#layers[@]}; i++))
51do
52# copy the sources
53 mkdir -p ${SRC_ROOT}/${layers[i]}
54 cp -f ${src_dirs[i]}/${layers[i]}.cpp ${SRC_ROOT}/${layers[i]}/
55
56# copy build scripts
57 mkdir -p ${BUILD_ROOT}/${layers[i]}
58 echo "apply from: \"../common.gradle\"" > ${BUILD_ROOT}/${layers[i]}/build.gradle
59done
60
61# fixup - unique_objects need one more file
62mv generated/include/vk_safe_struct.cpp ${SRC_ROOT}/unique_objects/vk_safe_struct.cpp
63
64# fixup - remove copied files from generated/include
65rm generated/include/object_tracker.cpp
66rm generated/include/unique_objects.cpp
67
68exit 0