diff --git a/.github/workflows/windows-clang.yml b/.github/workflows/windows-clang.yml index fc184151..3b202cbb 100644 --- a/.github/workflows/windows-clang.yml +++ b/.github/workflows/windows-clang.yml @@ -21,35 +21,56 @@ jobs: - uses: actions/checkout@v2 with: submodules: 'true' - - - name: Install latest cmake and ninja - uses: lukka/get-cmake@latest - - - name: Bootstrap vcpkg - shell: pwsh + - uses: msys2/setup-msys2@v2 + id: msys2 + name: Setup MSYS2 + with: + msystem: clang64 + install: >- + mingw-w64-clang-x86_64-toolchain + mingw-w64-clang-x86_64-cmake + mingw-w64-clang-x86_64-make + mingw-w64-clang-x86_64-luajit + git + - name: Set up vcpkg + shell: msys2 {0} run: | - git clone https://github.com/microsoft/vcpkg.git - ${{ github.workspace }}/vcpkg/bootstrap-vcpkg.bat - - name: Configure and build project with CMake and vcpkg - env: - VCPKG_ROOT: ${{ github.workspace }}/vcpkg + git clone https://github.com/microsoft/vcpkg.git + cd vcpkg + ./bootstrap-vcpkg.bat + ./vcpkg integrate install + cd .. + - name: Configure project with CMake and vcpkg + shell: msys2 {0} run: | - cmake --preset default-ninja-clang-windows - cmake --build --preset default-ninja-clang-windows --config Release - - name: Run tests - run: ctest --preset default-vs-msvc-windows - - name: Run engine tests - run: | - build/vctest/Release/vctest.exe -e build/Release/VoxelEngine.exe -d dev/tests -u build --output-always - timeout-minutes: 1 + export VCPKG_DEFAULT_TRIPLET=x64-mingw-static + export VCPKG_DEFAULT_HOST_TRIPLET=x64-mingw-static + export VCPKG_DEFAULT_HOST_TRIPLET=./vcpkg + mkdir build + cd build + cmake -G "MinGW Makefiles" -DVCPKG_TARGET_TRIPLET=x64-mingw-static -DCMAKE_BUILD_TYPE=Release -DVOXELENGINE_BUILD_WINDOWS_VCPKG=ON .. + cmake --build . --config Release - name: Package for Windows run: | mkdir packaged - cp -r build/Release/* packaged/ - cp build/vctest/Release/vctest.exe packaged/ + mkdir packaged/res + cp build/VoxelEngine.exe packaged/ + cp build/vctest/vctest.exe packaged/ + cp build/*.dll packaged/ + cp -r build/res/* packaged/res/ mv packaged/VoxelEngine.exe packaged/VoxelCore.exe + - env: + MSYS2_LOCATION: ${{ steps.msys2.outputs.msys2-location }} + name: Add lua51.dll to the package + run: | + cp $env:MSYS2_LOCATION/clang64/bin/lua51.dll ${{ github.workspace }}/packaged/ working-directory: ${{ github.workspace }} - uses: actions/upload-artifact@v4 with: name: Windows-Build path: 'packaged/*' + - name: Run engine tests + shell: msys2 {0} + working-directory: ${{ github.workspace }} + run: | + packaged/vctest.exe -e packaged/VoxelCore.exe -d dev/tests -u build --output-always \ No newline at end of file