diff --git a/build-dist-windows.sh b/build-dist-windows.sh index 4a9de8e..08a4671 100644 --- a/build-dist-windows.sh +++ b/build-dist-windows.sh @@ -69,20 +69,18 @@ VIS_DEPS=( ALL_DEPS=("${CORE_DEPS[@]}" "${WIN_DEPS[@]}" "${VIS_DEPS[@]}") -# Reuse wheels from a previous cached run — only download if cache is empty -if [ -d "$WHEEL_DIR" ] && [ -n "$(ls -A "$WHEEL_DIR" 2>/dev/null)" ]; then - echo "Using cached wheels from $WHEEL_DIR" -else - # Single pip-download call — pip resolves all deps together, much faster than a loop. - # --pre is required because winsdk only ships beta wheels (1.0.0bNN). - pip download --pre --quiet --dest "$WHEEL_DIR" \ +# Per-dep loop with --pre (winsdk only ships beta wheels, e.g. 1.0.0b10). +# Single-call resolution fails when one Windows-only dep can't resolve in +# the Linux fallback branch, so we resolve each dep independently. +for dep in "${ALL_DEPS[@]}"; do + pip download --pre --quiet --no-cache-dir --dest "$WHEEL_DIR" \ --platform win_amd64 --python-version "${PYTHON_SHORT}" \ --implementation cp --only-binary :all: \ - "${ALL_DEPS[@]}" 2>/dev/null || \ - pip download --pre --quiet --dest "$WHEEL_DIR" \ + "$dep" 2>/dev/null || \ + pip download --pre --quiet --no-cache-dir --dest "$WHEEL_DIR" \ --only-binary :all: \ - "${ALL_DEPS[@]}" -fi + "$dep" +done # Remove numpy 2.x wheels pulled as transitive deps (soundcard requires <2.0) for f in "$WHEEL_DIR"/numpy-2*; do