111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#!/bin/bash 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# Copyright 2015 The Android Open Source Project 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# Copyright (C) 2015 Valve Corporation 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# Licensed under the Apache License, Version 2.0 (the "License"); 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# you may not use this file except in compliance with the License. 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# You may obtain a copy of the License at 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# http://www.apache.org/licenses/LICENSE-2.0 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# Unless required by applicable law or agreed to in writing, software 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# distributed under the License is distributed on an "AS IS" BASIS, 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# See the License for the specific language governing permissions and 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# limitations under the License. 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertdir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcd $dir 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertrm -rf generated 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertmkdir -p generated/include generated/common 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpython ../vk-generate.py Android dispatch-table-ops layer > generated/include/vk_dispatch_table_helper.h 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpython ../vk_helper.py --gen_enum_string_helper ../include/vulkan/vulkan.h --abs_out_dir generated/include 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpython ../vk_helper.py --gen_struct_wrappers ../include/vulkan/vulkan.h --abs_out_dir generated/include 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpython ../vk-layer-generate.py Android object_tracker ../include/vulkan/vulkan.h > generated/include/object_tracker.cpp 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpython ../vk-layer-generate.py Android unique_objects ../include/vulkan/vulkan.h > generated/include/unique_objects.cpp 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert( cd generated/include; python ../../../genvk.py threading -registry ../../../vk.xml thread_check.h ) 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert( cd generated/include; python ../../../genvk.py paramchecker -registry ../../../vk.xml parameter_validation.h ) 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp -f ../layers/vk_layer_config.cpp generated/common/ 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp -f ../layers/vk_layer_extension_utils.cpp generated/common/ 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp -f ../layers/vk_layer_utils.cpp generated/common/ 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp -f ../layers/vk_layer_table.cpp generated/common/ 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp -f ../layers/descriptor_sets.cpp generated/common/ 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# layer names and their original source files directory 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# 1 to 1 correspondence -- one layer one source file; additional files are copied 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# at fixup step 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertdeclare layers=(core_validation device_limits image object_tracker parameter_validation swapchain threading unique_objects) 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertdeclare src_dirs=(../layers ../layers ../layers generated/include ../layers ../layers ../layers generated/include) 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertSRC_ROOT=generated/layer-src 4711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertBUILD_ROOT=generated/gradle-build 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# create build-script root directory 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp -fr gradle-templates generated/gradle-build 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertfor ((i = 0; i < ${#layers[@]}; i++)) 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertdo 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# copy the sources 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert mkdir -p ${SRC_ROOT}/${layers[i]} 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert cp -f ${src_dirs[i]}/${layers[i]}.cpp ${SRC_ROOT}/${layers[i]}/ 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# copy build scripts 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert mkdir -p ${BUILD_ROOT}/${layers[i]} 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert echo "apply from: \"../common.gradle\"" > ${BUILD_ROOT}/${layers[i]}/build.gradle 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertdone 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# fixup - unique_objects need one more file 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp generated/common/descriptor_sets.cpp ${SRC_ROOT}/core_validation/descriptor_sets.cpp 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertcp generated/include/vk_safe_struct.cpp ${SRC_ROOT}/core_validation/vk_safe_struct.cpp 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertmv generated/include/vk_safe_struct.cpp ${SRC_ROOT}/unique_objects/vk_safe_struct.cpp 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# fixup - remove copied files from generated/include 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertrm generated/include/object_tracker.cpp 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertrm generated/include/unique_objects.cpp 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertexit 0 72