1 #!/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 18 dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) 19 cd $dir 20 21 rm -rf generated 22 mkdir -p generated/include generated/common 23 24 python ../vk-generate.py Android dispatch-table-ops layer > generated/include/vk_dispatch_table_helper.h 25 26 python ../vk_helper.py --gen_enum_string_helper ../include/vulkan/vulkan.h --abs_out_dir generated/include 27 python ../vk_helper.py --gen_struct_wrappers ../include/vulkan/vulkan.h --abs_out_dir generated/include 28 29 python ../vk-layer-generate.py Android object_tracker ../include/vulkan/vulkan.h > generated/include/object_tracker.cpp 30 python ../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 34 cp -f ../layers/vk_layer_config.cpp generated/common/ 35 cp -f ../layers/vk_layer_extension_utils.cpp generated/common/ 36 cp -f ../layers/vk_layer_utils.cpp generated/common/ 37 cp -f ../layers/vk_layer_table.cpp generated/common/ 38 cp -f ../layers/descriptor_sets.cpp generated/common/ 39 40 # layer names and their original source files directory 41 # 1 to 1 correspondence -- one layer one source file; additional files are copied 42 # at fixup step 43 declare layers=(core_validation device_limits image object_tracker parameter_validation swapchain threading unique_objects) 44 declare src_dirs=(../layers ../layers ../layers generated/include ../layers ../layers ../layers generated/include) 45 46 SRC_ROOT=generated/layer-src 47 BUILD_ROOT=generated/gradle-build 48 49 # create build-script root directory 50 cp -fr gradle-templates generated/gradle-build 51 for ((i = 0; i < ${#layers[@]}; i++)) 52 do 53 # copy the sources 54 mkdir -p ${SRC_ROOT}/${layers[i]} 55 cp -f ${src_dirs[i]}/${layers[i]}.cpp ${SRC_ROOT}/${layers[i]}/ 56 57 # copy build scripts 58 mkdir -p ${BUILD_ROOT}/${layers[i]} 59 echo "apply from: \"../common.gradle\"" > ${BUILD_ROOT}/${layers[i]}/build.gradle 60 done 61 62 # fixup - unique_objects need one more file 63 cp generated/common/descriptor_sets.cpp ${SRC_ROOT}/core_validation/descriptor_sets.cpp 64 cp generated/include/vk_safe_struct.cpp ${SRC_ROOT}/core_validation/vk_safe_struct.cpp 65 mv generated/include/vk_safe_struct.cpp ${SRC_ROOT}/unique_objects/vk_safe_struct.cpp 66 67 # fixup - remove copied files from generated/include 68 rm generated/include/object_tracker.cpp 69 rm generated/include/unique_objects.cpp 70 71 exit 0 72