1 |
# $MidnightBSD$ |
2 |
# |
3 |
# $FreeBSD: head/Mk/bsd.qt.mk 371720 2014-10-29 22:43:21Z rakuco $ |
4 |
# |
5 |
# Port variables: |
6 |
# USE_QT* - List of Qt modules to depend on, with optional '_build' |
7 |
# and '_run' suffixes. Define it empty to include this file |
8 |
# without depending on Qt ports. |
9 |
# QT_DIST - The port belongs to the Qt distribution. Set to 'yes' for |
10 |
# Qt 4, or to the distribution name(s) for newer versions. |
11 |
# QT_NONSTANDARD - Suppress modification of configure and make environment. |
12 |
# |
13 |
# Global switches (for inclusion into /etc/make.conf): |
14 |
# QT4_OPTIONS - A list of (Qt 4-only) global options; can be CUPS, NAS |
15 |
# and/or QGTKSTYLE. If set, Qt will be built with support |
16 |
# for: |
17 |
# * Common UNIX Printing System (CUPS); |
18 |
# * Network Audio System (NAS); |
19 |
# * GTK+-based Qt theme (QGTKSTYLE). |
20 |
|
21 |
.if !defined(_POSTMKINCLUDED) && !defined(Qt_Pre_Include) |
22 |
Qt_Include_MAINTAINER= ports@MidnightBSD.org |
23 |
Qt_Pre_Include= qt.mk |
24 |
|
25 |
# Qt versions currently supported by the framework. |
26 |
_QT_SUPPORTED?= 4 5 |
27 |
QT4_VERSION?= 4.8.7 |
28 |
QT5_VERSION?= 5.6.2 |
29 |
|
30 |
QT_PREFIX?= ${LOCALBASE} |
31 |
|
32 |
_QT_RELNAME= qt${_QT_VERSION:R:R} |
33 |
_QT_VERSION= # empty |
34 |
.for ver in ${_QT_SUPPORTED} |
35 |
. if defined(USE_QT${ver}) |
36 |
. if empty(_QT_VERSION) |
37 |
_QT_VERSION= ${QT${ver}_VERSION} |
38 |
. else |
39 |
# Reject different USE_QT*. |
40 |
IGNORE?= can't be installed: different Qt versions specified via USE_QT[${_QT_SUPPORTED:S/ //g}] #' |
41 |
. endif |
42 |
. endif |
43 |
.endfor |
44 |
|
45 |
.if empty(_QT_VERSION) |
46 |
# The file was included without USE_QT*. |
47 |
IGNORE?= can't be installed: bsd.qt.mk may only be included via USE_QT[${_QT_SUPPORTED:S/ //g}] #' |
48 |
.endif |
49 |
|
50 |
.if defined(QT_DIST) |
51 |
QT_NONSTANDARD= yes |
52 |
|
53 |
. if ! ${.MAKEFLAGS:MPREFIX=*} |
54 |
PREFIX= ${QT_PREFIX} |
55 |
. endif |
56 |
|
57 |
MASTER_SITES= ${MASTER_SITE_QT} |
58 |
# Useless, as it must be defined before including bsd.port.pre.mk (at least |
59 |
# because of bsd.options.mk). |
60 |
#PKGNAMEPREFIX?= ${_QT_RELNAME}- |
61 |
DISTINFO_FILE= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/distinfo |
62 |
|
63 |
# Can go after a while. |
64 |
CONFLICTS_BUILD=qt-3.* qt-copy-3.* |
65 |
|
66 |
LICENSE?= LGPL21 |
67 |
|
68 |
. if !exists(${PKGDIR}/pkg-descr) |
69 |
DESCR?= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/pkg-descr |
70 |
. endif |
71 |
|
72 |
# Stage support. |
73 |
DESTDIRNAME= INSTALL_ROOT |
74 |
|
75 |
. if ${_QT_VERSION:M4*} |
76 |
MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/ |
77 |
DISTNAME= qt-everywhere-opensource-src-${_QT_VERSION} |
78 |
DIST_SUBDIR= KDE |
79 |
. else |
80 |
MASTER_SITE_SUBDIR?= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules/ |
81 |
DISTNAME= ${QT_DIST:S,^,qt,:S,$,-opensource-src-${DISTVERSION},} |
82 |
DISTFILES= ${DISTNAME:S,$,${EXTRACT_SUFX},} |
83 |
DIST_SUBDIR= KDE/Qt/${_QT_VERSION} |
84 |
|
85 |
USES+= tar:xz |
86 |
|
87 |
# Qt (at least when used with qmake) has a tendency to overlink: some libraries |
88 |
# have dependencies on others in the mkspec configurations and the latter are |
89 |
# always passed to the linker even if they are not actually used. By passing |
90 |
# --as-needed to the linker by default when building the Qt ports we do not |
91 |
# have to declare a lot of unnecessary dependencies in USE_QT5. |
92 |
# This could arguably work for Qt4 too, but since it is maintenance mode it is |
93 |
# better not to fix what is not explicitly broken there. |
94 |
LDFLAGS+= -Wl,--as-needed |
95 |
|
96 |
. if ${.TARGETS:Mmakesum} || ${.TARGETS:Mfetch} && \ |
97 |
defined(DISABLE_SIZE) && defined(NO_CHECKSUM) |
98 |
# Ensure that the "makesum" target (with its inner "fetch" one) uses |
99 |
# devel/qt*/distinfo for every port. |
100 |
. if ${DISTINFO_FILE:H} == ${.CURDIR:H:H}/devel/${_QT_RELNAME} |
101 |
QT_DIST= 3d base canvas3d connectivity declarative graphicaleffects imageformats \ |
102 |
location multimedia quickcontrols quickcontrols2 script sensors serialbus serialport svg tools \ |
103 |
translations webchannel websockets x11extras xmlpatterns |
104 |
. endif |
105 |
. endif |
106 |
|
107 |
. if ${QT_DIST} == "base" && ${PORTNAME} != "qmake" |
108 |
# Qt configure requires pkg-config to detect dependencies. |
109 |
USES+= pkgconfig |
110 |
|
111 |
# Set QMAKESPEC when building qtbase so that qmake (called by the configure |
112 |
# script) can find the mkspecs we create ourselves in devel/qmake5. |
113 |
CONFIGURE_ENV+= QMAKESPEC="${QMAKESPEC}" |
114 |
MAKE_ENV+= QMAKESPEC="${QMAKESPEC}" |
115 |
. endif |
116 |
|
117 |
# -nomake is only used by qtbase's configure script. |
118 |
# Other ports from other Qt modules will automatically build examples and |
119 |
# tests if the directories exist because of mkspecs/features/qt_parts.prf. |
120 |
EXTRACT_AFTER_ARGS?= ${DISTNAME:S,$,/examples,:S,^,--exclude ,} \ |
121 |
${DISTNAME:S,$,/tests,:S,^,--exclude ,} |
122 |
. endif # ! ${_QT_VERSION:M4*} |
123 |
|
124 |
CONFIGURE_ENV+= MAKE="${MAKE:T}" |
125 |
|
126 |
CONFIGURE_ARGS+=-opensource -confirm-license \ |
127 |
-platform ${QMAKESPEC} \ |
128 |
-no-pch \ |
129 |
-prefix ${PREFIX} \ |
130 |
-bindir ${PREFIX}/${QT_BINDIR_REL} \ |
131 |
-headerdir ${PREFIX}/${QT_INCDIR_REL} \ |
132 |
-libdir ${PREFIX}/${QT_LIBDIR_REL} \ |
133 |
-plugindir ${PREFIX}/${QT_PLUGINDIR_REL} \ |
134 |
-importdir ${PREFIX}/${QT_IMPORTDIR_REL} \ |
135 |
-datadir ${PREFIX}/${QT_DATADIR_REL} \ |
136 |
-docdir ${PREFIX}/${QT_DOCDIR_REL} \ |
137 |
-translationdir ${PREFIX}/${QT_L10NDIR_REL} \ |
138 |
-sysconfdir ${PREFIX}/${QT_ETCDIR_REL} |
139 |
|
140 |
. if ${_QT_VERSION:M4*} |
141 |
CONFIGURE_ARGS+=-fast \ |
142 |
-system-libjpeg -system-libpng \ |
143 |
-system-libmng -system-libtiff -system-zlib \ |
144 |
-no-phonon-backend \ |
145 |
-examplesdir ${PREFIX}/${QT_EXAMPLEDIR_REL}/examples \ |
146 |
-demosdir ${PREFIX}/${QT_EXAMPLEDIR_REL}/demos |
147 |
. else |
148 |
CONFIGURE_ARGS+=-nomake examples -nomake tests \ |
149 |
-archdatadir ${PREFIX}/${QT_ARCHDIR_REL} \ |
150 |
-libexecdir ${PREFIX}/${QT_LIBEXECDIR_REL} \ |
151 |
-qmldir ${PREFIX}/${QT_QMLDIR_REL} \ |
152 |
-examplesdir ${PREFIX}/${QT_EXAMPLEDIR_REL} \ |
153 |
-testsdir ${PREFIX}/${QT_TESTDIR_REL} |
154 |
. if ${ARCH} == i386 && empty(MACHINE_CPU:Msse2) |
155 |
CONFIGURE_ARGS+=-no-sse2 |
156 |
. endif |
157 |
. endif |
158 |
|
159 |
. if defined(WANT_QT_DEBUG) || defined(WITH_DEBUG) |
160 |
WITH_DEBUG= yes |
161 |
STRIP= # It's done prior to bsd.qt.mk inclusion. |
162 |
CONFIGURE_ARGS+=-debug -separate-debug-info |
163 |
# Override configuration in global qconfig.pri. |
164 |
QMAKE_ARGS+= QT_CONFIG+="debug separate_debug_info" \ |
165 |
QT_CONFIG-="release" |
166 |
PLIST_SUB+= DEBUG="" |
167 |
. else |
168 |
CONFIGURE_ARGS+=-release -no-separate-debug-info |
169 |
QMAKE_ARGS+= QT_CONFIG+="release" \ |
170 |
QT_CONFIG-="debug separate_debug_info" |
171 |
PLIST_SUB+= DEBUG="@comment " |
172 |
. endif |
173 |
|
174 |
. if defined(WANT_QT_VERBOSE_CONFIGURE) |
175 |
CONFIGURE_ARGS+=-verbose |
176 |
. endif |
177 |
|
178 |
. if ${QT_DIST} == "base" || ${_QT_VERSION:M4*} |
179 |
. if ${_QT_VERSION:M4*} |
180 |
_EXTRA_PATCHES_QT4= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-src-corelib-global-qglobal.h |
181 |
. else |
182 |
_EXTRA_PATCHES_QT5= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-src_corelib_global_qcompilerdetection.h |
183 |
. endif |
184 |
EXTRA_PATCHES?= ${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-configure \ |
185 |
${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-config.tests-unix-compile.test \ |
186 |
${.CURDIR:H:H}/devel/${_QT_RELNAME}/files/extrapatch-libtool \ |
187 |
${_EXTRA_PATCHES_QT4} ${_EXTRA_PATCHES_QT5} |
188 |
. endif |
189 |
|
190 |
# Override settings installed in qconfig.h and *.pri files. The flags will be |
191 |
# installed along with the port, but have to be passed as arguments while |
192 |
# building the port itself. Flags prefixed with "-" (e.g., "-CUPS" and "-cups") |
193 |
# are needed to disable some features. |
194 |
. if !defined(${QT_MODNAME}) || empty(${QT_MODNAME}) |
195 |
# Used for both qconfig-*.h and qt_config_*.pri; it can't be empty. |
196 |
QT_MODNAME= ${PORTNAME} |
197 |
. endif |
198 |
QT_DEFINES?= # For qconfig.h flags (without "QT_" prefix). |
199 |
QT_CONFIG?= # For *.pri files QT_CONFIG flags. |
200 |
. if ${QT_DEFINES} |
201 |
QMAKE_ARGS+= DEFINES+="${QT_DEFINES:O:u:C/^([^-])/QT_\1/:C/^-/QT_NO_/:O}" |
202 |
. if ${QT_DEFINES:N-*} |
203 |
# Use a script to cleanup qconfig-modules.h (see qt-post-install). |
204 |
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall |
205 |
. endif |
206 |
. endif |
207 |
. if ${QT_CONFIG:N-*} |
208 |
QMAKE_ARGS+= QT_CONFIG+="${QT_CONFIG:N-*:O:u}" |
209 |
. endif |
210 |
. if ${QT_CONFIG:M-*} |
211 |
QMAKE_ARGS+= QT_CONFIG-="${QT_CONFIG:M-*:O:u:C/^-//}" |
212 |
. endif |
213 |
|
214 |
PLIST_SUB+= SHORTVER=${DISTVERSION:R} \ |
215 |
FULLVER=${DISTVERSION:C/-.*//} |
216 |
.endif # defined(QT_DIST) |
217 |
|
218 |
.if ${_QT_VERSION:M4*} |
219 |
QT_BINDIR_REL?= bin |
220 |
QT_LIBDIR_REL?= lib/${_QT_RELNAME} |
221 |
QT_PLUGINDIR_REL?= ${QT_LIBDIR_REL}/plugins |
222 |
QT_IMPORTDIR_REL?= ${QT_LIBDIR_REL}/imports |
223 |
.endif |
224 |
|
225 |
# A wrapper (qtchooser) is used to invoke binaries. |
226 |
QT_BINDIR_REL?= ${QT_ARCHDIR_REL}/bin |
227 |
QT_INCDIR_REL?= include/${_QT_RELNAME} |
228 |
QT_LIBDIR_REL?= lib |
229 |
QT_ARCHDIR_REL?=${QT_LIBDIR_REL}/${_QT_RELNAME} |
230 |
QT_PLUGINDIR_REL?= ${QT_ARCHDIR_REL}/plugins |
231 |
QT_LIBEXECDIR_REL?= libexec/${_QT_RELNAME} |
232 |
QT_IMPORTDIR_REL?= ${QT_ARCHDIR_REL}/imports |
233 |
QT_QMLDIR_REL?= ${QT_ARCHDIR_REL}/qml |
234 |
QT_DATADIR_REL?=share/${_QT_RELNAME} |
235 |
QT_DOCDIR_REL?= share/doc/${_QT_RELNAME} |
236 |
QT_L10NDIR_REL?=${QT_DATADIR_REL}/translations |
237 |
QT_ETCDIR_REL?= etc/xdg |
238 |
QT_EXAMPLEDIR_REL?= share/examples/${_QT_RELNAME} |
239 |
QT_TESTDIR_REL?=${QT_DATADIR_REL}/tests |
240 |
|
241 |
# Not customizable. |
242 |
.if ${_QT_VERSION:M4*} |
243 |
QT_MKSPECDIR_REL= ${QT_DATADIR_REL}/mkspecs |
244 |
|
245 |
_QT_LIBVER= # empty |
246 |
_QT_BINSUFX= -${_QT_RELNAME} |
247 |
.else |
248 |
QT_MKSPECDIR_REL= ${QT_ARCHDIR_REL}/mkspecs |
249 |
|
250 |
_QT_LIBVER= ${_QT_VERSION:R:R} |
251 |
_QT_BINSUFX= # empty |
252 |
.endif |
253 |
|
254 |
LRELEASE?= ${QT_BINDIR}/lrelease${_QT_BINSUFX} |
255 |
LUPDATE?= ${QT_BINDIR}/lupdate${_QT_BINSUFX} |
256 |
MOC?= ${QT_BINDIR}/moc${_QT_BINSUFX} |
257 |
RCC?= ${QT_BINDIR}/rcc |
258 |
UIC?= ${QT_BINDIR}/uic${_QT_BINSUFX} |
259 |
QMAKE?= ${QT_BINDIR}/qmake${_QT_BINSUFX} |
260 |
# Needed to redefine the qmake target for internal Qt configuration. |
261 |
_QMAKE?= ${QMAKE} |
262 |
QMAKESPEC?= ${QT_MKSPECDIR}/freebsd-${QMAKE_COMPILER} |
263 |
|
264 |
# The whole Qt distribution should be built with the same compiler, but it's |
265 |
# better to support custom settings. Dereferencing the detection allows to |
266 |
# avoid forking a shell on each inclusion of this file, and to catch any CXX |
267 |
# customization (via USE_GCC, etc.). |
268 |
QMAKE_COMPILER= $$(ccver="$$(${CXX} --version)"; case "$$ccver" in *clang*) echo clang ;; *) echo g++ ;; esac) |
269 |
|
270 |
# Import QMAKE_ENV and QMAKE_ARGS definitions. |
271 |
USES+= qmake:_env |
272 |
|
273 |
PLIST_SUB+= QT_PREFIX="${QT_PREFIX}" |
274 |
|
275 |
.for dir in BIN INC LIB ARCH PLUGIN LIBEXEC IMPORT \ |
276 |
QML DATA DOC L10N ETC EXAMPLE TEST MKSPEC |
277 |
QT_${dir}DIR= ${QT_PREFIX}/${QT_${dir}DIR_REL} |
278 |
PLIST_SUB+= QT_${dir}DIR="${QT_${dir}DIR_REL}" |
279 |
.endfor |
280 |
|
281 |
.endif # !defined(_POSTMKINCLUDED) && !defined(Qt_Pre_Include) |
282 |
|
283 |
.if defined(_POSTMKINCLUDED) && !defined(Qt_Post_Include) |
284 |
|
285 |
Qt_Post_Include= qt.mk |
286 |
|
287 |
.if !defined(QT_NONSTANDARD) |
288 |
CONFIGURE_ENV+= QTDIR="${QT_PREFIX}" QMAKE="${QMAKE}" \ |
289 |
MOC="${MOC}" RCC="${RCC}" UIC="${UIC}" \ |
290 |
QMAKESPEC="${QMAKESPEC}" |
291 |
CONFIGURE_ARGS+=--with-qt-includes=${QT_INCDIR} \ |
292 |
--with-qt-libraries=${QT_LIBDIR} \ |
293 |
--with-extra-includes=${LOCALBASE}/include \ |
294 |
--with-extra-libs=${LOCALBASE}/lib |
295 |
.endif # !defined(QT_NONSTANDARD) |
296 |
|
297 |
_USE_QT_ALL= assistant clucene dbus declarative designer doc gui help \ |
298 |
imageformats l10n linguist linguisttools multimedia \ |
299 |
network opengl pixeltool qdbusviewer qmake script \ |
300 |
scripttools sql sql-ibase sql-mysql sql-odbc sql-pgsql \ |
301 |
sql-sqlite2 sql-sqlite3 svg testlib webkit \ |
302 |
xml xmlpatterns |
303 |
|
304 |
_USE_QT4_ONLY= accessible assistant-adp assistantclient codecs-cn codecs-jp \ |
305 |
codecs-kr codecs-tw corelib demo graphicssystems-opengl \ |
306 |
help-tools iconengines inputmethods makeqpf moc phonon \ |
307 |
phonon-gst porting qdoc3 qmlviewer qt3support qtconfig \ |
308 |
qtestlib qvfb rcc uic uic3 xmlpatterns-tool |
309 |
|
310 |
_USE_QT5_ONLY= 3d buildtools canvas3d concurrent connectivity core \ |
311 |
examples graphicaleffects location paths phonon4 \ |
312 |
printsupport qdbus qdoc qdoc-data qev qml quick quickcontrols \ |
313 |
quickcontrols2 sensors serialbus serialport sql-tds \ |
314 |
uiplugin uitools webchannel websockets widgets x11extras |
315 |
|
316 |
3d_PORT= graphics/${_QT_RELNAME}-3d |
317 |
3d_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}3DCore.so |
318 |
|
319 |
accessible_PORT= accessibility/${_QT_RELNAME}-accessible |
320 |
accessible_PATH= ${QT_PLUGINDIR}/accessible/libqtaccessiblewidgets.so |
321 |
|
322 |
assistant_PORT= devel/${_QT_RELNAME}-assistant |
323 |
assistant_PATH= ${QT_BINDIR}/assistant${_QT_BINSUFX} |
324 |
|
325 |
assistant-adp_PORT= devel/${_QT_RELNAME}-assistant-adp |
326 |
assistant-adp_PATH= ${QT_BINDIR}/assistant_adp |
327 |
|
328 |
assistantclient_PORT= devel/${_QT_RELNAME}-libqtassistantclient |
329 |
assistantclient_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}AssistantClient.so |
330 |
|
331 |
buildtools_PORT= devel/${_QT_RELNAME}-buildtools |
332 |
buildtools_PATH= ${MOC} |
333 |
|
334 |
canvas3d_PORT= x11-toolkits/${_QT_RELNAME}-canvas3d |
335 |
canvas3d_PATH= ${QT_QMLDIR}/QtCanvas3D/qmldir |
336 |
|
337 |
clucene_PORT= textproc/clucene-${_QT_RELNAME} |
338 |
clucene_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}CLucene.so |
339 |
|
340 |
codecs-cn_PORT= chinese/${_QT_RELNAME}-codecs-cn |
341 |
codecs-cn_PATH= ${QT_PLUGINDIR}/codecs/libqcncodecs.so |
342 |
|
343 |
codecs-jp_PORT= japanese/${_QT_RELNAME}-codecs-jp |
344 |
codecs-jp_PATH= ${QT_PLUGINDIR}/codecs/libqjpcodecs.so |
345 |
|
346 |
codecs-kr_PORT= korean/${_QT_RELNAME}-codecs-kr |
347 |
codecs-kr_PATH= ${QT_PLUGINDIR}/codecs/libqkrcodecs.so |
348 |
|
349 |
codecs-tw_PORT= chinese/${_QT_RELNAME}-codecs-tw |
350 |
codecs-tw_PATH= ${QT_PLUGINDIR}/codecs/libqtwcodecs.so |
351 |
|
352 |
concurrent_PORT= devel/${_QT_RELNAME}-concurrent |
353 |
concurrent_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Concurrent.so |
354 |
|
355 |
connectivity_PORT= comms/${_QT_RELNAME}-connectivity |
356 |
connectivity_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Bluetooth.so |
357 |
|
358 |
core_PORT= devel/${_QT_RELNAME}-core |
359 |
core_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Core.so |
360 |
|
361 |
corelib_PORT= devel/${_QT_RELNAME}-corelib |
362 |
corelib_PATH= ${core_PATH} |
363 |
|
364 |
dbus_PORT= devel/dbus-${_QT_RELNAME} |
365 |
dbus_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}DBus.so |
366 |
|
367 |
declarative_PORT= x11-toolkits/${_QT_RELNAME}-declarative |
368 |
declarative_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Declarative.so |
369 |
|
370 |
demo_PORT= misc/${_QT_RELNAME}-qtdemo |
371 |
demo_PATH= ${QT_BINDIR}/qtdemo |
372 |
|
373 |
designer_PORT= devel/${_QT_RELNAME}-designer |
374 |
designer_PATH= ${QT_BINDIR}/designer${_QT_BINSUFX} |
375 |
|
376 |
doc_PORT= misc/${_QT_RELNAME}-doc |
377 |
doc_PATH= ${_QT_RELNAME}-doc>=${_QT_VERSION:R:R} |
378 |
|
379 |
examples_PORT= misc/${_QT_RELNAME}-examples |
380 |
examples_PATH= ${_QT_RELNAME}-examples>=${_QT_VERSION:R:R} |
381 |
|
382 |
graphicaleffects_PORT= graphics/${_QT_RELNAME}-graphicaleffects |
383 |
graphicaleffects_PATH= ${QT_QMLDIR}/QtGraphicalEffects/qmldir |
384 |
|
385 |
graphicssystems-opengl_PORT= x11/${_QT_RELNAME}-graphicssystems-opengl |
386 |
graphicssystems-opengl_PATH= ${QT_PLUGINDIR}/graphicssystems/libqglgraphicssystem.so |
387 |
|
388 |
gui_PORT= x11-toolkits/${_QT_RELNAME}-gui |
389 |
gui_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Gui.so |
390 |
|
391 |
help_PORT= devel/${_QT_RELNAME}-help |
392 |
help_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Help.so |
393 |
|
394 |
help-tools_PORT= devel/${_QT_RELNAME}-help-tools |
395 |
help-tools_PATH= ${QT_BINDIR}/qhelpgenerator |
396 |
|
397 |
iconengines_PORT= graphics/${_QT_RELNAME}-iconengines |
398 |
iconengines_PATH= ${QT_PLUGINDIR}/iconengines/libqsvgicon.so |
399 |
|
400 |
imageformats_PORT= graphics/${_QT_RELNAME}-imageformats |
401 |
imageformats_PATH= ${QT_PLUGINDIR}/imageformats/libqtiff.so |
402 |
|
403 |
inputmethods_PORT= x11/${_QT_RELNAME}-inputmethods |
404 |
inputmethods_PATH= ${QT_PLUGINDIR}/inputmethods/libqimsw-multi.so |
405 |
|
406 |
linguist_PORT= devel/${_QT_RELNAME}-linguist |
407 |
linguist_PATH= ${QT_BINDIR}/linguist${_QT_BINSUFX} |
408 |
|
409 |
linguisttools_PORT= devel/${_QT_RELNAME}-linguisttools |
410 |
linguisttools_PATH= ${LRELEASE} |
411 |
|
412 |
location_PORT= devel/${_QT_RELNAME}-location |
413 |
location_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Location.so |
414 |
|
415 |
l10n_PORT= misc/${_QT_RELNAME}-l10n |
416 |
l10n_PATH= ${_QT_RELNAME}-l10n>=${_QT_VERSION:R:R} |
417 |
|
418 |
makeqpf_PORT= devel/${_QT_RELNAME}-makeqpf |
419 |
makeqpf_PATH= ${QT_BINDIR}/makeqpf${_QT_BINSUFX} |
420 |
|
421 |
moc_PORT= devel/${_QT_RELNAME}-moc |
422 |
moc_PATH= ${MOC} |
423 |
|
424 |
multimedia_PORT= multimedia/${_QT_RELNAME}-multimedia |
425 |
multimedia_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Multimedia.so |
426 |
|
427 |
network_PORT= net/${_QT_RELNAME}-network |
428 |
network_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Network.so |
429 |
|
430 |
opengl_PORT= graphics/${_QT_RELNAME}-opengl |
431 |
opengl_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}OpenGL.so |
432 |
|
433 |
paths_PORT= sysutils/${_QT_RELNAME}-qtpaths |
434 |
paths_PATH= ${QT_BINDIR}/qtpaths |
435 |
|
436 |
pixeltool_PORT= graphics/${_QT_RELNAME}-pixeltool |
437 |
pixeltool_PATH= ${QT_BINDIR}/pixeltool |
438 |
|
439 |
phonon_PORT= multimedia/phonon |
440 |
phonon_PATH= ${QT_LIBDIR}/libphonon.so |
441 |
|
442 |
phonon4_PORT= multimedia/${_QT_RELNAME}-phonon4 |
443 |
phonon4_PATH= ${QT_LIBDIR}/libphonon4${_QT_RELNAME}.so |
444 |
|
445 |
phonon-gst_PORT= multimedia/phonon-gstreamer |
446 |
phonon-gst_PATH= ${QT_PLUGINDIR}/phonon_backend/libphonon_gstreamer.so |
447 |
|
448 |
porting_PORT= devel/${_QT_RELNAME}-porting |
449 |
porting_PATH= ${QT_BINDIR}/qt3to4 |
450 |
|
451 |
printsupport_PORT= print/${_QT_RELNAME}-printsupport |
452 |
printsupport_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}PrintSupport.so |
453 |
|
454 |
qdbus_PORT= devel/${_QT_RELNAME}-qdbus |
455 |
qdbus_PATH= ${QT_BINDIR}/qdbus |
456 |
|
457 |
qdbusviewer_PORT= devel/${_QT_RELNAME}-qdbusviewer |
458 |
qdbusviewer_PATH= ${QT_BINDIR}/qdbusviewer |
459 |
|
460 |
qdoc_PORT= devel/${_QT_RELNAME}-qdoc |
461 |
qdoc_PATH= ${QT_BINDIR}/qdoc |
462 |
|
463 |
qdoc-data_PORT= devel/${_QT_RELNAME}-qdoc-data |
464 |
qdoc-data_PATH= ${QT_DOCDIR}/global/config.qdocconf |
465 |
|
466 |
qdoc3_PORT= devel/${_QT_RELNAME}-qdoc3 |
467 |
qdoc3_PATH= ${QT_BINDIR}/qdoc3 |
468 |
|
469 |
qev_PORT= x11/${_QT_RELNAME}-qev |
470 |
qev_PATH= ${QT_BINDIR}/qev |
471 |
|
472 |
qmake_PORT= devel/qmake${_QT_VERSION:R:R} |
473 |
qmake_PATH= ${QMAKE} |
474 |
|
475 |
qml_PORT= lang/${_QT_RELNAME}-qml |
476 |
qml_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Qml.so |
477 |
|
478 |
qmlviewer_PORT= devel/${_QT_RELNAME}-qmlviewer |
479 |
qmlviewer_PATH= ${QT_BINDIR}/qmlviewer |
480 |
|
481 |
qt3support_PORT= devel/${_QT_RELNAME}-qt3support |
482 |
qt3support_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}3Support.so |
483 |
|
484 |
qtconfig_PORT= misc/${_QT_RELNAME}-qtconfig |
485 |
qtconfig_PATH= ${QT_BINDIR}/qtconfig${_QT_BINSUFX} |
486 |
|
487 |
qtestlib_PORT= ${testlib_PORT} |
488 |
qtestlib_PATH= ${testlib_PATH} |
489 |
|
490 |
quick_PORT= x11-toolkits/${_QT_RELNAME}-quick |
491 |
quick_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Quick.so |
492 |
|
493 |
quickcontrols_PORT= x11-toolkits/${_QT_RELNAME}-quickcontrols |
494 |
quickcontrols_PATH= ${QT_QMLDIR}/QtQuick/Controls/qmldir |
495 |
|
496 |
quickcontrols2_PORT= x11-toolkits/${_QT_RELNAME}-quickcontrols2 |
497 |
quickcontrols2_PATH= ${QT_QMLDIR}/Qt/labs/controls/qmldir |
498 |
|
499 |
qvfb_PORT= devel/${_QT_RELNAME}-qvfb |
500 |
qvfb_PATH= ${QT_BINDIR}/qvfb${_QT_BINSUFX} |
501 |
|
502 |
rcc_PORT= devel/${_QT_RELNAME}-rcc |
503 |
rcc_PATH= ${RCC} |
504 |
|
505 |
sensors_PORT= comms/${_QT_RELNAME}-sensors |
506 |
sensors_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Sensors.so |
507 |
|
508 |
script_PORT= devel/${_QT_RELNAME}-script |
509 |
script_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Script.so |
510 |
|
511 |
scripttools_PORT= devel/${_QT_RELNAME}-scripttools |
512 |
scripttools_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}ScriptTools.so |
513 |
|
514 |
serialbus_PORT= comms/${_QT_RELNAME}-serialbus |
515 |
serialbus_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}SerialBus.so |
516 |
|
517 |
serialport_PORT= comms/${_QT_RELNAME}-serialport |
518 |
serialport_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}SerialPort.so |
519 |
|
520 |
sql_PORT= databases/${_QT_RELNAME}-sql |
521 |
sql_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Sql.so |
522 |
|
523 |
sql-pgsql_PATH= ${QT_PLUGINDIR}/sqldrivers/libqsqlpsql.so |
524 |
|
525 |
.if ${_QT_VERSION:M4*} |
526 |
sql-sqlite2_PORT= databases/${_QT_RELNAME}-sqlite-plugin |
527 |
.endif |
528 |
|
529 |
sql-sqlite3_PATH= ${QT_PLUGINDIR}/sqldrivers/libqsqlite.so |
530 |
|
531 |
.for db in ibase mysql odbc pgsql sqlite2 sqlite3 tds |
532 |
.if ${_QT_VERSION:M4*} |
533 |
sql-${db}_PORT?= databases/${_QT_RELNAME}-${db}-plugin |
534 |
.else |
535 |
sql-${db}_PORT?= databases/${_QT_RELNAME}-sqldrivers-${db} |
536 |
.endif |
537 |
sql-${db}_PATH?= ${QT_PLUGINDIR}/sqldrivers/libqsql${db:C/^sql//}.so |
538 |
.endfor |
539 |
|
540 |
svg_PORT= graphics/${_QT_RELNAME}-svg |
541 |
svg_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Svg.so |
542 |
|
543 |
testlib_PORT= devel/${_QT_RELNAME}-testlib |
544 |
testlib_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Test.so |
545 |
|
546 |
uic_PORT= devel/${_QT_RELNAME}-uic |
547 |
uic_PATH= ${UIC} |
548 |
|
549 |
uic3_PORT= devel/${_QT_RELNAME}-uic3 |
550 |
uic3_PATH= ${QT_BINDIR}/uic3 |
551 |
|
552 |
uiplugin_PORT= x11-toolkits/${_QT_RELNAME}-uiplugin |
553 |
uiplugin_PATH= ${QT_INCDIR}/QtUiPlugin/QtUiPlugin |
554 |
|
555 |
uitools_PORT= devel/${_QT_RELNAME}-uitools |
556 |
uitools_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}UiTools.a |
557 |
|
558 |
webchannel_PORT= www/${_QT_RELNAME}-webchannel |
559 |
webchannel_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}WebChannel.so |
560 |
|
561 |
websockets_PORT= www/${_QT_RELNAME}-websockets |
562 |
websockets_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}WebSockets.so |
563 |
|
564 |
webkit_PORT= www/webkit-${_QT_RELNAME} |
565 |
webkit_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}WebKit.so |
566 |
|
567 |
widgets_PORT= x11-toolkits/${_QT_RELNAME}-widgets |
568 |
widgets_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Widgets.so |
569 |
|
570 |
x11extras_PORT= x11/${_QT_RELNAME}-x11extras |
571 |
x11extras_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}X11Extras.so |
572 |
|
573 |
xml_PORT= textproc/${_QT_RELNAME}-xml |
574 |
xml_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}Xml.so |
575 |
|
576 |
xmlpatterns_PORT= textproc/${_QT_RELNAME}-xmlpatterns |
577 |
xmlpatterns_PATH= ${QT_LIBDIR}/libQt${_QT_LIBVER}XmlPatterns.so |
578 |
|
579 |
xmlpatterns-tool_PORT= textproc/${_QT_RELNAME}-xmlpatterns-tool |
580 |
xmlpatterns-tool_PATH= ${QT_BINDIR}/xmlpatterns |
581 |
|
582 |
_USE_QT_ALL+= ${_USE_QT${_QT_VERSION:R:R}_ONLY} |
583 |
.for comp in ${_USE_QT_ALL} |
584 |
${comp}_BUILD_DEPENDS?= ${${comp}_PATH}:${${comp}_PORT} |
585 |
${comp}_RUN_DEPENDS?= ${${comp}_PATH}:${${comp}_PORT} |
586 |
${comp}_build_BUILD_DEPENDS?= ${${comp}_BUILD_DEPENDS} |
587 |
${comp}_run_RUN_DEPENDS?= ${${comp}_RUN_DEPENDS} |
588 |
_USE_QT_ALL_SUFFIXED+= ${comp} ${comp}_build ${comp}_run |
589 |
.endfor |
590 |
|
591 |
_USE_QT= ${USE_QT${_QT_VERSION:R:R}} |
592 |
.for comp in ${_USE_QT:O:u} |
593 |
. if ${_USE_QT_ALL_SUFFIXED:M${comp}} |
594 |
BUILD_DEPENDS+= ${${comp}_BUILD_DEPENDS} |
595 |
RUN_DEPENDS+= ${${comp}_RUN_DEPENDS} |
596 |
. else |
597 |
IGNORE?= can't be installed: unknown USE_QT${_QT_VERSION:R:R} component '${comp}' #' |
598 |
. endif |
599 |
.endfor |
600 |
|
601 |
.if defined(QT_DIST) && ! ${_QT_VERSION:M4*} |
602 |
. if ${QT_DIST} == "base" |
603 |
# qtbase requires some tools to be symlinked to the build directory. |
604 |
_QT_TOOLS= # empty |
605 |
. if ${PORTNAME} != "qmake" |
606 |
_QT_TOOLS+= ${QMAKE} |
607 |
. endif |
608 |
. if ${PORTNAME} != "buildtools" |
609 |
_QT_TOOLS+= ${MOC} ${RCC} |
610 |
. endif |
611 |
. if ${PORTNAME} != "qdoc" |
612 |
_QT_TOOLS+= qdoc |
613 |
. endif |
614 |
. if ${PORTNAME} != "dbus" |
615 |
_QT_TOOLS+= qdbuscpp2xml qdbusxml2cpp |
616 |
. endif |
617 |
. if ${PORTNAME} != "widgets" |
618 |
_QT_TOOLS+= ${UIC} |
619 |
. endif |
620 |
|
621 |
pre-configure: qtbase-pre-configure |
622 |
qtbase-pre-configure: |
623 |
. for tool in ${_QT_TOOLS} |
624 |
@${TEST} -e ${QT_BINDIR}/${tool:T} && \ |
625 |
${LN} -sf ${QT_BINDIR}/${tool:T} ${CONFIGURE_WRKSRC}/bin/${tool:T} || \ |
626 |
${TRUE} |
627 |
. endfor |
628 |
|
629 |
# Add ${LOCALBASE}/lib to DEFAULT_LIBDIRS, which we use to filter out |
630 |
# certain paths from pkg-config calls (see the explanation in |
631 |
# devel/qt5/files/patch-configure) as well as for setting |
632 |
# QMAKE_DEFAULT_LIBDIR in mkspecs/qconfig.pri. Part of the solution for |
633 |
# ports/194088. |
634 |
post-patch: qtbase-post-patch |
635 |
qtbase-post-patch: |
636 |
${REINPLACE_CMD} -e "/DEFAULT_LIBDIRS=/ s,\\\\\"\\\\n,\\\\n${LOCALBASE}/lib&," \ |
637 |
${WRKSRC}/configure |
638 |
|
639 |
. if ${PORTNAME} != "qmake" |
640 |
_QMAKE= ${CONFIGURE_WRKSRC}/bin/qmake |
641 |
|
642 |
post-configure: qmake-configure |
643 |
. endif |
644 |
. endif # ${QT_DIST} == "base" |
645 |
|
646 |
pre-configure: qt5-pre-configure |
647 |
qt5-pre-configure: |
648 |
# Qt 5.3.2 introduced a check in mkspecs/features/create_cmake.prf that |
649 |
# requires tests/auto/cmake to be present, otherwise the configure stage will |
650 |
# fail. |
651 |
# Since we cannot extract tests/auto/cmake/ and exclude tests/ at the same |
652 |
# time, we have to disable the check in a cache file (the only way to get this |
653 |
# value through to the configure script in qtbase). |
654 |
${MKDIR} ${CONFIGURE_WRKSRC} |
655 |
${ECHO_CMD} 'CMAKE_MODULE_TESTS = -' > ${CONFIGURE_WRKSRC}/.qmake.cache |
656 |
# We piggyback on QMAKE_LIBDIR_FLAGS to make sure -L${WRKSRC}/lib is passed to |
657 |
# the linker before -L/usr/local/lib. By default, the opposite happens, which |
658 |
# is a problem when a Qt port is being upgraded, since an existing library |
659 |
# would end up being picked up instead of those built in ${WRKSRC}/lib. Since |
660 |
# qmake appends the value of QMAKE_LIBDIR to QMAKE_LIBDIR_FLAGS, we can use the |
661 |
# latter to get the linker path order right. qmake is smart enough to strip |
662 |
# occurrences of ${WRKSRC}/lib from .pc and .prl files when installing them. |
663 |
# See QTBUG-40825 and ports bugs 194088, 195105 and 198720. |
664 |
${ECHO_CMD} 'QMAKE_LIBDIR_FLAGS = -L${CONFIGURE_WRKSRC}/lib' >> ${CONFIGURE_WRKSRC}/.qmake.cache |
665 |
|
666 |
pre-install: qt-pre-install |
667 |
qt-pre-install: |
668 |
# Search both in CONFIGURE_WRKSRC and WRKSRC, as the former is not |
669 |
# a subdirectory of the latter for out-of-source builds. |
670 |
${FIND} ${WRKSRC} ${CONFIGURE_WRKSRC} -name "Makefile*" -type f | \ |
671 |
${XARGS} ${REINPLACE_CMD} -e 's,${TRUE_PREFIX}/${QT_LIBDIR_REL}/pkgconfig,${TRUE_PREFIX}/libdata/pkgconfig,g' |
672 |
|
673 |
post-install: qt-post-install |
674 |
qt-post-install: |
675 |
. if ${QT_DEFINES:N-*} |
676 |
# We can't use SUB_FILES with a shared pkg-deinstall.in. |
677 |
# We need it to be a script instead of a group of @unexecs, otherwise |
678 |
# qconfig-modules.h cleanup will be run in pre-deinstall stage, which is |
679 |
# useless. This will probably be replaced by a Keywords/ script in the future. |
680 |
@${SED} -e 's,%%QT_MODNAME%%,${QT_MODNAME},g' \ |
681 |
-e 's,%%QT_INCDIR%%,${QT_INCDIR},g' \ |
682 |
${.CURDIR:H:H}/devel/${_QT_RELNAME}/${FILESDIR:T}/${PKGDEINSTALL:T}.in > \ |
683 |
${PKGDEINSTALL} |
684 |
@${MKDIR} ${FAKE_DESTDIR}${QT_INCDIR}/QtCore/modules |
685 |
@${ECHO_CMD} -n \ |
686 |
> ${FAKE_DESTDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h |
687 |
. for def in ${QT_DEFINES:N-*:O:u:C/=.*$//} |
688 |
@${ECHO_CMD} "#if !defined(QT_${def}) && !defined(QT_NO_${def})" \ |
689 |
>> ${FAKE_DESTDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h |
690 |
${ECHO_CMD} "# define QT_${def}" \ |
691 |
>> ${FAKE_DESTDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h |
692 |
@${ECHO_CMD} "#endif" \ |
693 |
>> ${FAKE_DESTDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h |
694 |
@${ECHO_CMD} \ |
695 |
>> ${FAKE_DESTDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h |
696 |
. endfor |
697 |
@${ECHO_CMD} "${QT_INCDIR_REL}/QtCore/modules/qconfig-${QT_MODNAME}.h" \ |
698 |
>> ${TMPPLIST} |
699 |
@${ECHO_CMD} "@exec echo '#include <QtCore/modules/qconfig-${QT_MODNAME}.h>' >> ${QT_PREFIX}/${QT_INCDIR_REL}/QtCore/qconfig-modules.h" \ |
700 |
>> ${TMPPLIST} |
701 |
. endif # ${QT_DEFINES:N-*} |
702 |
. if ${QT_CONFIG:N-*} |
703 |
@${MKDIR} ${FAKE_DESTDIR}${QT_MKSPECDIR}/modules |
704 |
${ECHO_CMD} "QT_CONFIG += ${QT_CONFIG:N-*:O:u}" \ |
705 |
> ${FAKE_DESTDIR}${QT_MKSPECDIR}/modules/qt_config_${QT_MODNAME}.pri |
706 |
@${ECHO_CMD} "${QT_MKSPECDIR_REL}/modules/qt_config_${QT_MODNAME}.pri" \ |
707 |
>> ${TMPPLIST} |
708 |
. endif # ${QT_CONFIG:N-*} |
709 |
.endif # defined(QT_DIST) && ! ${_QT_VERSION:M4*} |
710 |
|
711 |
.endif # defined(_POSTMKINCLUDED) && !defined(Qt_Post_Include) |