From 409ac6072ecfda10ee7026268f66e109032deafd Mon Sep 17 00:00:00 2001 From: Tim Gfrerer Date: Fri, 27 Aug 2021 15:30:36 +0100 Subject: [PATCH] add windows ci (#34) * add windows ci * update readme --- .github/workflows/c-cpp.yml | 42 ++++++++++++++++++++++++++++++++----- README.md | 13 ++++++------ 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index a71d6a5ac..1d14a0795 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -1,6 +1,4 @@ - - name: C/C++ CI on: @@ -10,7 +8,41 @@ on: branches: [ wip ] jobs: - build: + + build_windows: + + runs-on: windows-latest + + steps: + - name: Setup Vulkan + run: | + Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/1.2.182.0/windows/VulkanSDK-1.2.182.0-Installer.exe" -OutFile VulkanSDK.exe + $installer = Start-Process -FilePath VulkanSDK.exe -Wait -PassThru -ArgumentList @("/S"); + $installer.WaitForExit(); + - name: Set VCvars + uses: ilammy/msvc-dev-cmd@v1 + + - name: Set Compiler Environment + uses: lukka/set-shell-env@v1 + with: + CXX: cl.exe + CC: cl.exe + + - uses: actions/checkout@v2 + + - uses: seanmiddleditch/gha-setup-ninja@master + + - name: Run Tests + shell: powershell + run: | + $Env:VULKAN_SDK = "C:/VulkanSDK/1.2.182.0" + $Env:Path += "C:/VulkanSDK/1.2.182.0/Bin" + git submodule init + git submodule update --depth=1 + & ./scripts/ci/run_tests.ps1 + + + build_linux: runs-on: ubuntu-latest @@ -22,11 +54,11 @@ jobs: run: sudo apt-get install -y libxinerama-dev libxcursor-dev libxi-dev libxrandr-dev; 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-1.2.176-focal.list https://packages.lunarg.com/vulkan/1.2.176/lunarg-vulkan-1.2.176-focal.list; + sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.2.182-focal.list https://packages.lunarg.com/vulkan/1.2.182/lunarg-vulkan-1.2.182-focal.list; sudo apt-get -qq update; sudo apt-get -y install vulkan-sdk - - name: run_tests + - name: Run Tests run: ./scripts/ci/run_tests.sh diff --git a/README.md b/README.md index a8753e860..53cf8d166 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ Each module aims to be strictly isolated, which makes the codebase **fast to compile**, especially in parallel. [![C/C++ CI](https://github.com/tgfrerer/island/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/tgfrerer/island/actions/workflows/c-cpp.yml) -[![Build status](https://ci.appveyor.com/api/projects/status/v68ft8y1ekb27j61?svg=true)](https://ci.appveyor.com/project/tgfrerer/island) ## Main Features: @@ -158,11 +157,11 @@ listed here: | `le_renderer` | - | record command buffers, evaluate rendergraphs | | `le_backend` | - | interact with GPU via Vulkan, manage GPU resources | -To add a module, specify it in the application's `CMakeLists.txt` file. Modules -may depend on other modules, and the build system will automatically include -these dependencies. You can write your own modules - and there is a [module -template generator][module-generator] which provides you with a scaffold to -start from. +To use a module, name it as a dependency in your applidation module's +`CMakeLists.txt` file; modules may depend on other modules, and the build +system will automatically include these dependencies. You can write your own +modules - and there is a [module template generator][module-generator] which +provides you with a scaffold to start from. [link-imgui]: https://github.com/ocornut/imgui [link-earcut]: https://github.com/mapbox/earcut.hpp @@ -262,7 +261,7 @@ setup is pretty nice: last line of the above script causes `ninja` to run as soon as any of the files checked into the github repo at `hello_triangle` change. -## Experimental Windows 10 support +## Windows 10 support Island can compile and run natively on Microsoft Windows - with some caveats. Progress of the Windows port and Windows-specific build