diff --git a/.github/workflows/wine_dll_artifacts.yml b/.github/workflows/wine_dll_artifacts.yml new file mode 100644 index 000000000..2ba174f2d --- /dev/null +++ b/.github/workflows/wine_dll_artifacts.yml @@ -0,0 +1,88 @@ +name: Wine DLL artifacts + +on: + push: + branches: + - main + +env: + BUILD_TYPE: Release + +jobs: + wine_dll_artifacts: + runs-on: ${{ matrix.arch }} + strategy: + matrix: + arch: [[self-hosted, ARM64, mingw]] + fail-fast: false + + steps: + - uses: actions/checkout@v3 + + - name: Add MingGW to PATH + run: echo "$HOME/llvm-mingw/build/bin/" >> $GITHUB_PATH + + - name : submodule checkout + # Need to update submodules + run: | + git submodule sync --recursive + git submodule update --init --depth 1 + + - name: Clean install directory + run: | + rm -Rf ${{runner.workspace}}/build_install + mkdir ${{runner.workspace}}/build_install + + - name: Clean Build Environment + run: | + rm -Rf ${{runner.workspace}}/build_arm64ec + rm -Rf ${{runner.workspace}}/build_wow64 + + - name: Create Build Environment arm64ec + run: | + cmake -E make_directory ${{runner.workspace}}/build_arm64ec + cmake -E make_directory ${{runner.workspace}}/build_wow64 + + - name: Configure CMake arm64ec + shell: bash + working-directory: ${{runner.workspace}}/build_arm64ec + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=arm64ec-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=False -DENABLE_JEMALLOC_GLIBC_ALLOC=False -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=False -DCMAKE_INSTALL_PREFIX=/usr + + - name: Configure CMake wow64 + shell: bash + working-directory: ${{runner.workspace}}/build_wow64 + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=aarch64-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=False -DENABLE_JEMALLOC_GLIBC_ALLOC=False -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=False -DCMAKE_INSTALL_PREFIX=/usr + + - name: Build arm64ec + working-directory: ${{runner.workspace}}/build_arm64ec + shell: bash + run: cmake --build . --config $BUILD_TYPE + + - name: install arm64ec + working-directory: ${{runner.workspace}}/build_arm64ec + shell: bash + env: + DESTDIR: ${{runner.workspace}}/build_install + run: cmake --build . --config $BUILD_TYPE -t install + + - name: Build wow64 + working-directory: ${{runner.workspace}}/build_wow64 + shell: bash + run: cmake --build . --config $BUILD_TYPE + + - name: install wow64 + working-directory: ${{runner.workspace}}/build_wow64 + shell: bash + env: + DESTDIR: ${{runner.workspace}}/build_install + run: cmake --build . --config $BUILD_TYPE -t install + + - name: Upload libraries + uses: 'actions/upload-artifact@v4' + timeout-minutes: 1 + with: + overwrite: true + name: wine_dll_artifacts + path: ${{runner.workspace}}/build_install/usr/lib/wine/aarch64-windows/lib*.dll + retention-days: 60 + compression-level: 9