From 7b6bd127886ab5759ef5c649186910dda489082e Mon Sep 17 00:00:00 2001 From: Vincent Fortier Date: Thu, 18 Nov 2021 00:32:30 +0000 Subject: [PATCH] wheel.mk: Define system, cross vs default (native) pip --- mk/spksrc.common.mk | 15 +++++++++++---- mk/spksrc.wheel.mk | 8 ++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/mk/spksrc.common.mk b/mk/spksrc.common.mk index f0fe8455380e..afa07145952c 100644 --- a/mk/spksrc.common.mk +++ b/mk/spksrc.common.mk @@ -13,15 +13,22 @@ MSG = echo "===> " # Launch command in the working dir of the package source and the right environment RUN = cd $(WORK_DIR)/$(PKG_DIR) && env $(ENV) -# Pip command +# fallback by default to native/python* PIP ?= pip + +# Cross compiling must call "pip" directly to ensure using +# $(WORK_DIR)/crossenv pip version instead from adjusted $PATH +PIP_CROSS = $(shell . $(CROSSENV) && $(RUN) which pip) + +# System default pip outside from build environment +PIP_SYSTEM = $(shell which pip) + # Why ask for the same thing twice? Always cache downloads PIP_CACHE_OPT ?= --cache-dir $(PIP_DIR) --find-links $(BASE_DISTRIB_DIR) + +# Define default wheel & download pip options PIP_WHEEL_ARGS = wheel --no-binary :all: $(PIP_CACHE_OPT) --no-deps --wheel-dir $(WHEELHOUSE) -PIP_WHEEL = $(PIP) $(PIP_WHEEL_ARGS) -# Allow pre-downloading wheel sources PIP_DOWNLOAD_ARGS = download --no-binary :all: $(PIP_CACHE_OPT) --dest $(BASE_DISTRIB_DIR) --no-build-isolation -PIP_DOWNLOAD = $(PIP) $(PIP_DOWNLOAD_ARGS) # Available languages LANGUAGES = chs cht csy dan enu fre ger hun ita jpn krn nld nor plk ptb ptg rus spn sve trk diff --git a/mk/spksrc.wheel.mk b/mk/spksrc.wheel.mk index 783a3ef50fc7..a3d89e7c0af5 100644 --- a/mk/spksrc.wheel.mk +++ b/mk/spksrc.wheel.mk @@ -43,7 +43,7 @@ download_wheel: do \ if [ -f $$wheel ] ; then \ $(MSG) "Downloading wheels from $$wheel ..." ; \ - xargs -n 1 $(PIP_DOWNLOAD) 2>/dev/null < $$wheel || true ; \ + xargs -n 1 $(PIP_SYSTEM) $(PIP_DOWNLOAD_ARGS) 2>/dev/null < $$wheel || true ; \ fi ; \ done \ fi @@ -84,15 +84,15 @@ build_wheel_target: $(PRE_WHEEL_TARGET) if [ -f "$(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE)" ]; then \ $(MSG) "Force cross-compile" ; \ if [ -z "$(CROSSENV)" ]; then \ - $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" $(PIP_WHEEL) --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \ + $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" $(PIP) $(PIP_WHEEL_ARGS) --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \ else \ - . $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" pip $(PIP_WHEEL_ARGS) --no-build-isolation --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \ + . $(CROSSENV) && $(RUN) _PYTHON_HOST_PLATFORM="$(TC_TARGET)" CFLAGS="$(CFLAGS) -I$(STAGING_INSTALL_PREFIX)/$(PYTHON_INC_DIR) $(WHEELS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(WHEELS_LDFLAGS)" $(PIP_CROSS) $(PIP_WHEEL_ARGS) --no-build-isolation --requirement $(WHEELHOUSE)/$(WHEELS_CROSS_COMPILE) ; \ fi ; \ fi ; \ if [ -f "$(WHEELHOUSE)/$(WHEELS_PURE_PYTHON)" ]; then \ $(MSG) "Force pure-python" ; \ export LD= LDSHARED= CPP= NM= CC= AS= RANLIB= CXX= AR= STRIP= OBJDUMP= READELF= CFLAGS= CPPFLAGS= CXXFLAGS= LDFLAGS= && \ - $(RUN) $(PIP_WHEEL) --requirement $(WHEELHOUSE)/$(WHEELS_PURE_PYTHON) ; \ + $(RUN) $(PIP) $(PIP_WHEEL_ARGS) --requirement $(WHEELHOUSE)/$(WHEELS_PURE_PYTHON) ; \ fi ; \ fi