blob: b67362e72f4ec19885bca07eb6a797a8e6c69f4f [file] [log] [blame]
#!/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."