-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcutecome-terminal.pro
159 lines (126 loc) · 6.26 KB
/
cutecome-terminal.pro
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
include("deploy/deploy-helper.pri")
QT += core gui serialport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
TARGET = cutecom
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
VERSION = 0.9.0
QMAKE_TARGET_DESCRIPTION = CuteCOM
QMAKE_TARGET_PRODUCT = CuteCOM
SOURCES += \
source/converter.cpp \
source/decorator.cpp \
source/framelesswindow.cpp \
source/logger.cpp \
source/main.cpp \
source/mainwidget.cpp \
source/serial.cpp \
source/serialgui.cpp \
source/table-delegate.cpp \
source/table.cpp \
source/terminal.cpp \
source/uiproxy.cpp
HEADERS += \
source/converter.h \
source/decorator.h \
source/framelesswindow.h \
source/logger.h \
source/mainwidget.h \
source/serial.h \
source/serialgui.h \
source/table-delegate.h \
source/table.h \
source/terminal.h \
source/uiproxy.h
FORMS += \
source/mainwidget.ui
TRANSLATIONS += \
resources/language/language_ru.ts \
resources/language/language_en.ts \
RESOURCES += \
resources/icons.qrc \
resources/languages.qrc
DISTFILES += \
deploy/config.xml \
deploy/package.xml \
deploy/installscript.qs
RC_ICONS = $$PWD/resources/icons/application.ico
#####################################################
# Выбираем директорию сборки исполняемого файла
# в зависимости от режима сборки проекта
#####################################################
CONFIG(debug, debug|release) {
DESTDIR = $$OUT_PWD/debug
} else {
DESTDIR = $$OUT_PWD/release
}
# разделяем по директориям все выходные файлы проекта
MOC_DIR = $$OUT_PWD/common/moc
RCC_DIR = $$OUT_PWD/common/rcc
UI_DIR = $$OUT_PWD/common/ui
unix:OBJECTS_DIR = $$OUT_PWD/common/obj/unix
win32:OBJECTS_DIR = $$OUT_PWD/common/obj/win32
macx:OBJECTS_DIR = $$OUT_PWD/common/obj/mac
QMAKE_CLEAN += $$shell_quote($$shell_path($$DESTDIR/*.exe))
QMAKE_CLEAN += $$shell_quote($$shell_path($$DESTDIR/*.dll))
#########################################################################
# Собираем все зависимости к в папку сборки
#########################################################################
isEmpty(TARGET_EXT) {
win32 {
TARGET_CUSTOM_EXT = .exe
}
macx {
TARGET_CUSTOM_EXT = .app
}
} else {
TARGET_CUSTOM_EXT = $${TARGET_EXT}
}
# в зависимости от режима сборки проекта
# запускаем win deploy приложения в целевой директории, то есть собираем все dll
CONFIG(release, debug|release) {
DEPLOY_TARGET = $$OUT_PWD/release/$$TARGET$$TARGET_CUSTOM_EXT
collectAllDllDepends($$DEPLOY_TARGET)
}
##########################################################################
# Далее настройки для сборки инсталяторов с помощью QInstallerFramework
#########################################################################
CONFIG(release, release|debug) { # Собираем инсталяторы только для релизной сборки
PACKAGE_FILE_XML = $$PWD/deploy/package.xml # Указываем путь к package.xml
INSTALL_SCRIPT_FILE = $$PWD/deploy/installscript.qs
PACKAGE_DATA = $$OUT_PWD/release # Задаём путь к собранному приложению со всеми зависимостями
####################################################################
# Далее создадим временную директорию для установочного пакета
# package/
# ........meta/ - сюда помещаем package.xml
# ........data/ - сюда данные все приложения
####################################################################
# Задаём пути пакета, которая должна содержать путь к папке с данными
# Копируем все необходимо с формируем установочный пакет
PACKAGE_DATA_PATH = $$OUT_PWD/packages/ru.iamsaywhat.cutecom/data
PACKAGE_META_PATH = $$OUT_PWD/packages/ru.iamsaywhat.cutecom/meta
copyDirToDestDir($$PACKAGE_DATA, $$PACKAGE_DATA_PATH)
copyFilesToDir($$PACKAGE_FILE_XML, $$PACKAGE_META_PATH)
copyFilesToDir($$INSTALL_SCRIPT_FILE, $$PACKAGE_META_PATH)
# Собираем инсталяторы
PACKAGES_PATH = $$OUT_PWD/packages # Путь к установочному пакету
CONFIG_FILE_PATH = $$PWD/deploy/config.xml # Путь к конфирурации
ONLINE_INSTALLER_PATH = $$OUT_PWD/installers/online-installer # Путь размещения онлайн инсталятора
OFFLINE_INSTALLER_PATH = $$OUT_PWD/installers/offline-installer # Путь размещения оффлайн инсталятора
mkpath($$ONLINE_INSTALLER_PATH/../) # Если пути не существуют - создаём их
mkpath($$OFFLINE_INSTALLER_PATH/../) #
createOnlineInstaller($$PACKAGES_PATH, $$CONFIG_FILE_PATH, $$ONLINE_INSTALLER_PATH)
createOfflineInstaller($$PACKAGES_PATH, $$CONFIG_FILE_PATH, $$OFFLINE_INSTALLER_PATH)
# Создаём установочный репозиторий для размещения где-либо
createRepo($$PACKAGES_PATH, ru.iamsaywhat.cutecom, $$OUT_PWD/repository)
# Удаляем временную папку установочного пакета
removeDirRecursive($$PACKAGES_PATH)
# Создаём дополнитеьную цель очистки при выполнении make clean
QMAKE_CLEAN += $$shell_quote($$shell_path($$ONLINE_INSTALLER_PATH/../*.exe))
QMAKE_CLEAN += $$shell_quote($$shell_path($$OFFLINE_INSTALLER_PATH/../*.exe))
}