1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-22 00:35:15 +00:00
freebsd-ports/Mk/bsd.qt.mk
Max Brazhnikov fb38a1f687 In preparation for Qt 5 ports:
bsd.qt.mk:
 - Deprecate QMAKEFLAGS, QMAKE_ARGS should be used instead
 - define LRELEASE/LUPDATE commands for general use
 Uses/qmake.mk:
 - USES=qmake now implies build dependency on qmake
 - Deprecate QMAKE_PRO (QMAKE_SOURCE_PATH should be used if required)
 - move QMAKE_ARGS definition to bsd.qt.mk
2013-11-21 14:15:53 +00:00

374 lines
11 KiB
Makefile

# $FreeBSD$
#
# Variables:
# QT_NONSTANDARD - Suppress modification of configure and make environment.
# QT_DIST - Package being built is part of the Qt distribution.
#
# Global switches (add this to /etc/make.conf):
# QT4_OPTIONS - A list of options, can be CUPS, NAS and/or QGTKSTYLE.
# If set, Qt will be built with support for:
# - Common UNIX Printing System (CUPS);
# - Network Audio System (NAS);
# - Qt style that renders using GTK (QGTKSTYLE).
.if !defined(_POSTMKINCLUDED) && !defined(Qt_Pre_Include)
Qt_Include_MAINTAINER= kde@FreeBSD.org
Qt_Pre_Include= bsd.qt.mk
.if !defined(QT_NONSTANDARD)
CONFIGURE_ARGS+=--with-qt-includes=${QT_INCDIR} \
--with-qt-libraries=${QT_LIBDIR} \
--with-extra-libs=${LOCALBASE}/lib \
--with-extra-includes=${LOCALBASE}/include
CONFIGURE_ENV+= MOC="${MOC}" UIC="${UIC}" LIBS="${QTCFGLIBS}" \
QMAKE="${QMAKE}" QMAKESPEC="${QMAKESPEC}" QTDIR="${QT_PREFIX}"
CPPFLAGS+= ${QTCPPFLAGS}
MAKE_ENV+= QMAKESPEC="${QMAKESPEC}"
.endif # !defined(QT_NONSTANDARD)
.if defined(QT_DIST)
DISTINFO_FILE= ${PORTSDIR}/devel/qt4/distinfo
MASTER_SITES= ${MASTER_SITE_QT}
MASTER_SITE_SUBDIR= official_releases/qt/${QT4_VERSION:R}/${QT4_VERSION}
DISTNAME= qt-everywhere-opensource-src-${QT4_VERSION}
DIST_SUBDIR= KDE
#CONFLICTS+= Currently there are no conflicts \o/
# Stage support
DESTDIRNAME= INSTALL_ROOT
# rene: can go after a while
CONFLICTS_BUILD= qt-3.* qt-copy-3.*
# Let configure handle its well known compilers defined in the mkspecs
# (i.e. `cc` and `c++` are not supported by configure tests).
CONFIGURE_ENV+= CC="" CXX=""
# Keep in sync with devel/qmake4/files/qconfig.cpp
CONFIGURE_ARGS+=-fast -platform ${QMAKESPEC} \
-system-libjpeg -system-libpng \
-system-libmng -system-libtiff -system-zlib \
-opensource -confirm-license \
-no-pch \
-prefix ${PREFIX} \
-bindir ${PREFIX}/bin \
-libdir ${PREFIX}/${QT_LIBDIR_REL} \
-docdir ${PREFIX}/share/doc/qt4 \
-headerdir ${PREFIX}/${QT_INCDIR_REL} \
-plugindir ${PREFIX}/${QT_PLUGINDIR_REL} \
-importdir ${PREFIX}/${QT_LIBDIR_REL}/imports \
-datadir ${PREFIX}/share/qt4 \
-translationdir ${PREFIX}/share/qt4/translations \
-sysconfdir ${PREFIX}/etc/xdg \
-examplesdir ${PREFIX}/share/examples/qt4/examples \
-demosdir ${PREFIX}/share/examples/qt4/demos \
-phonon -no-phonon-backend
PLIST_SUB+= SHLIB_VER=${QT4_VERSION:C/-.*//} \
SHLIB_SHVER=${QT4_VERSION:R}
# SIMD support is detected on runtime, no need to disable on build.
#.if defined(PACKAGE_BUILDING)
#CONFIGURE_ARGS+=-no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 \
# -no-ssse3 -no-sse4.1 -no-sse4.2
#.endif #defined(PACKAGE_BUILDING)
# .if defined(PORTNAME) && ${PORTNAME} != "xmlpatterns"
# CONFIGURE_ARGS+=-no-exceptions
# .endif
.if defined(WANT_QT_DEBUG) || defined(WITH_DEBUG)
CONFIGURE_ARGS+=-debug -separate-debug-info
PLIST_SUB+= DEBUG=""
.else
CONFIGURE_ARGS+=-release -no-separate-debug-info
PLIST_SUB+= DEBUG="@comment "
.endif
.if defined(WANT_QT_VERBOSE_CONFIGURE)
CONFIGURE_ARGS+=-verbose
.endif
.endif #defined(QT_DIST)
QT_INCDIR_REL= include/qt4
QT_LIBDIR_REL= lib/qt4
QT_PLUGINDIR_REL= lib/qt4/plugins
PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
QT_LIBDIR=${QT_LIBDIR_REL} \
QT_PLUGINDIR=${QT_PLUGINDIR_REL}
QT_PREFIX?= ${LOCALBASE}
QT_INCDIR?= ${QT_PREFIX}/${QT_INCDIR_REL}
QT_LIBDIR?= ${QT_PREFIX}/${QT_LIBDIR_REL}
QT_PLUGINDIR?= ${QT_PREFIX}/${QT_PLUGINDIR_REL}
LRELEASE?= ${QT_PREFIX}/bin/lrelease-qt4
LUPDATE?= ${QT_PREFIX}/bin/lupdate-qt4
MOC?= ${QT_PREFIX}/bin/moc-qt4
UIC?= ${QT_PREFIX}/bin/uic-qt4
RCC?= ${QT_PREFIX}/bin/rcc
QMAKE?= ${QT_PREFIX}/bin/qmake-qt4
# QMAKEFLAGS will be superseded by QMAKE_ARGS
QMAKEFLAGS+= QMAKE_CC="${CC}" QMAKE_CXX="${CXX}" \
QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}" \
QMAKE_LINK_C="${CC}" QMAKE_LINK_C_SHLIB="${CC}" \
QMAKE_CFLAGS="${CFLAGS}" QMAKE_CXXFLAGS="${CXXFLAGS}"
QMAKE_ENV?= ${CONFIGURE_ENV}
QMAKE_ARGS+= -spec ${QMAKESPEC} \
QMAKE_CC="${CC}" QMAKE_CXX="${CXX}" \
QMAKE_LINK="${CXX}" QMAKE_LINK_SHLIB="${CXX}" \
QMAKE_LINK_C="${CC}" QMAKE_LINK_C_SHLIB="${CC}" \
QMAKE_CFLAGS="${CFLAGS}" QMAKE_CXXFLAGS="${CXXFLAGS}" \
QMAKE_LFLAGS="${LDFLAGS}" PREFIX="${PREFIX}"
QTCPPFLAGS?=
QTCGFLIBS?=
.endif # !defined(_POSTMKINCLUDED) && !defined(Qt_Pre_Include)
#
# QT4 version
#
QT4_VERSION?= 4.8.5
_USE_QT4_ALL= accessible assistant assistant-adp assistantclient \
clucene codecs-cn codecs-jp codecs-kr codecs-tw corelib \
dbus declarative demo designer doc \
graphicssystems-opengl gui help help-tools \
iconengines imageformats inputmethods \
linguist l10n makeqpf moc multimedia network opengl \
pixeltool porting phonon phonon-gst \
qdbusviewer qmlviewer qdoc3 qmake qt3support qtconfig qtestlib \
qvfb rcc script scripttools sql sql-ibase sql-mysql \
sql-odbc sql-pgsql sql-sqlite2 sql-sqlite3 svg uic uic3 \
webkit xml xmlpatterns xmlpatterns-tool
accessible_PORT= accessibility/qt4-accessible
accessible_DEPENDS= ${QT_PLUGINDIR}/accessible/libqtaccessiblewidgets.so
assistant_PORT= devel/qt4-assistant
assistant_DEPENDS= ${QT_PREFIX}/bin/assistant-qt4
assistant-adp_PORT= devel/qt4-assistant-adp
assistant-adp_DEPENDS= ${QT_PREFIX}/bin/assistant_adp
assistantclient_PORT= devel/qt4-libqtassistantclient
assistantclient_DEPENDS= ${QT_LIBDIR}/libQtAssistantClient.so
clucene_PORT= textproc/qt4-clucene
clucene_DEPENDS= ${QT_LIBDIR}/libQtCLucene.so
codecs-cn_PORT= chinese/qt4-codecs-cn
codecs-cn_DEPENDS= ${QT_PLUGINDIR}/codecs/libqcncodecs.so
codecs-jp_PORT= japanese/qt4-codecs-jp
codecs-jp_DEPENDS= ${QT_PLUGINDIR}/codecs/libqjpcodecs.so
codecs-kr_PORT= korean/qt4-codecs-kr
codecs-kr_DEPENDS= ${QT_PLUGINDIR}/codecs/libqkrcodecs.so
codecs-tw_PORT= chinese/qt4-codecs-tw
codecs-tw_DEPENDS= ${QT_PLUGINDIR}/codecs/libqtwcodecs.so
corelib_PORT= devel/qt4-corelib
corelib_DEPENDS= ${QT_LIBDIR}/libQtCore.so
dbus_PORT= devel/dbus-qt4
dbus_DEPENDS= ${QT_LIBDIR}/libQtDBus.so
declarative_PORT= devel/qt4-declarative
declarative_DEPENDS= ${QT_LIBDIR}/libQtDeclarative.so
demo_PORT= misc/qt4-qtdemo
demo_DEPENDS= ${QT_PREFIX}/bin/qtdemo
designer_PORT= devel/qt4-designer
designer_DEPENDS= ${QT_PREFIX}/bin/designer-qt4
doc_PORT= misc/qt4-doc
doc_DEPENDS= qt4-doc>=4
graphicssystems-opengl_PORT= x11/qt4-graphicssystems-opengl
graphicssystems-opengl_DEPENDS= ${QT_PLUGINDIR}/graphicssystems/libqglgraphicssystem.so
gui_PORT= x11-toolkits/qt4-gui
gui_DEPENDS= ${QT_LIBDIR}/libQtGui.so
help_PORT= devel/qt4-help
help_DEPENDS= ${QT_LIBDIR}/libQtHelp.so
help-tools_PORT= devel/qt4-help-tools
help-tools_DEPENDS= ${QT_PREFIX}/bin/qhelpgenerator
iconengines_PORT= graphics/qt4-iconengines
iconengines_DEPENDS= ${QT_PLUGINDIR}/iconengines/libqsvgicon.so
imageformats_PORT= graphics/qt4-imageformats
imageformats_DEPENDS= ${QT_PLUGINDIR}/imageformats/libqjpeg.so
inputmethods_PORT= x11/qt4-inputmethods
inputmethods_DEPENDS= ${QT_PLUGINDIR}/inputmethods/libqimsw-multi.so
linguist_PORT= devel/qt4-linguist
linguist_DEPENDS= ${QT_PREFIX}/bin/linguist-qt4
l10n_PORT= misc/qt4-l10n
l10n_DEPENDS= qt4-l10n>=4
makeqpf_PORT= devel/qt4-makeqpf
makeqpf_DEPENDS= ${QT_PREFIX}/bin/makeqpf-qt4
moc_PORT= devel/qt4-moc
moc_DEPENDS= ${MOC}
multimedia_PORT= multimedia/qt4-multimedia
multimedia_DEPENDS= ${QT_LIBDIR}/libQtMultimedia.so
network_PORT= net/qt4-network
network_DEPENDS= ${QT_LIBDIR}/libQtNetwork.so
opengl_PORT= x11/qt4-opengl
opengl_DEPENDS= ${QT_LIBDIR}/libQtOpenGL.so
pixeltool_PORT= graphics/qt4-pixeltool
pixeltool_DEPENDS= ${QT_PREFIX}/bin/pixeltool
phonon_PORT= multimedia/phonon
phonon_DEPENDS= ${QT_LIBDIR}/libphonon.so
phonon-gst_PORT= multimedia/phonon-gstreamer
phonon-gst_DEPENDS= ${QT_PLUGINDIR}/phonon_backend/libphonon_gstreamer.so
porting_PORT= devel/qt4-porting
porting_DEPENDS= ${QT_PREFIX}/bin/qt3to4
qdbusviewer_PORT= devel/qt4-qdbusviewer
qdbusviewer_DEPENDS= ${QT_PREFIX}/bin/qdbusviewer
qmlviewer_PORT= devel/qt4-qmlviewer
qmlviewer_DEPENDS= ${QT_PREFIX}/bin/qmlviewer
qdoc3_PORT= devel/qt4-qdoc3
qdoc3_DEPENDS= ${QT_PREFIX}/bin/qdoc3
qmake_PORT= devel/qmake4
qmake_DEPENDS= ${QMAKE}
qt3support_PORT= devel/qt4-qt3support
qt3support_DEPENDS= ${QT_LIBDIR}/libQt3Support.so
qtconfig_PORT= misc/qt4-qtconfig
qtconfig_DEPENDS= ${QT_PREFIX}/bin/qtconfig-qt4
qtestlib_PORT= devel/qt4-qtestlib
qtestlib_DEPENDS= ${QT_LIBDIR}/libQtTest.so
qvfb_PORT= devel/qt4-qvfb
qvfb_DEPENDS= ${QT_PREFIX}/bin/qvfb-qt4
rcc_PORT= devel/qt4-rcc
rcc_DEPENDS= ${RCC}
script_PORT= devel/qt4-script
script_DEPENDS= ${QT_LIBDIR}/libQtScript.so
scripttools_PORT= devel/qt4-scripttools
scripttools_DEPENDS= ${QT_LIBDIR}/libQtScriptTools.so
sql_PORT= databases/qt4-sql
sql_DEPENDS= ${QT_LIBDIR}/libQtSql.so
sql-ibase_PORT= databases/qt4-ibase-plugin
sql-ibase_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlibase.so
sql-mysql_PORT= databases/qt4-mysql-plugin
sql-mysql_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlmysql.so
sql-odbc_PORT= databases/qt4-odbc-plugin
sql-odbc_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlodbc.so
sql-pgsql_PORT= databases/qt4-pgsql-plugin
sql-pgsql_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlpsql.so
sql-sqlite2_PORT= databases/qt4-sqlite-plugin
sql-sqlite2_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlite2.so
sql-sqlite3_PORT= databases/qt4-sqlite3-plugin
sql-sqlite3_DEPENDS= ${QT_PLUGINDIR}/sqldrivers/libqsqlite.so
svg_PORT= graphics/qt4-svg
svg_DEPENDS= ${QT_LIBDIR}/libQtSvg.so
uic_PORT= devel/qt4-uic
uic_DEPENDS= ${UIC}
uic3_PORT= devel/qt4-uic3
uic3_DEPENDS= ${QT_PREFIX}/bin/uic3
webkit_PORT= www/qt4-webkit
webkit_DEPENDS= ${QT_LIBDIR}/libQtWebKit.so
xml_PORT= textproc/qt4-xml
xml_DEPENDS= ${QT_LIBDIR}/libQtXml.so
xmlpatterns_PORT= textproc/qt4-xmlpatterns
xmlpatterns_DEPENDS= ${QT_LIBDIR}/libQtXmlPatterns.so
xmlpatterns-tool_PORT= textproc/qt4-xmlpatterns-tool
xmlpatterns-tool_DEPENDS= ${QT_PREFIX}/bin/xmlpatterns
.if defined(_POSTMKINCLUDED) && !defined(Qt_Post_Include)
Qt_Post_Include= bsd.qt.mk
#
# Translate `c++` to its real name and select the appropriate mkspec.
#
QMAKE_BASE_COMPILER!= (cc --version 2> /dev/null | ${AWK} 'NR == 1 { gsub(/[()]/, "", $$2); print $$2 }') || ${ECHO_CMD} "gcc"
.if ${QMAKE_BASE_COMPILER:L} == "gcc"
QMAKE_BASE_COMPILER= g++
.endif
.if ${CXX} == "c++"
# Why CXX instead of CXX:T? Because if you're setting the full path of
# `c++` you probably want to define QMAKESPEC by hand too.
QMAKE_COMPILER= ${QMAKE_BASE_COMPILER}
.elif ${CXX:T} == "clang++"
QMAKE_COMPILER= clang
.elif ${CXX:C/c\+\+/g++/:T} == "llvm-g++"
QMAKE_COMPILER= llvm
.elif ${CXX:T} == "icpc"
QMAKE_COMPILER= icc
.else
# Handle all the other cases (mainly g++*).
QMAKE_COMPILER= ${CXX:C/c\+\+/g++/:T}
.endif
.if exists(${QT_PREFIX}/share/qt4/mkspecs/freebsd-${QMAKE_COMPILER})
QMAKESPEC?= ${QT_PREFIX}/share/qt4/mkspecs/freebsd-${QMAKE_COMPILER}
.else
# If something went wrong, default to the base configuration.
QMAKESPEC?= ${QT_PREFIX}/share/qt4/mkspecs/freebsd-${QMAKE_BASE_COMPILER}
.endif
.for component in ${_USE_QT4_ALL}
${component}_BUILD_DEPENDS?= ${${component}_DEPENDS}:${PORTSDIR}/${${component}_PORT}
${component}_RUN_DEPENDS?= ${${component}_DEPENDS}:${PORTSDIR}/${${component}_PORT}
${component}_build_BUILD_DEPENDS?= ${${component}_BUILD_DEPENDS}
${component}_run_RUN_DEPENDS?= ${${component}_RUN_DEPENDS}
_USE_QT4_ALL_SUFFIXED+= ${component} ${component}_build ${component}_run
.endfor
.if defined(USE_QT4)
. for component in ${USE_QT4:O:u}
. if ${_USE_QT4_ALL_SUFFIXED:M${component}}!= ""
BUILD_DEPENDS+= ${${component}_BUILD_DEPENDS}
RUN_DEPENDS+= ${${component}_RUN_DEPENDS}
. else
IGNORE= can't be installed: unknown USE_QT4 component '${component}'
. endif
. endfor
.endif
.endif