246 lines
6.8 KiB
Makefile
246 lines
6.8 KiB
Makefile
# $OpenBSD: Makefile,v 1.21 2018/08/27 11:06:29 tb Exp $
|
|
|
|
DISTNAME = qtbase-opensource-src-${DIST_VERSION}
|
|
QT5NAME = Qt5 core
|
|
BROKEN-sparc64 = fails to pass stltest during configure with ports-clang
|
|
|
|
COMMENT-main = C++ general-purpose toolkit
|
|
COMMENT-global = global Qt5 documentation internals
|
|
COMMENT-mysql = MySQL plugin for Qt5
|
|
COMMENT-psql = PostgresSQL plugin for Qt5
|
|
COMMENT-sqlite2 = SQLite 2.x plugin for Qt5
|
|
COMMENT-tds = TDS plugin for Qt5
|
|
|
|
PKGNAME-mysql = qt5-mysql-${VERSION}
|
|
PKGNAME-global = qt5-global-${VERSION}
|
|
PKGNAME-psql = qt5-postgresql-${VERSION}
|
|
PKGNAME-sqlite2 = qt5-sqlite2-${VERSION}
|
|
PKGNAME-tds = qt5-tds-${VERSION}
|
|
|
|
REVISION-main = 1
|
|
|
|
PKG_ARCH-global = *
|
|
PKG_ARCH-examples = *
|
|
|
|
DPB_PROPERTIES = parallel
|
|
|
|
SHARED_LIBS += Qt5Concurrent 2.2
|
|
SHARED_LIBS += Qt5Core 2.2
|
|
SHARED_LIBS += Qt5DBus 2.2
|
|
SHARED_LIBS += Qt5Gui 2.2
|
|
SHARED_LIBS += Qt5Network 2.2
|
|
SHARED_LIBS += Qt5OpenGL 2.2
|
|
SHARED_LIBS += Qt5PrintSupport 2.2
|
|
SHARED_LIBS += Qt5Sql 2.2
|
|
SHARED_LIBS += Qt5Test 2.2
|
|
SHARED_LIBS += Qt5Widgets 2.2
|
|
SHARED_LIBS += Qt5Xml 2.2
|
|
SHARED_LIBS += Qt5EglFSDeviceIntegration 0.1
|
|
SHARED_LIBS += Qt5XcbQpa 1.2
|
|
SHARED_LIBS += Qt5EglFsKmsSupport 0.1
|
|
|
|
WANTLIB-main += ${COMPILER_LIBCXX} EGL GL ICE SM X11 X11-xcb Xext Xi
|
|
WANTLIB-main += atk-1.0 c cairo cairo-gobject cups dbus-1 drm execinfo
|
|
WANTLIB-main += fontconfig freetype gbm gdk-3 gdk_pixbuf-2.0 gio-2.0
|
|
WANTLIB-main += glib-2.0 gobject-2.0 gthread-2.0 gtk-3 harfbuzz icudata
|
|
WANTLIB-main += icui18n icuuc iodbc jpeg m pango-1.0 pangocairo-1.0
|
|
WANTLIB-main += pcre2-16 png sqlite3 xcb xcb-glx xcb-icccm xcb-image
|
|
WANTLIB-main += xcb-keysyms xcb-randr xcb-render xcb-render-util xcb-shape
|
|
WANTLIB-main += xcb-shm xcb-sync xcb-xfixes xcb-xinerama xcb-xkb xkbcommon
|
|
WANTLIB-main += xkbcommon-x11 z
|
|
|
|
# SSL libs are dlopen()d
|
|
WANTLIB-main += ssl crypto
|
|
|
|
WANTLIB-global =
|
|
|
|
WANTLIB-mysql = ${COMPILER_LIBCXX} Qt5Core Qt5Sql
|
|
WANTLIB-mysql += m pthread mysqlclient_r
|
|
|
|
WANTLIB-psql = ${COMPILER_LIBCXX} Qt5Core Qt5Sql
|
|
WANTLIB-psql += m pthread pq
|
|
|
|
WANTLIB-sqlite2 = ${COMPILER_LIBCXX} Qt5Core Qt5Sql
|
|
WANTLIB-sqlite2 += m pthread sqlite
|
|
|
|
WANTLIB-tds = ${COMPILER_LIBCXX} Qt5Core Qt5Sql
|
|
WANTLIB-tds += m pthread sybdb
|
|
|
|
# there is no -sqlite3 because it's heavily used by Qt itself (.qch files)
|
|
MULTI_PACKAGES = -main -examples -global -mysql -psql -sqlite2 -tds
|
|
|
|
# qmake module is used only for running tests and setting vars
|
|
MODQT_DEPS = No
|
|
MODQMAKE_PROJECTS = tests/tests.pro
|
|
|
|
# no leveldb dependency, requires -lmemenv; QtWebKit uses internal version
|
|
LIB_DEPENDS-main = ${LIB_DEPENDS} \
|
|
databases/iodbc \
|
|
databases/sqlite3 \
|
|
devel/atk \
|
|
devel/harfbuzz \
|
|
devel/libexecinfo \
|
|
devel/pango \
|
|
devel/pcre2 \
|
|
graphics/cairo \
|
|
graphics/gdk-pixbuf2 \
|
|
print/cups,-libs \
|
|
textproc/icu4c \
|
|
x11/gtk+3 \
|
|
x11/xkbcommon
|
|
|
|
# those come from gthread-2.0, not used by Qt itself
|
|
WANTLIB-main += intl
|
|
LIB_DEPENDS-main += devel/gettext
|
|
|
|
LIB_DEPENDS-global =
|
|
|
|
LIB_DEPENDS-mysql = ${BASE_PKGPATH},-main>=${VERSION:R},<${QT5_NEXT_VERSION} \
|
|
${MODGCC4_CPPLIBDEP} \
|
|
databases/mariadb
|
|
|
|
LIB_DEPENDS-psql = ${BASE_PKGPATH},-main>=${VERSION:R},<${QT5_NEXT_VERSION} \
|
|
${MODGCC4_CPPLIBDEP} \
|
|
databases/postgresql
|
|
|
|
LIB_DEPENDS-sqlite2 = ${BASE_PKGPATH},-main>=${VERSION:R},<${QT5_NEXT_VERSION} \
|
|
${MODGCC4_CPPLIBDEP} \
|
|
databases/sqlite
|
|
|
|
LIB_DEPENDS-tds = ${BASE_PKGPATH},-main>=${VERSION:R},<${QT5_NEXT_VERSION} \
|
|
${MODGCC4_CPPLIBDEP} \
|
|
databases/freetds
|
|
|
|
# Nothing in qtbase links to pulseaudio, but configure checks
|
|
# are recorded.
|
|
# The atspi is checked at configure time and used via D-Bus.
|
|
BUILD_DEPENDS = audio/pulseaudio \
|
|
geo/geoclue \
|
|
x11/dbus \
|
|
x11/gnome/at-spi2-core
|
|
|
|
RUN_DEPENDS-main = ${RUN_DEPENDS} \
|
|
geo/geoclue \
|
|
x11/dbus \
|
|
x11/gnome/at-spi2-core
|
|
RUN_DEPENDS-global =
|
|
RUN_DEPENDS-examples =
|
|
RUN_DEPENDS-mysql =
|
|
RUN_DEPENDS-psql =
|
|
RUN_DEPENDS-sqlite2 =
|
|
RUN_DEPENDS-tds =
|
|
|
|
CONFIGURE_STYLE = simple
|
|
|
|
FLAVORS = debug
|
|
FLAVOR ?=
|
|
|
|
# readability macros
|
|
QT_BASEDIR = ${PREFIX}/lib/qt5
|
|
QT_INCDIR = ${PREFIX}/include/X11/qt5
|
|
QT_EXAMPLES = ${QT_BASEDIR}/examples
|
|
QT_DOC = ${PREFIX}/share/doc/qt5
|
|
QT_PLUGINSDIR = ${QT_BASEDIR}/plugins
|
|
QT_BINDIR = ${QT_BASEDIR}/bin
|
|
QT_PKGCFGDIR = ${QT_BASEDIR}/pkgconfig
|
|
QT_CMAKEDIR = ${QT_BASEDIR}/cmake
|
|
|
|
# generic args
|
|
CONFIGURE_ARGS = -confirm-license \
|
|
-opensource \
|
|
-rpath \
|
|
-shared \
|
|
-verbose \
|
|
-no-pch \
|
|
-no-compile-examples
|
|
|
|
# Don't run tests inside main build.
|
|
# XXX It looks like affecting other Qt modules as well.
|
|
CONFIGURE_ARGS += -nomake tests
|
|
|
|
.if ${FLAVOR:Mdebug}
|
|
CONFIGURE_ARGS += -debug
|
|
.else
|
|
CONFIGURE_ARGS += -release
|
|
.endif
|
|
|
|
# paths
|
|
CONFIGURE_ARGS += -sysconfdir ${SYSCONFDIR} \
|
|
-prefix ${QT_BASEDIR} \
|
|
-plugindir ${QT_PLUGINSDIR} \
|
|
-libdir ${QT_BASEDIR} \
|
|
-headerdir ${QT_INCDIR} \
|
|
-examplesdir ${QT_EXAMPLES} \
|
|
-docdir ${QT_DOC} \
|
|
-datadir ${QT_BASEDIR} \
|
|
-bindir ${QT_BINDIR} \
|
|
-R${X11BASE}/lib \
|
|
-L${X11BASE}/lib
|
|
|
|
# switch to c++14 after getting GCC 5.0 enabled by default via COMPILER?
|
|
CONFIGURE_ARGS += -c++std c++11
|
|
|
|
# other options
|
|
CONFIGURE_ARGS += -no-journald \
|
|
-no-mtdev \
|
|
-opengl desktop \
|
|
-system-harfbuzz \
|
|
-system-proxies \
|
|
-system-sqlite \
|
|
-system-xcb
|
|
|
|
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
|
|
# AVX: Sandy Bridge/Haswell, but not all models. AMD Bulldozer/Jaguar.
|
|
# SSE4.2: Nehalem, Silvermont Atom, AMD Bulldozer/Jaguar.
|
|
# SSE4.1: Core 2 (Penryn), Nehalem, Silvermont Atom, AMD Bulldozer/Jaguar.
|
|
# SSSE3: Core 2 Duo, Atom, AMD Bulldozer/Bobcat.
|
|
# SSE3: missing on very early 64-bit AMD.
|
|
CONFIGURE_ARGS += -no-sse4.1 -no-sse4.2 -no-avx -no-avx2
|
|
CONFIGURE_ARGS += -no-ssse3 -no-sse3
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "i386"
|
|
CONFIGURE_ARGS += -no-sse2
|
|
.endif
|
|
|
|
MODULES = devel/qmake
|
|
MODQMAKE_ENV += ${TEST_ENV}
|
|
CONFIGURE_ENV += ${MODQMAKE_ENV}
|
|
MAKE_ENV += ${MODQMAKE_ENV}
|
|
|
|
.include <bsd.port.arch.mk>
|
|
|
|
# See qtbase/tests/README for details
|
|
TEST_IS_INTERACTIVE = X11
|
|
TEST_DEPENDS = audio/sox
|
|
# kde4-minimal-*|kdebase-*:meta/kde4,-minimal
|
|
|
|
post-extract:
|
|
mkdir -p ${WRKDIST}/mkspecs/openbsd-clang
|
|
cp ${FILESDIR}/clang-qmake.conf ${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
|
|
cp ${WRKDIST}/mkspecs/openbsd-g++/qplatformdefs.h ${WRKDIST}/mkspecs/openbsd-clang/
|
|
|
|
pre-configure:
|
|
@gccbasedir=`ecpp -print-search-dirs | awk '/^install:/{print $$2}'`; \
|
|
perl ${PORTSDIR}/infrastructure/bin/pkg_subst \
|
|
-D OPENBSD_INCDIR_PREPEND="$${gccbasedir}include" \
|
|
${WRKSRC}/mkspecs/openbsd-g++/qmake.conf \
|
|
${WRKSRC}/mkspecs/openbsd-clang/qmake.conf
|
|
|
|
do-test:
|
|
#
|
|
# WARNING!
|
|
# Many tests won't run if window manager has either
|
|
# "focus follows pointer", or "click to activate" policy.
|
|
#
|
|
${MODQMAKE_configure}
|
|
${MODQMAKE_build}
|
|
${MODQMAKE_test}
|
|
|
|
post-install:
|
|
# often-used includes directory
|
|
! test -d ${PREFIX}/lib/qt5 || \
|
|
cd ${PREFIX}/lib/qt5 && ln -sf ../../include/X11/qt5 include
|
|
|
|
.include <bsd.port.mk>
|