we testing build now
This commit is contained in:
180
.gitea/workflows/build.yml
Normal file
180
.gitea/workflows/build.yml
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user