66 lines
1.6 KiB
Bash
66 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Asssume Cmake 3.20+
|
|
|
|
|
|
glslang_dist_dir=`pwd`/dist
|
|
vk_header_dist_dir=`pwd`/dist
|
|
vk_loader_dist_dir=`pwd`/dist
|
|
|
|
function build_vk_headers() {
|
|
git clone https://github.com/KhronosGroup/Vulkan-Headers
|
|
|
|
rm -rf vk_header_build
|
|
mkdir vk_header_build
|
|
|
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${vk_header_dist_dir}" -B vk_header_build Vulkan-Headers
|
|
cmake --build vk_header_build --config Release
|
|
cmake --build vk_header_build --config Release --target install
|
|
}
|
|
|
|
|
|
function build_validation_layer() {
|
|
git clone https://github.com/KhronosGroup/Vulkan-ValidationLayers.git
|
|
|
|
cd Vulkan-ValidationLayers
|
|
|
|
rm -rf build
|
|
mkdir build
|
|
cd build
|
|
|
|
python3 ../scripts/update_deps.py --dir ../external --arch x64 --config debug
|
|
|
|
cmake -G Ninja -C ../external/helper.cmake -DCMAKE_BUILD_TYPE=Debug ..
|
|
|
|
cmake --build . --config Debug
|
|
|
|
}
|
|
|
|
function build_glslang() {
|
|
git clone https://github.com/KhronosGroup/glslang.git
|
|
|
|
rm -rf glslang_build
|
|
mkdir glslang_build
|
|
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${glslang_dist_dir}" -B glslang_build glslang
|
|
cmake --build glslang_build --config Release
|
|
cmake --build glslang_build --config Release --target install
|
|
}
|
|
|
|
function build_vk_loader() {
|
|
|
|
rm -rf vk_loader_build
|
|
mkdir vk_loader_build
|
|
|
|
git clone https://github.com/KhronosGroup/Vulkan-Loader.git
|
|
|
|
cmake -S Vulkan-Loader -B vk_loader_build -DCMAKE_INSTALL_PREFIX="${vk_loader_dist_dir}" -DUPDATE_DEPS=On
|
|
cmake --build vk_loader_build
|
|
cmake --build vk_loader_build --config Debug
|
|
cmake --build vk_loader_build --config Debug --target install
|
|
}
|
|
|
|
build_vk_headers
|
|
build_validation_layer
|
|
build_glslang
|
|
build_vk_loader
|