mac build: take control of pip's caching mechanism
just like in e.g. appimage build
This commit is contained in:
@@ -20,8 +20,9 @@ CONTRIB="$CONTRIB_OSX/.."
|
|||||||
PROJECT_ROOT="$CONTRIB/.."
|
PROJECT_ROOT="$CONTRIB/.."
|
||||||
CACHEDIR="$CONTRIB_OSX/.cache"
|
CACHEDIR="$CONTRIB_OSX/.cache"
|
||||||
export DLL_TARGET_DIR="$CACHEDIR/dlls"
|
export DLL_TARGET_DIR="$CACHEDIR/dlls"
|
||||||
|
PIP_CACHE_DIR="$CACHEDIR/pip_cache"
|
||||||
|
|
||||||
mkdir -p "$CACHEDIR" "$DLL_TARGET_DIR"
|
mkdir -p "$CACHEDIR" "$DLL_TARGET_DIR" "$PIP_CACHE_DIR"
|
||||||
|
|
||||||
cd "$PROJECT_ROOT"
|
cd "$PROJECT_ROOT"
|
||||||
|
|
||||||
@@ -77,10 +78,10 @@ info "Installing build dependencies"
|
|||||||
# and I am not quite sure how to break the circular dependence there (I guess we could introduce
|
# and I am not quite sure how to break the circular dependence there (I guess we could introduce
|
||||||
# "requirements-build-base-base.txt" with just wheel in it...)
|
# "requirements-build-base-base.txt" with just wheel in it...)
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies --no-warn-script-location \
|
python3 -m pip install --no-build-isolation --no-dependencies --no-warn-script-location \
|
||||||
-Ir ./contrib/deterministic-build/requirements-build-base.txt \
|
--cache-dir "$PIP_CACHE_DIR" -Ir ./contrib/deterministic-build/requirements-build-base.txt \
|
||||||
|| fail "Could not install build dependencies (base)"
|
|| fail "Could not install build dependencies (base)"
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: --no-warn-script-location \
|
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: --no-warn-script-location \
|
||||||
-Ir ./contrib/deterministic-build/requirements-build-mac.txt \
|
--cache-dir "$PIP_CACHE_DIR" -Ir ./contrib/deterministic-build/requirements-build-mac.txt \
|
||||||
|| fail "Could not install build dependencies (mac)"
|
|| fail "Could not install build dependencies (mac)"
|
||||||
|
|
||||||
info "Installing some build-time deps for compilation..."
|
info "Installing some build-time deps for compilation..."
|
||||||
@@ -118,7 +119,8 @@ PYINSTALLER_COMMIT="306d4d92580fea7be7ff2c89ba112cdc6f73fac1"
|
|||||||
[[ -e "PyInstaller/bootloader/Darwin-64bit/runw" ]] || fail "Could not find runw in target dir!"
|
[[ -e "PyInstaller/bootloader/Darwin-64bit/runw" ]] || fail "Could not find runw in target dir!"
|
||||||
) || fail "PyInstaller build failed"
|
) || fail "PyInstaller build failed"
|
||||||
info "Installing PyInstaller."
|
info "Installing PyInstaller."
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies --no-warn-script-location "$CACHEDIR/pyinstaller"
|
python3 -m pip install --no-build-isolation --no-dependencies \
|
||||||
|
--cache-dir "$PIP_CACHE_DIR" --no-warn-script-location "$CACHEDIR/pyinstaller"
|
||||||
|
|
||||||
info "Using these versions for building $PACKAGE:"
|
info "Using these versions for building $PACKAGE:"
|
||||||
sw_vers
|
sw_vers
|
||||||
@@ -178,25 +180,25 @@ export ELECTRUM_ECC_DONT_COMPILE=1
|
|||||||
|
|
||||||
info "Installing requirements..."
|
info "Installing requirements..."
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: \
|
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: \
|
||||||
--no-warn-script-location \
|
--cache-dir "$PIP_CACHE_DIR" --no-warn-script-location \
|
||||||
-Ir ./contrib/deterministic-build/requirements.txt \
|
-Ir ./contrib/deterministic-build/requirements.txt \
|
||||||
|| fail "Could not install requirements"
|
|| fail "Could not install requirements"
|
||||||
|
|
||||||
info "Installing hardware wallet requirements..."
|
info "Installing hardware wallet requirements..."
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: --only-binary cryptography \
|
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: --only-binary cryptography \
|
||||||
--no-warn-script-location \
|
--cache-dir "$PIP_CACHE_DIR" --no-warn-script-location \
|
||||||
-Ir ./contrib/deterministic-build/requirements-hw.txt \
|
-Ir ./contrib/deterministic-build/requirements-hw.txt \
|
||||||
|| fail "Could not install hardware wallet requirements"
|
|| fail "Could not install hardware wallet requirements"
|
||||||
|
|
||||||
info "Installing dependencies specific to binaries..."
|
info "Installing dependencies specific to binaries..."
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: --only-binary PyQt6,PyQt6-Qt6,cryptography \
|
python3 -m pip install --no-build-isolation --no-dependencies --no-binary :all: --only-binary PyQt6,PyQt6-Qt6,cryptography \
|
||||||
--no-warn-script-location \
|
--cache-dir "$PIP_CACHE_DIR" --no-warn-script-location \
|
||||||
-Ir ./contrib/deterministic-build/requirements-binaries-mac.txt \
|
-Ir ./contrib/deterministic-build/requirements-binaries-mac.txt \
|
||||||
|| fail "Could not install dependencies specific to binaries"
|
|| fail "Could not install dependencies specific to binaries"
|
||||||
|
|
||||||
info "Building $PACKAGE..."
|
info "Building $PACKAGE..."
|
||||||
python3 -m pip install --no-build-isolation --no-dependencies \
|
python3 -m pip install --no-build-isolation --no-dependencies \
|
||||||
--no-warn-script-location . > /dev/null || fail "Could not build $PACKAGE"
|
--cache-dir "$PIP_CACHE_DIR" --no-warn-script-location . > /dev/null || fail "Could not build $PACKAGE"
|
||||||
# pyinstaller needs to be able to "import electrum_ecc", for which we need libsecp256k1:
|
# pyinstaller needs to be able to "import electrum_ecc", for which we need libsecp256k1:
|
||||||
# (or could try "pip install -e" instead)
|
# (or could try "pip install -e" instead)
|
||||||
cp "$DLL_TARGET_DIR"/libsecp256k1.*.dylib "$VENV_DIR/lib/python$PY_VER_MAJOR/site-packages/electrum_ecc/"
|
cp "$DLL_TARGET_DIR"/libsecp256k1.*.dylib "$VENV_DIR/lib/python$PY_VER_MAJOR/site-packages/electrum_ecc/"
|
||||||
|
|||||||
Reference in New Issue
Block a user