diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 0349f16..093e2a3 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -33,19 +33,18 @@ jobs: - name: Patch Source run: | - # Remove 'final' keyword to fix C++20/Boost 1.90 perl -pi -e 's/struct\s+rest_server::handler_loop\s+final/struct rest_server::handler_loop/g' src/rest_server.cpp - # Nuke ICU checks to prevent "Not Found" errors perl -pi -e 's/find_library\(ICU/# find_library(ICU/g' external/monero/CMakeLists.txt - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-x86_64-linux-gnu.tar.gz" + # FIX: Create directory before extracting + mkdir -p /opt/wownero-sdk tar -xf sdk.tar.gz -C /opt/wownero-sdk - name: Fix Libraries run: | - # Alias hidapi if needed if [ -f /opt/wownero-sdk/lib/libhidapi-libusb.a ] && [ ! -f /opt/wownero-sdk/lib/libhidapi.a ]; then cp /opt/wownero-sdk/lib/libhidapi-libusb.a /opt/wownero-sdk/lib/libhidapi.a fi @@ -61,8 +60,6 @@ jobs: mkdir build && cd build SDK_DIR="/opt/wownero-sdk" - # Native build: Just point to SDK, disable readline, let it find system libs (RT/Pthread) - # We explicitly set libs to be safe cmake .. -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ -DCMAKE_PREFIX_PATH="$SDK_DIR" \ @@ -139,6 +136,8 @@ jobs: - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-${{ matrix.target }}.tar.gz" + # FIX: Create directory + mkdir -p /opt/wownero-sdk tar -xf sdk.tar.gz -C /opt/wownero-sdk - name: Fix Libraries @@ -155,8 +154,6 @@ jobs: - name: Generate Toolchain run: | - # STRICT TOOLCHAIN for Cross-Compile - # Setting CMAKE_SYSROOT is key to finding librt/libpthread in the right place cat < cross.cmake set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR ${{ matrix.proc }}) @@ -164,7 +161,7 @@ jobs: set(CMAKE_CXX_COMPILER ${{ matrix.target }}-g++) set(CMAKE_SYSROOT ${{ matrix.sysroot }}) - # Allow looking in both SDK and Sysroot. NEVER Host. + # Look in SDK AND Sysroot. NEVER Host. set(CMAKE_FIND_ROOT_PATH /opt/wownero-sdk ${{ matrix.sysroot }}) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) @@ -177,7 +174,6 @@ jobs: mkdir build && cd build SDK_DIR="/opt/wownero-sdk" - # We use -L to force finding the ZLIB in our SDK, overriding any sysroot confusion cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ @@ -247,6 +243,8 @@ jobs: - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-x86_64-w64-mingw32.tar.gz" + # FIX: Create directory + mkdir -p /opt/wownero-sdk tar -xf sdk.tar.gz -C /opt/wownero-sdk - name: Fix Libraries & Dummy RT @@ -274,7 +272,6 @@ jobs: set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) - # Only look in SDK. Windows has no sysroot on Linux. set(CMAKE_FIND_ROOT_PATH /opt/wownero-sdk) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) @@ -289,8 +286,6 @@ jobs: mkdir build && cd build SDK_DIR="/opt/wownero-sdk" - # Windows Needs: -static, -Wl,--allow-multiple-definition - # Pass explicit path to our dummy librt.a cmake .. -DCMAKE_TOOLCHAIN_FILE=../cross.cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ @@ -371,6 +366,8 @@ jobs: - name: Download SDK run: | curl -L -k -o sdk.tar.gz "https://git.such.software/Builds/wownero/releases/download/${{ env.CORE_TAG }}/wownero-core-${{ matrix.target }}.tar.gz" + if [ $(stat -f%z sdk.tar.gz) -lt 1000000 ]; then exit 1; fi + mkdir -p wownero-sdk tar -xf sdk.tar.gz -C wownero-sdk - name: Build @@ -378,7 +375,6 @@ jobs: mkdir build && cd build SDK_DIR="$(pwd)/../wownero-sdk" - # Native macOS build: Point to SDK, disable readline. cmake .. -DCMAKE_BUILD_TYPE=Release \ -DBUILD_STATIC=ON \ -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} \