From f84cf0b2fd371c81c5c085fdf16c4ef057341080 Mon Sep 17 00:00:00 2001 From: rjindael Date: Mon, 17 Jul 2023 17:57:26 -0700 Subject: [PATCH] add windows builds(?) --- .github/workflows/ci.yml | 59 +++++++++++++++++++++++++++++++++++++++ Content/linux_plugins.cfg | 35 +++++++---------------- Content/win32_plugins.cfg | 36 ++++++++---------------- 3 files changed, 80 insertions(+), 50 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1b25034 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,59 @@ +name: CI +on: [push] + +jobs: + build-windows: + strategy: + matrix: + configuration: [Release, Debug] + + name: Build (Windows) + runs-on: windows-latest + + defaults: + run: + shell: msys2 {0} + + steps: + - uses: actions/checkout@v3 + + - uses: msys2/setup-msys2@v2 + name: Set up MSYS2 + with: + update: true + msystem: mingw64 + install: >- + mingw-w64-x86_64-cmake + mingw-w64-x86_64-ninja + mingw-w64-x86_64-boost + mingw-w64-x86_64-pugixml + mingw-w64-x86_64-ogre + mingw-w64-x86_64-qt + + - name: Generate CMake build files + run: cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=${{ matrix.configuration == 'Release' && 'MinSizeRel' || matrix.configuration }} . + + - name: Build + run: ninja -C build + + - name: Organize binaries + run: mkdir build/dist && mv build/*.exe build/dist && cd build/dist && for x in *.exe; do mv $x "RNR.$x"; done && cd ../../ + + - name: Add Qt dependencies + run: windeployqt6 build/dist/*.exe + + # ouch - unless and until we start using CMake's install command, these commands are a necessary evil + - name: Add runtime dependencies + run: ldd build/dist/*.exe | grep "=> /" | awk '{print $3}' | grep "mingw64" | xargs -I '{}' cp -v '{}' build/dist + + - name: Add OGRE plugins + run: cp Content/win32_plugins.cfg build/dist/plugins.cfg && mkdir build/dist/plugins/ && cat build/dist/plugins.cfg | grep "Plugin=" | sed -e "s/Plugin=//" | xargs -I '{}' cp -v '/mingw64/bin/{}.dll' build/dist/plugins/ + + - name: Add resources + run: cp -R Content/RNR build/dist/content && cp LICENSE build/dist + + - name: Upload + uses: actions/upload-artifact@v3 + with: + name: RNR for Windows (${{ matrix.configuration }}) + path: build/dist \ No newline at end of file diff --git a/Content/linux_plugins.cfg b/Content/linux_plugins.cfg index b8eb61d..8bb32f8 100644 --- a/Content/linux_plugins.cfg +++ b/Content/linux_plugins.cfg @@ -1,27 +1,12 @@ -# Defines plugins to load - -# Define plugin folder PluginFolder=/usr/lib/OGRE -# Define plugins -# Plugin=RenderSystem_Direct3D9 -# Plugin=RenderSystem_Direct3D11 - Plugin=RenderSystem_GL - Plugin=RenderSystem_GL3Plus - Plugin=RenderSystem_GLES2 -# Plugin=RenderSystem_Metal -# Plugin=RenderSystem_Tiny -# Plugin=RenderSystem_Vulkan - Plugin=Plugin_ParticleFX - Plugin=Plugin_BSPSceneManager -# Plugin=Plugin_CgProgramManager -# Plugin=Plugin_GLSLangProgramManager -# Plugin=Codec_EXR - Plugin=Codec_STBI -# Plugin=Codec_RsImage -# Plugin=Codec_FreeImage - Plugin=Plugin_PCZSceneManager - Plugin=Plugin_OctreeZone - Plugin=Plugin_OctreeSceneManager - Plugin=Plugin_DotScene -# Plugin=Codec_Assimp +Plugin=RenderSystem_GL +Plugin=RenderSystem_GL3Plus +Plugin=RenderSystem_GLES2 +Plugin=Plugin_ParticleFX +Plugin=Plugin_BSPSceneManager +Plugin=Codec_STBI +Plugin=Plugin_PCZSceneManager +Plugin=Plugin_OctreeZone +Plugin=Plugin_OctreeSceneManager +Plugin=Plugin_DotScene \ No newline at end of file diff --git a/Content/win32_plugins.cfg b/Content/win32_plugins.cfg index 20178ba..c00fda7 100644 --- a/Content/win32_plugins.cfg +++ b/Content/win32_plugins.cfg @@ -1,27 +1,13 @@ -# Defines plugins to load - -# Define plugin folder PluginFolder=plugins -# Define plugins - Plugin=RenderSystem_Direct3D9 - Plugin=RenderSystem_Direct3D11 - Plugin=RenderSystem_GL - Plugin=RenderSystem_GL3Plus - Plugin=RenderSystem_GLES2 -# Plugin=RenderSystem_Metal -# Plugin=RenderSystem_Tiny -# Plugin=RenderSystem_Vulkan - Plugin=Plugin_ParticleFX - Plugin=Plugin_BSPSceneManager -# Plugin=Plugin_CgProgramManager -# Plugin=Plugin_GLSLangProgramManager -# Plugin=Codec_EXR - Plugin=Codec_STBI -# Plugin=Codec_RsImage -# Plugin=Codec_FreeImage - Plugin=Plugin_PCZSceneManager - Plugin=Plugin_OctreeZone - Plugin=Plugin_OctreeSceneManager -# Plugin=Plugin_DotScene -# Plugin=Codec_Assimp +Plugin=RenderSystem_Direct3D9 +Plugin=RenderSystem_Direct3D11 +Plugin=RenderSystem_GL +Plugin=RenderSystem_GL3Plus +Plugin=RenderSystem_GLES2 +Plugin=Plugin_ParticleFX +Plugin=Plugin_BSPSceneManager +Plugin=Codec_STBI +Plugin=Plugin_PCZSceneManager +Plugin=Plugin_OctreeZone +Plugin=Plugin_OctreeSceneManager \ No newline at end of file