From 45c4f730e8610677f94d577468da0e25ac8d086c Mon Sep 17 00:00:00 2001 From: Ron Bessems Date: Tue, 27 Feb 2024 11:35:32 -0800 Subject: [PATCH] Enable building of the chapters. * Enables Linux (Vulkan, OpenGL) * Enables Android (Vulkan, OpenGLES) --- .github/workflows/build-android.yml | 30 ++++++++++++++++++ .github/workflows/build-host-linux.yml | 39 ++++++++++++++++++++++++ .github/workflows/build-host-windows.yml | 30 ++++++++++++++++++ cmake/graphics_api_select.cmake | 11 +++---- 4 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/build-android.yml create mode 100644 .github/workflows/build-host-linux.yml create mode 100644 .github/workflows/build-host-windows.yml diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml new file mode 100644 index 0000000..7ced7b4 --- /dev/null +++ b/.github/workflows/build-android.yml @@ -0,0 +1,30 @@ +name: 'Android Build Chapters' +on: + pull_request: + branches: [ "main" ] +# tags: +# - "v*.*.*" +# workflow_dispatch: + +jobs: + build: + name: Android Build + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + os: [ubuntu-latest] + target: [android] + graphics: [VULKAN, OPENGL_ES] + chapter: [Chapter1, Chapter2, Chapter3, Chapter4, Chapter5] + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build ${{ matrix.chapter }} using ${{ matrix.gfx }} on ${{ matrix.os }} + run: | + echo "Building ${{ matrix.chapter }} using ${{ matrix.gfx }} on ${{ matrix.os }} ${{ github.ref_name }}" + export GFX=${{ matrix.graphics }} + cd ${{ matrix.chapter }} + chmod 755 gradlew + ./gradlew assembleDebug + diff --git a/.github/workflows/build-host-linux.yml b/.github/workflows/build-host-linux.yml new file mode 100644 index 0000000..6f40e62 --- /dev/null +++ b/.github/workflows/build-host-linux.yml @@ -0,0 +1,39 @@ +name: 'Linux Build Chapters' +on: + pull_request: + branches: [ "main" ] +# tags: +# - "v*.*.*" +# workflow_dispatch: + +jobs: + build: + name: Linux Build + runs-on: ${{matrix.os}} + strategy: + fail-fast: true + matrix: + os: [ubuntu-latest] + target: [linux] + graphics: [VULKAN, OPENGL] + steps: + - name: Setup + run: | + sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev libgl1-mesa-dev + sudo apt install vulkan-tools + sudo apt install libvulkan-dev + sudo apt install vulkan-validationlayers-dev spirv-tools glslang-tools + sudo apt install libxrandr-dev libxxf86vm-dev + sudo apt-get install libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev + sudo apt-get install libgl1-mesa-dev libvulkan-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-glx0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev mesa-common-dev + - name: Checkout + uses: actions/checkout@v4 + - name: Build ${{ matrix.gfx }} on ${{ matrix.os }} + run: | + echo "Building ${{ matrix.os }} ${{ github.ref_name }}" + export GFX=${{ matrix.graphics }} + mkdir build + cd build + cmake .. + cmake --build . + diff --git a/.github/workflows/build-host-windows.yml b/.github/workflows/build-host-windows.yml new file mode 100644 index 0000000..afe7ec4 --- /dev/null +++ b/.github/workflows/build-host-windows.yml @@ -0,0 +1,30 @@ +name: 'Windows Build Chapters' +on: + pull_request: + branches: [ "main" ] +# tags: +# - "v*.*.*" +# workflow_dispatch: + +jobs: + build: + if: false + name: Windows Build + runs-on: ${{matrix.os}} + strategy: + fail-fast: true + matrix: + os: [windows-latest] + target: [windows] + graphics: [VULKAN, OPENGL, DX11, DX12] + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build ${{ matrix.gfx }} on ${{ matrix.os }} + run: | + echo "Building ${{ matrix.os }} ${{ github.ref_name }}" + set GFX=${{ matrix.graphics }} + mkdir build + cd build + cmake .. + cmake --build . diff --git a/cmake/graphics_api_select.cmake b/cmake/graphics_api_select.cmake index 5d955be..0736edf 100644 --- a/cmake/graphics_api_select.cmake +++ b/cmake/graphics_api_select.cmake @@ -4,13 +4,12 @@ include_guard() + set(XR_TUTORIAL_GRAPHICS_API "VULKAN" CACHE STRING "Which graphics API to use when building the tutorial projects.") -if(WIN32) - set_property(CACHE XR_TUTORIAL_GRAPHICS_API PROPERTY STRINGS D3D11 D3D12 OPENGL VULKAN) -elseif(LINUX AND NOT ANDROID) - set_property(CACHE XR_TUTORIAL_GRAPHICS_API PROPERTY STRINGS OPENGL VULKAN) -elseif(ANDROID) - set_property(CACHE XR_TUTORIAL_GRAPHICS_API PROPERTY STRINGS OPENGL_ES VULKAN) + +IF(DEFINED ENV{GFX}) + message(STATUS, "Overriding graphics api: " $ENV{GFX} ) + set_property(CACHE XR_TUTORIAL_GRAPHICS_API PROPERTY VALUE $ENV{GFX}) endif() function(AddGraphicsAPIDefine PROJECT_NAME)