#!/bin/bash # Copyright 2023 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -o errexit WORKING_DIRECTORY="/tmp/gfxstream-nested-vulkan-loader" if [ ! -z "$1" ]; then WORKING_DIRECTORY=$1 fi if [ ! -d $WORKING_DIRECTORY ]; then echo "Creating working directory $WORKING_DIRECTORY." mkdir -p $WORKING_DIRECTORY cd $WORKING_DIRECTORY git clone https://github.com/KhronosGroup/Vulkan-Loader.git . git checkout -b v1.3.273 tags/v1.3.273 else echo "Reusing existing working directory $WORKING_DIRECTORY." cd $WORKING_DIRECTORY fi echo "Applying edits for Gfxstream." VK_LOADER_ENV_VARS=( "VK_ADD_DRIVER_FILES" "VK_ADD_LAYER_PATH" "VK_DRIVER_FILES" "VK_ICD_FILENAMES" "VK_INSTANCE_LAYERS" "VK_LAYER_PATH" "VK_LAYER_PATH" "VK_LOADER_DEBUG" "VK_LOADER_DRIVERS_DISABLE" "VK_LOADER_DRIVERS_SELECT" "VK_LOADER_LAYERS_ALLOW" "VK_LOADER_LAYERS_DISABLE" "VK_LOADER_LAYERS_ENABLE" ) for var in ${VK_LOADER_ENV_VARS[@]}; do echo "- Replacing occurrences of \"$var\" with \"GFXSTREAM_$var\"." sed -i -e "s/\\\"$var\\\"/\\\"GFXSTREAM_$var\\\"/g" loader/*.c sed -i -e "s/\\\"$var\\\"/\\\"GFXSTREAM_$var\\\"/g" loader/*.h done echo "- Adding in \"GFXSTREAM\" prefix to logging." sed -i -e "s/ fputs(cmd_line_msg, stderr);/ fputs(\\\"GFXSTREAM-LOADER: \\\", stderr); fputs(cmd_line_msg, stderr);/g" loader/log.c if [ ! -d build ]; then echo "Creating build directory." mkdir build cd build python ../scripts/update_deps.py cmake -C helper.cmake -D CMAKE_BUILD_TYPE=Debug .. else echo "Reusing existing build directory." cd build fi echo "Building." cmake --build . cp loader/libvulkan.so loader/libvulkan_gfxstream.so echo "Use export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH:$(pwd)/loader\" to add to your path."