diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index f268342..5f185d8 100644 --- a/.github/workflows/cmake.yml +++ b/.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}} diff --git a/src/WallpaperEngine/Application/CWallpaperApplication.cpp b/src/WallpaperEngine/Application/CWallpaperApplication.cpp index 0371ec0..810e936 100644 --- a/src/WallpaperEngine/Application/CWallpaperApplication.cpp +++ b/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/CGLFWMouseInput.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 float g_Time; float g_TimeLast; diff --git a/src/WallpaperEngine/Input/Drivers/CWaylandMouseInput.h b/src/WallpaperEngine/Input/Drivers/CWaylandMouseInput.h index 69ebece..dd83a61 100644 --- a/src/WallpaperEngine/Input/Drivers/CWaylandMouseInput.h +++ b/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 */ \ No newline at end of file diff --git a/src/WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h b/src/WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h index e6f5384..2def62f 100644 --- a/src/WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h +++ b/src/WallpaperEngine/Render/Drivers/CWaylandOpenGLDriver.h @@ -1,3 +1,4 @@ +#ifdef ENABLE_WAYLAND #pragma once #include @@ -108,4 +109,5 @@ namespace WallpaperEngine::Render::Drivers std::chrono::high_resolution_clock::time_point renderStart = std::chrono::high_resolution_clock::now(); }; -} \ No newline at end of file +} +#endif /* ENABLE_WAYLAND */ \ No newline at end of file diff --git a/src/WallpaperEngine/Render/Drivers/Detectors/CWaylandFullScreenDetector.h b/src/WallpaperEngine/Render/Drivers/Detectors/CWaylandFullScreenDetector.h index edd06f1..00650b0 100644 --- a/src/WallpaperEngine/Render/Drivers/Detectors/CWaylandFullScreenDetector.h +++ b/src/WallpaperEngine/Render/Drivers/Detectors/CWaylandFullScreenDetector.h @@ -1,3 +1,4 @@ +#ifdef ENABLE_WAYLAND #pragma once #include @@ -23,4 +24,5 @@ namespace WallpaperEngine::Render::Drivers void reset () override; }; } -} \ No newline at end of file +} +#endif /* ENABLE_WAYLAND */ \ No newline at end of file diff --git a/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutput.h b/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutput.h index 43ad220..eca4367 100644 --- a/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutput.h +++ b/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutput.h @@ -1,3 +1,4 @@ +#ifdef ENABLE_WAYLAND #pragma once #include @@ -31,4 +32,5 @@ namespace WallpaperEngine::Render::Drivers void updateViewports(); }; } -} \ No newline at end of file +} +#endif /* ENABLE_WAYLAND */ \ No newline at end of file diff --git a/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutputViewport.h b/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutputViewport.h index a62cb60..d312ac5 100644 --- a/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutputViewport.h +++ b/src/WallpaperEngine/Render/Drivers/Output/CWaylandOutputViewport.h @@ -1,3 +1,4 @@ +#ifdef ENABLE_WAYLAND #pragma once #include @@ -73,3 +74,4 @@ namespace WallpaperEngine::Render::Drivers }; } } +#endif /* ENABLE_WAYLAND */ \ No newline at end of file