Harden Windows cross-builds

This commit is contained in:
root
2026-05-01 23:08:37 +00:00
parent 746e787bf6
commit 7371eb703e
3 changed files with 22 additions and 11 deletions
+2 -1
View File
@@ -332,7 +332,7 @@ ensure_posix_mingw() {
build_windows_daemon() {
ensure_posix_mingw
run_step 45 "Building Windows daemon depends" make -C depends HOST="$HOST_WIN64" NO_QT=1 -j"$JOBS"
run_step 45 "Building Windows daemon depends" make -C depends HOST="$HOST_WIN64" NO_QT=1 -j1
if [[ ! -f configure || ! -f src/secp256k1/configure || ! -f src/secp256k1/Makefile.in ]]; then
run_step 60 "Generating configure script" ./autogen.sh
@@ -347,6 +347,7 @@ build_windows_daemon() {
--disable-zmq \
--with-miniupnpc=no
run_step 82 "Cleaning stale target objects" make clean
run_step 90 "Compiling Windows daemon and CLI tools" make -j"$JOBS"
}
+14 -10
View File
@@ -68,18 +68,15 @@ build_native_protoc() {
ensure_native_tools() {
mkdir -p "$NATIVE_BIN"
for tool in moc uic rcc; do
for tool in moc uic rcc lrelease; do
if [[ ! -x "$NATIVE_BIN/$tool" ]]; then
copy_first_match "$tool"
fi
done
for tool in lrelease lupdate; do
if [[ ! -x "$NATIVE_BIN/$tool" ]]; then
require_cmd "$tool"
cp "$(command -v "$tool")" "$NATIVE_BIN/$tool"
fi
done
if [[ ! -x "$NATIVE_BIN/lupdate" ]] && command -v lupdate >/dev/null 2>&1; then
cp "$(command -v lupdate)" "$NATIVE_BIN/lupdate"
fi
if [[ ! -x "$NATIVE_BIN/protoc" ]] || ! "$NATIVE_BIN/protoc" --version | grep -q "libprotoc $PROTOBUF_VERSION"; then
build_native_protoc
@@ -99,7 +96,10 @@ ensure_posix_mingw
echo "Building Win64 depends for $HOST..."
echo "Building native Qt6 host tools and metadata for $BUILD_HOST..."
make -C depends HOST="$BUILD_HOST" NO_QT=0 qt -j"$JOBS"
# Keep the top-level depends scheduler serial. Individual package build
# systems still use parallelism, but parallel package configure steps race on
# the shared depends prefix and can make Qt see missing zlib/OpenSSL paths.
make -C depends HOST="$BUILD_HOST" NO_QT=0 qt -j1
qt_host_cache=( "$ROOT/depends/built/$BUILD_HOST/qt"/qt-*.tar.gz )
if [[ ${#qt_host_cache[@]} -ne 1 || ! -f "${qt_host_cache[0]}" ]]; then
echo "Could not locate a single native Qt6 cache archive for $BUILD_HOST" >&2
@@ -107,7 +107,7 @@ if [[ ${#qt_host_cache[@]} -ne 1 || ! -f "${qt_host_cache[0]}" ]]; then
fi
mkdir -p "$ROOT/depends/$BUILD_HOST"
tar --no-same-owner -xf "${qt_host_cache[0]}" -C "$ROOT/depends/$BUILD_HOST"
make -C depends HOST="$HOST" NO_QT=0 -j"$JOBS"
make -C depends HOST="$HOST" NO_QT=0 -j1
require_path "$PREFIX/share/config.site"
ensure_native_tools
@@ -130,7 +130,11 @@ CONFIG_SITE="$PREFIX/share/config.site" ./configure \
--with-qt-libdir="$PREFIX/lib" \
--with-qt-plugindir="$PREFIX/plugins" \
--with-qt-translationdir="$PREFIX/translations" \
--with-qt-bindir="$NATIVE_BIN"
--with-qt-bindir="$NATIVE_BIN" \
--with-protoc-bindir="$NATIVE_BIN"
echo "Cleaning stale target objects before compiling..."
make clean
echo "Building Win64 Qt6 wallet with JOBS=$JOBS..."
make -j"$JOBS"
+6
View File
@@ -104,6 +104,11 @@ define $(package)_build_cmds
cmake --build . --parallel
endef
ifeq ($(host_os),mingw32)
define $(package)_stage_cmds
DESTDIR=$($(package)_staging_dir) cmake --install .
endef
else
define $(package)_stage_cmds
DESTDIR=$($(package)_staging_dir) cmake --install . && \
mkdir -p ../qttools-build && \
@@ -119,6 +124,7 @@ define $(package)_stage_cmds
mkdir -p $($(package)_staging_prefix_dir)/libexec && \
cp ../qttools-build/bin/lrelease $($(package)_staging_prefix_dir)/libexec/lrelease
endef
endif
define $(package)_postprocess_cmds
rm -rf share/doc share/examples share/qt6/sbom && \