Skip to content

Commit

Permalink
Fixed merge conflicts with main branch.
Browse files Browse the repository at this point in the history
  • Loading branch information
chrismile committed Aug 23, 2023
2 parents 1643edd + d29c079 commit 79a61e5
Show file tree
Hide file tree
Showing 58 changed files with 3,072 additions and 396 deletions.
210 changes: 116 additions & 94 deletions .github/workflows/build-brew.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-20.04, macos-latest ]
os: [ macos-latest ]

runs-on: ${{ matrix.os }}
name: "${{ github.workflow }}: ${{ matrix.os }}"
Expand All @@ -24,109 +24,131 @@ jobs:
sgl_DIR: ${{ github.workspace }}/sgl

steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/checkout@v2
with:
submodules: true

- uses: actions/checkout@v2
with:
repository: chrismile/sgl
path: sgl-repo
submodules: true
- uses: actions/checkout@v2
with:
repository: chrismile/sgl
path: sgl-repo
submodules: true

- name: Install Dependencies via Homebrew
shell: bash
run: |
# Normally, we would first install Homebrew here: apt install curl,
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# https://stackoverflow.com/questions/25128546/how-to-automate-homebrew-installation
if [ "$RUNNER_OS" == "Linux" ]; then
brew install gcc
elif [ "$RUNNER_OS" == "macOS" ]; then
brew install llvm libomp
else
echo "$RUNNER_OS is not supported."
exit 1
- name: Install Dependencies via Homebrew
shell: bash
run: |
# Normally, we would first install Homebrew here: apt install curl,
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# https://stackoverflow.com/questions/25128546/how-to-automate-homebrew-installation
if [ "$RUNNER_OS" == "Linux" ]; then
if ! command -v brew &> /dev/null; then
sudo apt install curl build-essential gcc
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo '# Set PATH, MANPATH, etc., for Homebrew.' >> ~/.bash_profile
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bash_profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
fi
brew install cmake zlib libpng glm sdl2 sdl2_image libarchive boost tinyxml2 jsoncpp openexr
brew install gcc
elif [ "$RUNNER_OS" == "macOS" ]; then
brew install llvm libomp pkg-config
else
echo "$RUNNER_OS is not supported."
exit 1
fi
brew install cmake zlib libpng glm sdl2 sdl2_image libarchive opencl-headers boost tinyxml2 jsoncpp openexr
- name: Install Vulkan SDK
shell: bash
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
distro_code_name=$(lsb_release -c | grep -oP "\:\s+\K\S+")
if ! curl -s -I "https://packages.lunarg.com/vulkan/lunarg-vulkan-${distro_code_name}.list" | grep "2 404" > /dev/null; then
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-${distro_code_name}.list \
https://packages.lunarg.com/vulkan/lunarg-vulkan-${distro_code_name}.list
sudo apt update
sudo apt install vulkan-sdk shaderc
else
curl --silent --show-error --fail -O https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.gz
mkdir -p VulkanSDK
tar -xzf vulkan-sdk.tar.gz -C VulkanSDK
VK_LAYER_PATH=""
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh"
# Fix pkgconfig file.
shaderc_pkgconfig_file="VulkanSDK/$(ls VulkanSDK)/x86_64/lib/pkgconfig/shaderc.pc"
prefix_path=$(realpath "VulkanSDK/$(ls VulkanSDK)/x86_64")
#sed -i '3s;.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
#sed -i '5s;.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
sed -i '' 's;^prefix=.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
sed -i '' 's;^libdir=.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
export PKG_CONFIG_PATH="$(realpath "VulkanSDK/$(ls VulkanSDK)/x86_64/lib/pkgconfig")"
fi
elif [ "$RUNNER_OS" == "macOS" ]; then
vulkansdk_filename=$(curl -sIkL https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg | sed -r '/filename=/!d;s/.*filename=(.*)$/\1/')
VULKAN_SDK_VERSION=$(echo $vulkansdk_filename | sed -r 's/^.*vulkansdk-macos-(.*)\.dmg.*$/\1/')
curl -O https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg
sudo hdiutil attach vulkan-sdk.dmg
sudo /Volumes/vulkansdk-macos-$VULKAN_SDK_VERSION/InstallVulkan.app/Contents/MacOS/InstallVulkan \
--root ~/VulkanSDK/$VULKAN_SDK_VERSION --accept-licenses --default-answer --confirm-command install
cd ~/VulkanSDK/$VULKAN_SDK_VERSION
sudo ./install_vulkan.py || true
sudo hdiutil unmount /Volumes/vulkansdk-macos-$VULKAN_SDK_VERSION
# Fix pkgconfig file.
shaderc_pkgconfig_file="$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/macOS/lib/pkgconfig/shaderc.pc"
prefix_path="$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/macOS"
sudo sed -i '' 's;^prefix=.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
sudo sed -i '' 's;^libdir=.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
- name: Install Vulkan SDK
shell: bash
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
distro_code_name="$(lsb_release -c | grep -oP "\:\s+\K\S+")"
os_arch="$(uname -m)"
if ! curl -s -I "https://packages.lunarg.com/vulkan/dists/${distro_code_name}/" | grep "2 404" > /dev/null; then
echo "Installing Vulkan SDK from a PPA..."
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-${distro_code_name}.list \
https://packages.lunarg.com/vulkan/lunarg-vulkan-${distro_code_name}.list
sudo apt update
sudo apt install vulkan-sdk shaderc
else
echo "$RUNNER_OS is not supported."
exit 1
echo "Unpacking Vulkan SDK from an archive file..."
curl --silent --show-error --fail -O https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.gz
mkdir -p VulkanSDK
tar -xf vulkan-sdk.tar.gz -C VulkanSDK
VK_LAYER_PATH=""
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh"
# Fix pkgconfig file.
shaderc_pkgconfig_file="VulkanSDK/$(ls VulkanSDK)/$os_arch/lib/pkgconfig/shaderc.pc"
prefix_path=$(realpath "VulkanSDK/$(ls VulkanSDK)/$os_arch")
#sed -i '3s;.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
#sed -i '5s;.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
sed -i '' 's;^prefix=.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
sed -i '' 's;^libdir=.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
echo "PKG_CONFIG_PATH=\"$(realpath "VulkanSDK/$(ls VulkanSDK)/$os_arch/lib/pkgconfig")\"" >> $GITHUB_ENV
fi
elif [ "$RUNNER_OS" == "macOS" ]; then
vulkansdk_filename=$(curl -sIkL https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg | sed -r '/filename=/!d;s/.*filename=(.*)$/\1/')
VULKAN_SDK_VERSION=$(echo $vulkansdk_filename | sed -r 's/^.*vulkansdk-macos-(.*)\.dmg.*$/\1/')
curl -O https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg
sudo hdiutil attach vulkan-sdk.dmg
# The directory was changed from '/Volumes/VulkanSDK' to, e.g., 'vulkansdk-macos-1.3.261.0'.
vulkan_dir=$(find /Volumes -maxdepth 1 -name '[Vv]ulkan*' -not -path "/Volumes/VMware*" || true)
sudo "${vulkan_dir}/InstallVulkan.app/Contents/MacOS/InstallVulkan" \
--root ~/VulkanSDK/$VULKAN_SDK_VERSION --accept-licenses --default-answer --confirm-command install
cd ~/VulkanSDK/$VULKAN_SDK_VERSION
sudo ./install_vulkan.py || true
sudo hdiutil unmount "${vulkan_dir}"
# Fix pkgconfig file.
shaderc_pkgconfig_file="$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/macOS/lib/pkgconfig/shaderc.pc"
prefix_path="$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/macOS"
sudo sed -i '' 's;^prefix=.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
sudo sed -i '' 's;^libdir=.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
else
echo "$RUNNER_OS is not supported."
exit 1
fi
- name: Configure CMake (sgl)
shell: bash
run: |
params=()
if [ "$RUNNER_OS" == "Linux" ]; then
export VULKAN_SDK="/usr"
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"
elif [ "$RUNNER_OS" == "macOS" ]; then
source "$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/setup-env.sh"
params+=(-DCMAKE_FIND_USE_CMAKE_SYSTEM_PATH=False -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=False -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=NEVER -DZLIB_ROOT="$(brew --prefix)/opt/zlib")
export PKG_CONFIG_PATH="$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/macOS/lib/pkgconfig"
fi
cmake "${{env.sgl_REPO_DIR}}" -B "${{env.sgl_REPO_DIR}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX="${{env.sgl_DIR}}" -DCMAKE_PREFIX_PATH="$(brew --prefix)" "${params[@]}"
- name: Configure CMake (sgl)
shell: bash
run: |
params=()
if [ "$RUNNER_OS" == "Linux" ]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
os_arch="$(uname -m)"
export VULKAN_SDK="/usr"
export PKG_CONFIG_PATH="/usr/lib/${os_arch}-linux-gnu/pkgconfig"
elif [ "$RUNNER_OS" == "macOS" ]; then
source "$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/setup-env.sh"
params+=(-DCMAKE_FIND_USE_CMAKE_SYSTEM_PATH=False -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=False -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=NEVER -DZLIB_ROOT="$(brew --prefix)/opt/zlib")
export PKG_CONFIG_PATH="$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/macOS/lib/pkgconfig"
fi
cmake "${{env.sgl_REPO_DIR}}" -B "${{env.sgl_REPO_DIR}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX="${{env.sgl_DIR}}" -DCMAKE_PREFIX_PATH="$(brew --prefix)" "${params[@]}"
- name: Build (sgl)
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --parallel 4
- name: Build (sgl)
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --parallel 4

- name: Install (sgl)
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --target install
- name: Install (sgl)
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --target install

- name: Configure CMake (CloudRendering)
shell: bash
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
- name: Configure CMake (CloudRendering)
shell: bash
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then
VK_LAYER_PATH=""
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh"
export PKG_CONFIG_PATH="${{env.PKG_CONFIG_PATH}}"
else
os_arch="$(uname -m)"
export VULKAN_SDK="/usr"
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"
elif [ "$RUNNER_OS" == "macOS" ]; then
source "$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/setup-env.sh"
params+=(-DCMAKE_FIND_USE_CMAKE_SYSTEM_PATH=False -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=False -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=NEVER -DZLIB_ROOT="$(brew --prefix)/opt/zlib")
export PKG_CONFIG_PATH="/usr/lib/${os_arch}-linux-gnu/pkgconfig"
fi
cmake -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dsgl_DIR=${{env.sgl_DIR}}/lib/cmake/sgl -DCMAKE_PREFIX_PATH="$(brew --prefix)" "${params[@]}"
elif [ "$RUNNER_OS" == "macOS" ]; then
source "$HOME/VulkanSDK/$(ls $HOME/VulkanSDK)/setup-env.sh"
params+=(-DCMAKE_FIND_USE_CMAKE_SYSTEM_PATH=False -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=False -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_FIND_APPBUNDLE=NEVER -DZLIB_ROOT="$(brew --prefix)/opt/zlib")
fi
cmake -B "${{github.workspace}}/build" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dsgl_DIR=${{env.sgl_DIR}}/lib/cmake/sgl -DCMAKE_PREFIX_PATH="$(brew --prefix)" "${params[@]}"
- name: Build (CloudRendering)
run: cmake --build "${{github.workspace}}/build" --config ${{env.BUILD_TYPE}} --parallel 4
- name: Build (CloudRendering)
run: cmake --build "${{github.workspace}}/build" --config ${{env.BUILD_TYPE}} --parallel 4
9 changes: 2 additions & 7 deletions .github/workflows/build-msys2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ jobs:
mingw64/mingw-w64-x86_64-vulkan-loader
mingw64/mingw-w64-x86_64-vulkan-validation-layers
mingw64/mingw-w64-x86_64-shaderc
mingw64/mingw-w64-x86_64-opencl-headers
mingw64/mingw-w64-x86_64-opencl-icd
mingw64/mingw-w64-x86_64-jsoncpp
mingw64/mingw-w64-x86_64-openexr
Expand All @@ -60,14 +62,8 @@ jobs:
path: sgl-repo
submodules: true

- name: Install Vulkan SDK
shell: bash
run: |
choco install vulkan-sdk
- name: Configure CMake (sgl)
run: |
export VULKAN_SDK="C:/VulkanSDK/$(ls C:/VulkanSDK)"
cmake "${{env.sgl_REPO_DIR}}" -B "${{env.sgl_REPO_DIR}}/build" -G "MSYS Makefiles" \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX="${{env.sgl_DIR}}"
Expand All @@ -79,7 +75,6 @@ jobs:

- name: Configure CMake (CloudRendering)
run: |
export VULKAN_SDK="C:/VulkanSDK/$(ls C:/VulkanSDK)"
cmake -B "${{github.workspace}}/build" -G "MSYS Makefiles" -DPython3_FIND_REGISTRY=NEVER \
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dsgl_DIR="${{env.sgl_DIR}}/lib/cmake/sgl"
Expand Down
52 changes: 34 additions & 18 deletions .github/workflows/build-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-18.04, ubuntu-20.04, ubuntu-22.04 ]
os: [ ubuntu-20.04, ubuntu-22.04 ]

runs-on: ${{ matrix.os }}
name: "Build on ${{ matrix.os }}"
Expand All @@ -39,38 +39,43 @@ jobs:
run: |
sudo apt-get update
distro_code_name=$(lsb_release -c | grep -oP "\:\s+\K\S+")
if [ "$distro_code_name" = "jammy" ]; then
# Fix for https://askubuntu.com/questions/1417403/can-not-install-libudev-dev-on-ubuntu-22-04/1417416#1417416
sudo apt-get install aptitude
sudo apt-get upgrade
sudo apt-get --with-new-pkgs upgrade
sudo aptitude full-upgrade -y
sudo apt-get update
sudo apt-get upgrade
fi
# Removed fix below to fix "dpkg: error processing package grub-efi-amd64-signed" (2023-02-28).
#if [ "$distro_code_name" = "jammy" ]; then
# # Fix for https://askubuntu.com/questions/1417403/can-not-install-libudev-dev-on-ubuntu-22-04/1417416#1417416
# sudo apt-get install aptitude
# sudo apt-get upgrade
# sudo apt-get --with-new-pkgs upgrade
# sudo aptitude full-upgrade -y
# sudo apt-get update
# sudo apt-get upgrade
#fi
sudo apt-get install git cmake libglm-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev \
libpng-dev libboost-filesystem-dev libtinyxml2-dev libarchive-dev libglew-dev libjsoncpp-dev libopenexr-dev
libpng-dev libboost-filesystem-dev libtinyxml2-dev libarchive-dev libglew-dev opencl-c-headers ocl-icd-opencl-dev \
libjsoncpp-dev libopenexr-dev
- name: Install Vulkan SDK
shell: bash
run: |
distro_code_name=$(lsb_release -c | grep -oP "\:\s+\K\S+")
if ! curl -s -I "https://packages.lunarg.com/vulkan/lunarg-vulkan-${distro_code_name}.list" | grep "2 404" > /dev/null; then
distro_code_name="$(lsb_release -c | grep -oP "\:\s+\K\S+")"
os_arch="$(uname -m)"
if ! curl -s -I "https://packages.lunarg.com/vulkan/dists/${distro_code_name}/" | grep "2 404" > /dev/null; then
echo "Installing Vulkan SDK from a PPA..."
wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-${distro_code_name}.list \
https://packages.lunarg.com/vulkan/lunarg-vulkan-${distro_code_name}.list
sudo apt update
sudo apt install vulkan-sdk shaderc
else
echo "Unpacking Vulkan SDK from an archive file..."
curl --silent --show-error --fail -O https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.gz
mkdir -p VulkanSDK
tar -xzf vulkan-sdk.tar.gz -C VulkanSDK
tar -xf vulkan-sdk.tar.gz -C VulkanSDK
# Fix pkgconfig file.
shaderc_pkgconfig_file="VulkanSDK/$(ls VulkanSDK)/x86_64/lib/pkgconfig/shaderc.pc"
prefix_path=$(realpath "VulkanSDK/$(ls VulkanSDK)/x86_64")
shaderc_pkgconfig_file="VulkanSDK/$(ls VulkanSDK)/$os_arch/lib/pkgconfig/shaderc.pc"
prefix_path=$(realpath "VulkanSDK/$(ls VulkanSDK)/$os_arch")
sed -i '3s;.*;prefix=\"'$prefix_path'\";' "$shaderc_pkgconfig_file"
sed -i '5s;.*;libdir=${prefix}/lib;' "$shaderc_pkgconfig_file"
echo "PKG_CONFIG_PATH=\"$(realpath "VulkanSDK/$(ls VulkanSDK)/x86_64/lib/pkgconfig")\"" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=\"$(realpath "VulkanSDK/$(ls VulkanSDK)/$os_arch/lib/pkgconfig")\"" >> $GITHUB_ENV
fi
- name: Configure CMake (sgl)
Expand All @@ -92,12 +97,23 @@ jobs:
run: cmake --build ${{env.sgl_REPO_DIR}}/build --config ${{env.BUILD_TYPE}} --target install

- name: Configure CMake (CloudRendering)
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dsgl_DIR=${{env.sgl_DIR}}/lib/cmake/sgl
run: |
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then
VK_LAYER_PATH=""
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh"
export PKG_CONFIG_PATH="${{env.PKG_CONFIG_PATH}}"
else
export VULKAN_SDK="/usr"
fi
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dsgl_DIR=${{env.sgl_DIR}}/lib/cmake/sgl
- name: Build (CloudRendering)
run: |
if [ "${{env.PKG_CONFIG_PATH}}" != "" ]; then
VK_LAYER_PATH=""
source "VulkanSDK/$(ls VulkanSDK)/setup-env.sh"
export PKG_CONFIG_PATH="${{env.PKG_CONFIG_PATH}}"
else
export VULKAN_SDK="/usr"
fi
cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 4
Loading

0 comments on commit 79a61e5

Please sign in to comment.