fix: build zlib + OpenSSL from source for MinGW FreeRDP cross-compile
Some checks failed
Build & Sign Wraith / Build Windows + Sign (push) Failing after 32s
Some checks failed
Build & Sign Wraith / Build Windows + Sign (push) Failing after 32s
This commit is contained in:
parent
e5cc40df37
commit
04bf9b42c3
@ -55,7 +55,7 @@ jobs:
|
||||
mingw-w64 mingw-w64-tools binutils-mingw-w64 \
|
||||
cmake ninja-build nasm meson \
|
||||
default-jre-headless \
|
||||
python3 curl
|
||||
python3 curl pkg-config
|
||||
|
||||
# Node.js
|
||||
if ! command -v node >/dev/null 2>&1; then
|
||||
@ -69,34 +69,71 @@ jobs:
|
||||
x86_64-w64-mingw32-gcc --version | head -1
|
||||
cmake --version | head -1
|
||||
|
||||
# ===============================================================
|
||||
# FreeRDP3 dependencies — cross-compile zlib + OpenSSL for MinGW
|
||||
# ===============================================================
|
||||
- name: Build FreeRDP3 dependencies (zlib + OpenSSL for MinGW)
|
||||
run: |
|
||||
INSTALL_PREFIX="/tmp/mingw-deps"
|
||||
mkdir -p "$INSTALL_PREFIX"
|
||||
export CROSS=x86_64-w64-mingw32
|
||||
|
||||
# --- zlib ---
|
||||
echo "=== Building zlib for MinGW ==="
|
||||
ZLIB_VERSION="1.3.1"
|
||||
curl -sSL -o /tmp/zlib.tar.gz "https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz"
|
||||
tar -xzf /tmp/zlib.tar.gz -C /tmp
|
||||
cd /tmp/zlib-${ZLIB_VERSION}
|
||||
CC=${CROSS}-gcc AR=${CROSS}-ar RANLIB=${CROSS}-ranlib \
|
||||
./configure --prefix="$INSTALL_PREFIX" --static
|
||||
make -j$(nproc)
|
||||
make install
|
||||
echo "zlib installed to $INSTALL_PREFIX"
|
||||
|
||||
# --- OpenSSL ---
|
||||
echo "=== Building OpenSSL for MinGW ==="
|
||||
OPENSSL_VERSION="3.4.1"
|
||||
curl -sSL -o /tmp/openssl.tar.gz "https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VERSION}/openssl-${OPENSSL_VERSION}.tar.gz"
|
||||
tar -xzf /tmp/openssl.tar.gz -C /tmp
|
||||
cd /tmp/openssl-${OPENSSL_VERSION}
|
||||
./Configure mingw64 no-shared no-tests \
|
||||
--cross-compile-prefix=${CROSS}- \
|
||||
--prefix="$INSTALL_PREFIX"
|
||||
make -j$(nproc)
|
||||
make install_sw
|
||||
echo "OpenSSL installed to $INSTALL_PREFIX"
|
||||
|
||||
# ===============================================================
|
||||
# FreeRDP3 — Cross-compile from source via MinGW
|
||||
# ===============================================================
|
||||
- name: Build FreeRDP3 for Windows (MinGW cross-compile)
|
||||
run: |
|
||||
FREERDP_VERSION="3.24.0"
|
||||
INSTALL_PREFIX="/tmp/mingw-deps"
|
||||
echo "=== Building FreeRDP ${FREERDP_VERSION} for Windows amd64 via MinGW ==="
|
||||
|
||||
# Download FreeRDP source
|
||||
curl -sSL -o /tmp/freerdp.tar.gz \
|
||||
"https://github.com/FreeRDP/FreeRDP/archive/refs/tags/${FREERDP_VERSION}.tar.gz"
|
||||
curl -sSL -o /tmp/freerdp.tar.gz "https://github.com/FreeRDP/FreeRDP/archive/refs/tags/${FREERDP_VERSION}.tar.gz"
|
||||
tar -xzf /tmp/freerdp.tar.gz -C /tmp
|
||||
cd /tmp/FreeRDP-${FREERDP_VERSION}
|
||||
|
||||
# Create MinGW toolchain file
|
||||
cat > /tmp/mingw-toolchain.cmake << 'TCEOF'
|
||||
# Create MinGW toolchain file pointing to our built deps
|
||||
cat > /tmp/mingw-toolchain.cmake << TCEOF
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR AMD64)
|
||||
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 /usr/x86_64-w64-mingw32;${INSTALL_PREFIX})
|
||||
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_PREFIX_PATH ${INSTALL_PREFIX})
|
||||
set(OPENSSL_ROOT_DIR ${INSTALL_PREFIX})
|
||||
set(ZLIB_ROOT ${INSTALL_PREFIX})
|
||||
TCEOF
|
||||
|
||||
# Configure — minimal client-only build (no server, no extras)
|
||||
# Configure — minimal client-only build
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_TOOLCHAIN_FILE=/tmp/mingw-toolchain.cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user