From 22c2044e955a0866adb0dfbeca90a96ba8897ec7 Mon Sep 17 00:00:00 2001 From: ovosimpatico Date: Fri, 26 Dec 2025 21:26:29 -0300 Subject: [PATCH] we testing build now --- .gitea/workflows/build.yml | 180 +++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000000..61a94110e6 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,180 @@ +name: Build Eden Emulator + +on: + push: + branches: + - dev + workflow_dispatch: + +jobs: + build-linux: + name: Build Linux + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + autoconf cmake g++ gcc git glslang-tools \ + libglu1-mesa-dev libhidapi-dev libpulse-dev \ + libtool libudev-dev libxcb-icccm4 libxcb-image0 \ + libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 \ + libxcb-xkb1 libxext-dev libxkbcommon-x11-0 \ + mesa-common-dev nasm ninja-build qt6-base-private-dev \ + libmbedtls-dev catch2 libfmt-dev liblz4-dev \ + nlohmann-json3-dev libzstd-dev libssl-dev \ + libavfilter-dev libavcodec-dev libswscale-dev \ + pkg-config zlib1g-dev libva-dev libvdpau-dev \ + qt6-tools-dev libvulkan-dev spirv-tools spirv-headers \ + libusb-1.0-0-dev libxbyak-dev libboost-dev \ + libboost-fiber-dev libboost-context-dev libsdl2-dev \ + libopus-dev vulkan-utility-libraries-dev + + - name: Configure CMake + run: | + cmake -S . -B build -G "Ninja" \ + -DCMAKE_BUILD_TYPE=Release \ + -DYUZU_TESTS=OFF \ + -DENABLE_QT_TRANSLATION=OFF + + - name: Build Eden + run: | + cmake --build build --parallel $(nproc) + + - name: Package Artifacts + run: | + mkdir -p artifacts + cp build/bin/eden artifacts/ || echo "eden not found" + cp build/bin/eden-cmd artifacts/ || echo "eden-cmd not found" + if [ -f artifacts/eden ]; then + chmod +x artifacts/eden + fi + if [ -f artifacts/eden-cmd ]; then + chmod +x artifacts/eden-cmd + fi + + # Create version info + echo "Eden Emulator - Linux Build" > artifacts/VERSION.txt + echo "Build Date: $(date)" >> artifacts/VERSION.txt + echo "Commit: $(git rev-parse --short HEAD)" >> artifacts/VERSION.txt + + - name: Create tarball + run: | + cd artifacts + tar -czf ../eden-linux-x64.tar.gz . + cd .. + + - name: Upload Linux Build + uses: actions/upload-artifact@v4 + with: + name: eden-linux-x64 + path: eden-linux-x64.tar.gz + retention-days: 30 + + build-windows-mingw: + name: Build Windows (MinGW Cross-Compile) + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install MinGW and dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + mingw-w64 g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 \ + cmake ninja-build git nasm autoconf libtool \ + pkg-config python3 wget unzip + + - name: Set up MinGW toolchain + run: | + cat > mingw-toolchain.cmake << EOF + set(CMAKE_SYSTEM_NAME Windows) + set(CMAKE_SYSTEM_PROCESSOR x86_64) + + set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) + set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) + set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) + + set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + + set(CMAKE_CROSSCOMPILING_EMULATOR wine64) + EOF + + - name: Configure CMake for Windows + run: | + cmake -S . -B build-windows \ + -DCMAKE_TOOLCHAIN_FILE=mingw-toolchain.cmake \ + -G "Ninja" \ + -DCMAKE_BUILD_TYPE=Release \ + -DYUZU_TESTS=OFF \ + -DENABLE_QT_TRANSLATION=OFF \ + -DENABLE_QT=OFF \ + -DYUZU_CMD=ON \ + -DENABLE_SDL2=ON \ + -DYUZU_USE_BUNDLED_SDL2=ON \ + -DYUZU_USE_BUNDLED_FFMPEG=ON \ + -DYUZU_USE_CPM=ON || echo "Configure failed, this is expected with limited MinGW support" + + - name: Build Eden for Windows + run: | + cmake --build build-windows --parallel $(nproc) || echo "Build may have issues with MinGW cross-compilation" + continue-on-error: true + + - name: Package Windows Artifacts + run: | + mkdir -p artifacts-windows + + if [ -f build-windows/bin/eden.exe ]; then + cp build-windows/bin/eden.exe artifacts-windows/ + echo "eden.exe found and copied" + fi + + if [ -f build-windows/bin/eden-cmd.exe ]; then + cp build-windows/bin/eden-cmd.exe artifacts-windows/ + echo "eden-cmd.exe found and copied" + fi + + # Copy any DLLs + find build-windows/bin -name "*.dll" -exec cp {} artifacts-windows/ \; 2>/dev/null || true + + # Create version info + echo "Eden Emulator - Windows Build (MinGW)" > artifacts-windows/VERSION.txt + echo "Build Date: $(date)" >> artifacts-windows/VERSION.txt + echo "Commit: $(git rev-parse --short HEAD)" >> artifacts-windows/VERSION.txt + echo "Note: Cross-compiled with MinGW on Linux" >> artifacts-windows/VERSION.txt + + # Check if we have any executables + if [ -f artifacts-windows/eden.exe ] || [ -f artifacts-windows/eden-cmd.exe ]; then + echo "Windows build successful" + cd artifacts-windows + zip -r ../eden-windows-x64-mingw.zip . + cd .. + else + echo "No Windows executables produced - MinGW cross-compilation may not be fully supported" + echo "This is expected - Eden emulator is complex and may require native Windows build" > artifacts-windows/BUILD_FAILED.txt + cd artifacts-windows + zip -r ../eden-windows-x64-mingw.zip . + cd .. + fi + continue-on-error: true + + - name: Upload Windows Build + if: always() + uses: actions/upload-artifact@v4 + with: + name: eden-windows-x64-mingw + path: eden-windows-x64-mingw.zip + retention-days: 30