mirror of
https://github.com/naruxde/revpicommander.git
synced 2025-11-08 16:43:53 +01:00
The Qt5 commands for creating UI, resources and language files have now been switched from the shell scripts to the direct call of the Python modules. Signed-off-by: Sven Sager <akira@narux.de>
126 lines
3.1 KiB
Makefile
126 lines
3.1 KiB
Makefile
SHELL := bash
|
|
MAKEFLAGS = --no-print-directory --no-builtin-rules
|
|
.DEFAULT_GOAL = all
|
|
|
|
# Variables
|
|
PACKAGE = revpicommander
|
|
APP_NAME = RevPi\ Commander
|
|
APP_IDENT = org.revpimodio.revpicommander
|
|
APPLE_SIG = "Developer ID Application: Sven Sager (U3N5843D9K)"
|
|
|
|
# Set path to create the virtual environment with package name
|
|
ifdef PYTHON3_VENV
|
|
VENV_PATH = $(PYTHON3_VENV)/$(PACKAGE)
|
|
else
|
|
VENV_PATH = venv
|
|
endif
|
|
|
|
# If virtualenv exists, use it. If not, use PATH to find commands
|
|
SYSTEM_PYTHON = python3
|
|
PYTHON = $(or $(wildcard $(VENV_PATH)/bin/python), $(SYSTEM_PYTHON))
|
|
|
|
APP_VERSION = $(shell $(PYTHON) src/$(PACKAGE) --version)
|
|
|
|
all: build_ui build_rc build
|
|
|
|
.PHONY: all
|
|
|
|
## Environment
|
|
venv-info:
|
|
echo Using path: "$(VENV_PATH)"
|
|
exit 0
|
|
|
|
venv:
|
|
$(SYSTEM_PYTHON) -m venv --system-site-packages "$(VENV_PATH)"
|
|
source $(VENV_PATH)/bin/activate && \
|
|
python3 -m pip install --upgrade pip && \
|
|
python3 -m pip install -r requirements.txt
|
|
exit 0
|
|
|
|
.PHONY: venv-info venv
|
|
|
|
## Compile Qt UI files to python code
|
|
build_ui:
|
|
cd ui_dev && for ui_file in *.ui; do \
|
|
file_name=$${ui_file%.ui}; \
|
|
$(PYTHON) -m PyQt5.uic.pyuic $${ui_file} -o ../src/$(PACKAGE)/ui/$${file_name}_ui.py -x --from-imports; \
|
|
echo $${file_name}; \
|
|
done
|
|
|
|
build_rc:
|
|
cd ui_dev && for rc_file in *.qrc; do \
|
|
file_name=$${rc_file%.qrc}; \
|
|
$(PYTHON) -m PyQt5.pyrcc_main $${rc_file} -o ../src/$(PACKAGE)/ui/$${file_name}_rc.py; \
|
|
echo $${file_name}; \
|
|
done
|
|
|
|
update_translation:
|
|
$(PYTHON) -m PyQt5.pylupdate_main translate.pro
|
|
|
|
.PHONY: build_ui build_rc update_translation
|
|
|
|
## Build, install
|
|
build: build_ui build_rc
|
|
$(PYTHON) -m setup sdist
|
|
$(PYTHON) -m setup bdist_wheel
|
|
|
|
install: build
|
|
$(PYTHON) -m pip install dist/$(PACKAGE)-*.whl
|
|
|
|
.PHONY: build install
|
|
|
|
## PyInstaller
|
|
installer_mac: build_ui build_rc
|
|
$(PYTHON) -m PyInstaller -n $(APP_NAME) \
|
|
--add-data="src/$(PACKAGE)/locale:./$(PACKAGE)/locale" \
|
|
--add-data="data/$(PACKAGE).icns:." \
|
|
--icon=data/$(PACKAGE).icns \
|
|
--noconfirm \
|
|
--clean \
|
|
--onedir \
|
|
--windowed \
|
|
--osx-bundle-identifier $APP_IDENT \
|
|
--codesign-identity $(APPLE_SIG) \
|
|
src/$(PACKAGE)/__main__.py
|
|
|
|
installer_mac_dmg: installer_mac
|
|
mkdir dist/dmg
|
|
mv dist/$(APP_NAME).app dist/dmg
|
|
create-dmg \
|
|
--volname $(APP_NAME) \
|
|
--background data/dmg_background.png \
|
|
--window-pos 200 120 \
|
|
--window-size 480 300 \
|
|
--icon-size 64 \
|
|
--icon $(APP_NAME).app 64 64 \
|
|
--hide-extension $(APP_NAME).app \
|
|
--app-drop-link 288 64 \
|
|
--add-file LICENSE.txt LICENSE.txt 192 180 \
|
|
--codesign $(APPLE_SIG) \
|
|
--notarize AC_PASSWORD \
|
|
dist/$(APP_NAME)\ $(APP_VERSION).dmg \
|
|
dist/dmg
|
|
|
|
installer_linux: build_ui build_rc
|
|
$(PYTHON) -m PyInstaller -n $(APP_NAME) \
|
|
--add-data="src/$(PACKAGE)/locale:./$(PACKAGE)/locale" \
|
|
--add-data="data/$(PACKAGE).ico:." \
|
|
--add-data="data/$(PACKAGE).png:." \
|
|
--icon=data/$(PACKAGE).ico \
|
|
--noconfirm \
|
|
--clean \
|
|
--onedir \
|
|
--windowed \
|
|
src/$(PACKAGE)/__main__.py
|
|
|
|
.PHONY: installer_mac installer_mac_dmg installer_linux
|
|
|
|
## Clean
|
|
clean:
|
|
rm -rf build dist src/*.egg-info *.spec
|
|
|
|
clean-all: clean
|
|
rm -R $(VENV_PATH)
|
|
|
|
.PHONY: clean clean-all
|