Home | History | Annotate | Download | only in build-android
      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 
     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
     42 declare layers=(core_validation device_limits image object_tracker parameter_validation swapchain threading unique_objects)
     43 declare src_dirs=(../layers ../layers ../layers generated/include ../layers ../layers ../layers generated/include)
     44 
     45 SRC_ROOT=generated/layer-src
     46 BUILD_ROOT=generated/gradle-build
     47 
     48 # create build-script root directory
     49 cp -fr gradle-templates   generated/gradle-build
     50 for ((i = 0; i < ${#layers[@]}; i++))
     51 do
     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
     59 done
     60 
     61 # fixup - unique_objects need one more file
     62 mv  generated/include/vk_safe_struct.cpp ${SRC_ROOT}/unique_objects/vk_safe_struct.cpp
     63 
     64 # fixup - remove copied files from generated/include
     65 rm  generated/include/object_tracker.cpp
     66 rm  generated/include/unique_objects.cpp
     67 
     68 exit 0
     69