forked from psi-im/psi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Readme-dev-cmake-ru.txt
169 lines (129 loc) · 10.7 KB
/
Readme-dev-cmake-ru.txt
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
158
159
160
161
162
163
164
165
166
167
168
169
Описание cmake файлов
(памятка для разработчиков)
./CMakeLists.txt - корневой файл (главный скрипт):
содержит список основных опций;
определяет тип программы Psi/Psi+
определяет Webkit/Webengine
определяет SQL
содержит основные определения (definitions)
обработка переменных SDK
определение версии программы
подключает ccache, mxe
содержит функцию copy
подключает каталоги iris, 3rdparty, src
в случае сборки только плагинов - подключает плагины
./3rdparty/CMakeLists.txt - собирает статическую библиотеку qhttp
./cmake/modules - каталог модулей для поиска библиотек:
./cmake/modulesCOPYING-CMAKE-SCRIPTS - файл лицензии (для решения проблем
с сопровождением)
./cmake/modules/FindLibGpgError.cmake - ищет libgpg-error
./cmake/modules/FindQJDns.cmake - ищет qjdns
./cmake/modules/FindEnchant.cmake - ищет enchant
./cmake/modules/FindLibOtr.cmake - ищет otr
./cmake/modules/FindQJSON.cmake - ищет qjson (устарело и отключено)
./cmake/modules/FindHunspell.cmake - ищет hunspell
./cmake/modules/FindLibTidy.cmake - ищет tidy или html-tidy
./cmake/modules/FindSparkle.cmake - ищет sparkle (не проверялось)
./cmake/modules/FindIDN.cmake - ищет idn
./cmake/modules/FindMINIZIP.cmake - ищет minizip
./cmake/modules/FindXCB.cmake - ищет xcb
./cmake/modules/FindLibGcrypt.cmake - ищет libgctypt или libgcrypt2
./cmake/modules/FindQca.cmake - ищет qca-qt5
./cmake/modules/FindZLIB.cmake - ищет zlib
/***
модули поиска изначально сделаны так, чтобы можно было указать где искать
для этого введены переменные ИМЯ_ROOT где можно указать путь поиска
перед подключением модуля
Для модуля поиска библиотеки QCA сделан хак, который позволяет искать
библиотеку командой find_package(Qca) независимо от версии Qt,
для этого достаточно перед подключением модуля указать переменную
Qca_SUFFIX (для Qt5 - Qca_SUFFIX=-qt5, для Qt4 - Qca_SUFFIX="" )
***/
./iris/CMakeLists.txt - собирает библиотеку iris:
содержит опции для iris (продублированы в главном скрипте)
подключает qjdns (если включена опция)
подключает каталоги src/irisnet и src/xmpp
/***
./iris - каталог содержит дополнительные файлы для сборки библиоетки
отдельно от проекта Psi. Функционал реализован частично.
Требуется доработка.
***/
./iris/cmake/modules - модули поиска библиотек для iris (копии модулей
из корня)
./iris/src/irisnet/CMakeLists.txt - собирает статическую библиотеку irisnet
./iris/src/xmpp/CMakeLists.txt - собирает статическую библиотеку iris
./src/CMakeLists.txt - собирает и устанавливает проект Psi/Psi+:
подключает каталог ../translations (если он существует) и собирает
файлы переводов
ищет библиотеки и подключает их к проекту
задает версию программы на основе данных главного скрипта
генерирует файл config.h на основе файла config.h.in
генерирует файл psi_win.rc на основе файла ../win32/psi_win.rc.in и
компилирует psi_win.o
подключает файл src.cmake
подключает файл irisprotocol/irisprotocol.cmake
подключает файл protocol/protocol.cmake
подключает файл plugins/plugins.cmake
подключает каталоги AutoUpdater, options, tabs, privacy, Certificates,
avcall, psimedia, contactmanager, tools, libpsi/dialogs, libpsi/tools,
widgets, sxe, whiteboarding
подменяет выходное имя программы на расширенное (если включено)
если имя расширено, генерирует .desktop файл при помощи модуля generate_desktopfile.cmake
создает правила для установки
если включена опция DEV_MODE для win32 генерирует правила установки
библиотек зависимостей в выходной каталог сборки при помощи модуля win32-prepare-deps.cmake
подключает каталог plugins, если включена опция и скопированы плагины
./src/generate_desktopfile.cmake - генерирует .desktop файл
./src/config.h.in - файл-шаблон для создания файла config.h
./src/src.cmake:
содержит определения (definitions) определяющие функционал программы по-умолчанию
содержит списки основных файлов исходников, необходимых для сборки:
список FORMS - содержит ui файлы
список HEADERS - содержит заголовки файлов для которых будут генерироваться .moc файлы
список SOURCES - содержит исходные файлы для которых будут генерироваться .moc файлы
список PLAIN_HEADERS - содержит заголовки файлов для которых не будут генерироваться .moc файлы
список PLAIN_SOURCES - содержит исходные файлы для которых не будут генерироваться .moc файлы
./src/win32-prepare-deps.cmake - генерирует список файлов для установки
командой make prepare-bin-libs, которая установит библиотеки зависимостей
в выходной каталог сборки. Если доступно использует windeployqt
./src/AutoUpdater/CMakeLists.txt - собирает статическую библиотеку AutoUpdater
./src/avcall/CMakeLists.txt - собирает статическую библиотеку avcall
./src/Certificates/CMakeLists.txt - собирает статическую библиотеку Certificates
./src/contactmanager/CMakeLists.txt - собирает статическую библиотеку contactmanager
./src/irisprotocol/irisprotocol.cmake - список файлов исходников которые подключаются в основные списки сборки
./src/libpsi/dialogs/CMakeLists.txt - собирает статическую библиотеку libpsi_dialogs
./src/libpsi/tools/CMakeLists.txt - собирает статическую библиотеку libpsi_tools:
подключает каталог zip
./src/libpsi/tools/zip/CMakeLists.txt - собирает статическую библиотеку zip
./src/options/CMakeLists.txt - собирает статическую библиотеку options
./src/privacy/CMakeLists.txt - собирает статическую библиотеку privacy
./src/protocol/protocol.cmake - список файлов исходников которые подключаются в основные списки сборки
./src/psimedia/CMakeLists.txt - собирает статическую библиотеку psimedia
./src/sxe/CMakeLists.txt - собирает статическую библиотеку sxe
./src/tabs/CMakeLists.txt - собирает статическую библиотеку tabs
./src/tools/CMakeLists.txt - собирает статическую библиотеку tools
./src/whiteboarding/CMakeLists.txt - собирает статическую библиотеку whiteboarding
./src/widgets/CMakeLists.txt - собирает статическую библиотеку widgets
./src/plugins/plugins.cmake - список файлов заголовков оторые подключаются в основные списки сборки
./src/plugins/variables.cmake - основные переменные для сборки плагинов, общие для всех плагинов
./src/plugins/CMakeLists.txt - основной скрипт управляющий плагинами
содержит основные правила сборки для всех плагинов
подключает каталоги generic, unix, dev
./src/plugins/generic/CMakeLists.txt:
подключает каталоги плагинов, если задана переменная BUILD_PLUGINS, то
подключает только заданные каталоги плагинов
./src/plugins/dev/CMakeLists.txt:
подключает каталоги плагинов, если задана переменная BUILD_PLUGINS, то
подключает только заданные каталоги плагинов
./src/plugins/unix/CMakeLists.txt:
подключает каталоги плагинов, если задана переменная BUILD_PLUGINS, то
подключает только заданные каталоги плагинов
./src/plugins/тип/плагин/CMakeLists.txt - собирает и устанавливает плагин
типа "тип" с именем "плагин". Структура у всех этих скриптов практически
не отличается
./win32/psi_win.rc.in - файл-шаблон для создания файла psi_win.rc
/***
Плагины могут быть собраны отдельно от основных исходников, но в этом
случае необходимо указать переменную PLUGINS_ROOT_DIR где указать
путь к каталогу src/plugins/include в основных исходниках
***/