Selaa lähdekoodia

Added wayland build to github actions
Ensure wayland included files are ignored unless ENABLE_WAYLAND is enabled

Signed-off-by: Alexis Maiquez <almamu@almamu.com>

Alexis Maiquez 3 vuotta sitten
vanhempi
commit
ddd448b1e3

+ 24 - 0
.github/workflows/cmake.yml

@@ -34,3 +34,27 @@ jobs:
     - name: Build
       # Build your program with the given configuration
       run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
+
+  build-wayland:
+    strategy:
+      matrix:
+        os: [ubuntu-22.04, ubuntu-20.04]
+    # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
+    # You can convert this to a matrix build if you need cross-platform coverage.
+    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+    runs-on: ${{ matrix.os }}
+
+    steps:
+    - uses: actions/checkout@v3
+
+    - name: Install dependencies
+      run: sudo apt-get update && sudo apt-get -y install libxrandr-dev libfreeimage-dev libxinerama-dev libxcursor-dev libxi-dev libgl-dev libglew-dev freeglut3-dev libsdl2-dev liblz4-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libxxf86vm-dev libglm-dev libglfw3-dev libmpv-dev mpv libmpv1 libpulse-dev libpulse0 wayland-scanner++ wayland-protocols libwayland-dev libwayland-egl-backend-dev
+
+    - name: Configure CMake
+      # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
+      # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
+      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_WAYLAND=True
+
+    - name: Build
+      # Build your program with the given configuration
+      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}

+ 2 - 5
src/WallpaperEngine/Application/CWallpaperApplication.cpp

@@ -8,13 +8,10 @@
 #include "WallpaperEngine/Render/CRenderContext.h"
 #include "WallpaperEngine/Application/CApplicationState.h"
 #include "WallpaperEngine/Audio/Drivers/Detectors/CPulseAudioPlayingDetector.h"
-#include "WallpaperEngine/Input/Drivers/CWaylandMouseInput.h"
-#include "WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h"
 #include "WallpaperEngine/Input/Drivers/CGLFWMouseInput.h"
-#include "WallpaperEngine/Render/Drivers/Detectors/CWaylandFullScreenDetector.h"
-#include "WallpaperEngine/Render/Drivers/Output/CWaylandOutput.h"
 
-#include <unistd.h>
+#include "WallpaperEngine/Input/Drivers/CWaylandMouseInput.h"
+#include "WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h"
 
 float g_Time;
 float g_TimeLast;

+ 2 - 0
src/WallpaperEngine/Input/Drivers/CWaylandMouseInput.h

@@ -1,3 +1,4 @@
+#ifdef ENABLE_WAYLAND
 #pragma once
 
 #include "WallpaperEngine/Input/CMouseInput.h"
@@ -37,3 +38,4 @@ namespace WallpaperEngine::Input::Drivers
     };
 }
 
+#endif /* ENABLE_WAYLAND */

+ 3 - 1
src/WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h

@@ -1,3 +1,4 @@
+#ifdef ENABLE_WAYLAND
 #pragma once
 
 #include <wayland-client.h>
@@ -108,4 +109,5 @@ namespace WallpaperEngine::Render::Drivers
 
         std::chrono::high_resolution_clock::time_point renderStart = std::chrono::high_resolution_clock::now();
     };
-}
+}
+#endif /* ENABLE_WAYLAND */

+ 3 - 1
src/WallpaperEngine/Render/Drivers/Detectors/CWaylandFullScreenDetector.h

@@ -1,3 +1,4 @@
+#ifdef ENABLE_WAYLAND
 #pragma once
 
 #include <string>
@@ -23,4 +24,5 @@ namespace WallpaperEngine::Render::Drivers
             void reset () override;
         };
     }
-}
+}
+#endif /* ENABLE_WAYLAND */

+ 3 - 1
src/WallpaperEngine/Render/Drivers/Output/CWaylandOutput.h

@@ -1,3 +1,4 @@
+#ifdef ENABLE_WAYLAND
 #pragma once
 
 #include <map>
@@ -31,4 +32,5 @@ namespace WallpaperEngine::Render::Drivers
             void updateViewports();
         };
     }
-}
+}
+#endif /* ENABLE_WAYLAND */

+ 2 - 0
src/WallpaperEngine/Render/Drivers/Output/CWaylandOutputViewport.h

@@ -1,3 +1,4 @@
+#ifdef ENABLE_WAYLAND
 #pragma once
 
 #include <wayland-client.h>
@@ -73,3 +74,4 @@ namespace WallpaperEngine::Render::Drivers
         };
     }
 }
+#endif /* ENABLE_WAYLAND */