-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
74 lines (62 loc) · 2.46 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# C4D Installer
# Copyright (C) 2016 Niklas Rosenstein
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
default:
@echo "usage: make <target>"
@echo " "
@echo "Available Targets:"
@echo " "
@echo " - run run the installer for testing"
@echo " - installer generate an executable installer"
@echo " - clean"
@echo " - clean-qtui"
@echo " - clean-installer"
# =======================================
# CONFIG
# =======================================
ifeq ($(OS),Windows_NT)
PATHSEP :=;
PYTHON ?= python
PYTHON_BASEDIR = $(subst \,/,$(shell $(PYTHON) -c "import sys, os; print(os.path.dirname(sys.executable))"))
PYTHON := $(PYTHON_BASEDIR)/python
PYUIC5 ?= $(PYTHON_BASEDIR)/Scripts/pyuic5
PYINSTALLER ?= $(PYTHON_BASEDIR)/Scripts/pyinstaller
else
PYTHON ?= python3
PATHSEP :=:
endif
PYUIC5 ?= pyuic5
PYINSTALLER ?= pyinstaller
PYTHONPATH := $(PYTHONPATH)$(PATHSEP)libs
BUILD_DIR = build
QTUI_LIBS = $(patsubst ui/%.ui,c4dinstaller/ui/%.py,$(wildcard ui/*.ui))
c4dinstaller/ui/%.py: ui/%.ui
$(PYUIC5) $< -o $@
run-installer: $(QTUI_LIBS)
PYTHONPATH="$(PYTHONPATH)" $(PYTHON) "bootstrapper.py"
run-uninstaller: $(QTUI_LIBS)
PYTHONPATH="$(PYTHONPATH)" $(PYTHON) "uninstaller-hook.py"
installer: bootstrapper.py bootstrapper.spec bootstrapper.exe.manifest $(QTUI_LIBS)
PYTHONPATH="$(PYTHONPATH)" $(PYINSTALLER) bootstrapper.spec -y -m bootstrapper.exe.manifest --uac-admin --onefile \
--workpath "$(BUILD_DIR)/temp" --distpath "$(BUILD_DIR)/dist"
uninstaller: bootstrapper.py bootstrapper.spec bootstrapper.exe.manifest $(QTUI_LIBS)
PYTHONPATH="$(PYTHONPATH)" UNINSTALLER=true $(PYINSTALLER) bootstrapper.spec -y -m bootstrapper.exe.manifest --uac-admin --onefile \
--workpath "$(BUILD_DIR)/temp" --distpath "$(BUILD_DIR)/dist"
$(PYTHON) ".scripts/copy-uninstaller.py"
clean-qtui:
rm -f $(QTUI_LIBS)
clean-installer:
rm -rf $(BUILD_DIR)
clean: clean-installer clean-qtui