py-*.mk: Fill PYTHONPATH from build dependencies

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2017-07-22 18:16:08 +00:00
commit cdabaad7ef
3 changed files with 23 additions and 15 deletions

View file

@ -1,4 +1,4 @@
include $(MODDIR)/make/defs.mk ENV_PYTHONPATH := $(PYTHONPATH)
ifneq ($(DEVELOPMENT),true) ifneq ($(DEVELOPMENT),true)
PY_SITE_PACKAGES_PATH = $(shell python -c "import site; print site.getsitepackages()[0]") PY_SITE_PACKAGES_PATH = $(shell python -c "import site; print site.getsitepackages()[0]")
@ -6,30 +6,34 @@ else
PY_SITE_PACKAGES_PATH = $(PREFIX)/python/site-packages PY_SITE_PACKAGES_PATH = $(PREFIX)/python/site-packages
endif endif
PY_PROJ_MODULES_DIR ?= $(wildcard $(TOPDIR)/tools/python $(TOPDIR)/src/python) PY_PREREQ_BUILD ?= $(shell $(proj_query_cmd) pkg-requires --subsections jw -d ' ' -p --no-version build $(PROJECT))
PY_MODULES_DIR ?= $(PY_PROJ_MODULES_DIR) PY_PREREQ_BUILD_DIRS ?= $(shell $(proj_query_cmd) proj-dir $(PY_PREREQ_BUILD))
PY_PROJ_MODULES += $(dir $(wildcard $(PY_MODULES_DIR)/*/__init__.py)) PY_PROJ_MODULES_DIRS ?= $(wildcard $(foreach subdir,/tools/python /src/python,$(addsuffix $(subdir),$(PY_PREREQ_BUILD_DIRS))))
PY_MODULES ?= $(PY_PROJ_MODULES) PY_MODULES_DIRS ?= $(PY_PROJ_MODULES_DIRS)
PY_INSTALL_MOD ?= $(shell pwd | sed 's%.*/python/%%; s%/.*%%') PY_PROJ_MODULES += $(dir $(wildcard $(PY_MODULES_DIRS)/*/__init__.py))
PY_INSTALL_SUBMOD ?= $(shell pwd | sed "s%.*/$(PY_INSTALL_MOD)\(/\|$$\)%%") PY_MODULES ?= $(PY_PROJ_MODULES)
PY_MOD ?= $(patsubst /,.,$(PY_INSTALL_MOD).$(PY_INSTALL_SUBMOD)) PY_INSTALL_MOD ?= $(shell pwd | sed 's%.*/python/%%; s%/.*%%')
PY_SRC_PY = $(sort $(wildcard *.py) __init__.py) PY_INSTALL_SUBMOD ?= $(shell pwd | sed "s%.*/$(PY_INSTALL_MOD)\(/\|$$\)%%")
PY_PYC = $(patsubst %.py,%.pyc,$(PY_SRC_PY)) PY_MOD ?= $(patsubst /,.,$(PY_INSTALL_MOD).$(PY_INSTALL_SUBMOD))
PY_SRC_PY = $(sort $(wildcard *.py) __init__.py)
PY_PYC = $(patsubst %.py,%.pyc,$(PY_SRC_PY))
ifneq ($(PY_INSTALL_SUBMOD),) ifneq ($(PY_INSTALL_SUBMOD),)
PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD)/$(PY_INSTALL_SUBMOD) PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD)/$(PY_INSTALL_SUBMOD)
else else
PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD) PY_INSTALL_DIR = $(ENV_PREFIX)$(PY_SITE_PACKAGES_PATH)/$(PY_INSTALL_MOD)
endif endif
PY_INSTALLED_REG = $(addprefix $(PY_INSTALL_DIR)/,$(PY_SRC_PY) $(PY_PYC)) PY_INSTALLED_REG = $(addprefix $(PY_INSTALL_DIR)/,$(PY_SRC_PY) $(PY_PYC))
#PYTHONPATH := $(PYTHONPATH)$(foreach p,$(PY_MODULES),:$(p)) PYTHONPATH = $(ENV_PYTHONPATH)$(foreach d,$(PY_MODULES_DIRS),:$(d))
PYTHONPATH := $(PYTHONPATH):$(PY_MODULES_DIR)
export PYTHONPATH export PYTHONPATH
all: all:
echo-py: echo-py:
@echo PROJECT = $(PROJECT)
@echo PY_PROJ_MODULES_DIRS = $(PY_PROJ_MODULES_DIRS)
@echo PY_MODULES_DIRS = $(PY_MODULES_DIRS)
@echo PY_SITE_PACKAGES_PATH = $(PY_SITE_PACKAGES_PATH) @echo PY_SITE_PACKAGES_PATH = $(PY_SITE_PACKAGES_PATH)
@echo PY_MODULES = $(PY_MODULES) @echo PY_MODULES = $(PY_MODULES)
@echo PYTHONPATH = $(PYTHONPATH) @echo PYTHONPATH = $(PYTHONPATH)

View file

@ -1,3 +1,4 @@
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/py-defs.mk include $(MODDIR)/make/py-defs.mk
include $(MODDIR)/make/dirs.mk include $(MODDIR)/make/dirs.mk

View file

@ -1,4 +1,7 @@
include $(MODDIR)/make/defs.mk
include $(MODDIR)/make/py-defs.mk include $(MODDIR)/make/py-defs.mk
include $(MODDIR)/make/scripts-targets.mk
include $(MODDIR)/make/rules.mk
EXE ?= $(firstword $(wildcard main.py runme.py *.py)) EXE ?= $(firstword $(wildcard main.py runme.py *.py))
EXE_ARGS ?= EXE_ARGS ?=