248 lines
7 KiB
Makefile
248 lines
7 KiB
Makefile
DISTNAME = qtbase-everywhere-opensource-src-${DIST_VERSION}
|
|
QT5NAME = Qt5 core
|
|
|
|
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-tds = TDS plugin for Qt5
|
|
|
|
PKGNAME-mysql = qt5-mysql-${VERSION}
|
|
PKGNAME-global = qt5-global-${VERSION}
|
|
PKGNAME-psql = qt5-postgresql-${VERSION}
|
|
PKGNAME-tds = qt5-tds-${VERSION}
|
|
|
|
PKG_ARCH-global = *
|
|
PKG_ARCH-examples = *
|
|
|
|
DPB_PROPERTIES = parallel
|
|
|
|
SHARED_LIBS += Qt5Concurrent 4.0 # 5.15
|
|
SHARED_LIBS += Qt5Core 4.0 # 5.15
|
|
SHARED_LIBS += Qt5DBus 3.0 # 5.15
|
|
SHARED_LIBS += Qt5Gui 3.0 # 5.15
|
|
SHARED_LIBS += Qt5Network 4.0 # 5.15
|
|
SHARED_LIBS += Qt5OpenGL 3.0 # 5.15
|
|
SHARED_LIBS += Qt5PrintSupport 3.0 # 5.15
|
|
SHARED_LIBS += Qt5Sql 3.0 # 5.15
|
|
SHARED_LIBS += Qt5Test 3.1 # 5.15
|
|
SHARED_LIBS += Qt5Widgets 4.0 # 5.15
|
|
SHARED_LIBS += Qt5Xml 3.0 # 5.15
|
|
SHARED_LIBS += Qt5EglFSDeviceIntegration 1.0 # 5.15
|
|
SHARED_LIBS += Qt5EglFsKmsSupport 1.0 # 5.15
|
|
SHARED_LIBS += Qt5OpenGLExtensions 0.0 # 5.15
|
|
SHARED_LIBS += Qt5XcbQpa 1.0 # 5.15
|
|
|
|
WANTLIB-main += ${COMPILER_LIBCXX} EGL GL ICE SM X11 X11-xcb Xext atk-1.0
|
|
WANTLIB-main += c cairo cairo-gobject crypto cups dbus-1 double-conversion
|
|
WANTLIB-main += drm execinfo fontconfig freetype gbm gdk-3 gdk_pixbuf-2.0
|
|
WANTLIB-main += gio-2.0 glib-2.0 gobject-2.0 gthread-2.0 gtk-3 harfbuzz
|
|
WANTLIB-main += icudata icui18n icuuc jpeg m pango-1.0 pangocairo-1.0
|
|
WANTLIB-main += pcre2-16 png sqlite3 ssl 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-xinput
|
|
WANTLIB-main += xcb-xkb xkbcommon xkbcommon-x11 z zstd
|
|
|
|
WANTLIB-global =
|
|
|
|
WANTLIB-mysql = ${COMPILER_LIBCXX} Qt5Core Qt5Sql
|
|
WANTLIB-mysql += m pthread mariadb
|
|
|
|
WANTLIB-psql = ${COMPILER_LIBCXX} Qt5Core Qt5Sql
|
|
WANTLIB-psql += m pthread pq
|
|
|
|
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 -tds
|
|
|
|
# qmake module is used only for running tests and setting vars
|
|
MODQT_DEPS = No
|
|
MODQMAKE_PROJECTS = tests/tests.pro
|
|
USE_GMAKE = Yes
|
|
|
|
# no leveldb dependency, requires -lmemenv; QtWebKit uses internal version
|
|
LIB_DEPENDS-main = ${LIB_DEPENDS} \
|
|
archivers/zstd \
|
|
databases/sqlite3 \
|
|
x11/gnome/at-spi2-core \
|
|
devel/harfbuzz \
|
|
devel/pango \
|
|
devel/pcre2 \
|
|
graphics/cairo \
|
|
graphics/gdk-pixbuf2 \
|
|
math/double-conversion \
|
|
print/cups,-libs \
|
|
textproc/icu4c \
|
|
x11/dbus \
|
|
x11/gtk+3 \
|
|
x11/xkbcommon>=1.0.1
|
|
|
|
# those come from gthread-2.0, not used by Qt itself
|
|
WANTLIB-main += intl
|
|
LIB_DEPENDS-main += devel/gettext,-runtime
|
|
|
|
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-tds = ${BASE_PKGPATH},-main>=${VERSION:R},<${QT5_NEXT_VERSION} \
|
|
${MODGCC4_CPPLIBDEP} \
|
|
databases/freetds
|
|
|
|
# The atspi is checked at configure time and used via D-Bus.
|
|
BUILD_DEPENDS = x11/gnome/at-spi2-core
|
|
|
|
RUN_DEPENDS-main = ${RUN_DEPENDS} \
|
|
x11/gnome/at-spi2-core
|
|
RUN_DEPENDS-global =
|
|
RUN_DEPENDS-examples =
|
|
RUN_DEPENDS-mysql =
|
|
RUN_DEPENDS-psql =
|
|
RUN_DEPENDS-tds =
|
|
|
|
CONFIGURE_STYLE = simple
|
|
|
|
FLAVORS = debug
|
|
FLAVOR ?=
|
|
|
|
CONFIGURE_ARGS += OPENSSL_LIBS="-L/usr/lib -lssl -lcrypto"
|
|
|
|
# configure
|
|
CONFIGURE_ARGS+= -I "${LOCALBASE}/include"
|
|
CONFIGURE_ARGS+= -L "${LOCALBASE}/lib"
|
|
|
|
# paths
|
|
CONFIGURE_ARGS += -bindir ${QT_BINDIR} \
|
|
-datadir ${QT_BASEDIR} \
|
|
-docdir ${QT_DOC} \
|
|
-examplesdir ${QT_EXAMPLES} \
|
|
-headerdir ${QT_INCDIR} \
|
|
-libdir ${QT_BASEDIR} \
|
|
-plugindir ${QT_PLUGINSDIR} \
|
|
-prefix ${QT_BASEDIR} \
|
|
-qmldir ${QT_QMLDIR} \
|
|
-sysconfdir ${SYSCONFDIR}/xdg
|
|
|
|
# generic args
|
|
CONFIGURE_ARGS += -confirm-license \
|
|
-opensource \
|
|
-rpath \
|
|
-shared \
|
|
-verbose
|
|
|
|
# We have to wait until arm64 is vulkan ready.
|
|
#BUILD_DEPENDS = graphics/vulkan-loader
|
|
CONFIGURE_ARGS += -no-vulkan
|
|
|
|
# Let's wait a little until we have more experience and test results
|
|
#LIB_DEPENDS += sysutils/libudev-openbsd
|
|
CONFIGURE_ARGS += -no-libudev
|
|
|
|
# disabled
|
|
CONFIGURE_ARGS += -no-ccache \
|
|
-no-compile-examples \
|
|
-no-inotify \
|
|
-no-journald \
|
|
-no-mimetype-database \
|
|
-no-mtdev \
|
|
-no-optimized-qmake \
|
|
-no-pch \
|
|
-no-use-gold-linker
|
|
|
|
# https://www.qt.io/blog/qt-is-relocatable (QTBUG-87220)
|
|
CONFIGURE_ARGS += -no-feature-relocatable
|
|
|
|
# DTLS support depends on DTLSv1_listen() having a BIO_ADDR argument
|
|
# which LibreSSL does not currently support.
|
|
CONFIGURE_ARGS += -no-feature-dtls
|
|
|
|
# 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
|
|
|
|
CONFIGURE_ARGS += -c++std c++17
|
|
|
|
## other options
|
|
CONFIGURE_ARGS += -accessibility \
|
|
-cups \
|
|
-dbus-linked \
|
|
-glib \
|
|
-icu \
|
|
-opengl desktop \
|
|
-openssl-linked \
|
|
-pkg-config \
|
|
-syslog \
|
|
-system-harfbuzz \
|
|
-system-doubleconversion \
|
|
-system-libjpeg \
|
|
-system-libpng \
|
|
-system-pcre \
|
|
-system-sqlite \
|
|
-system-zlib
|
|
|
|
# database support
|
|
CONFIGURE_ARGS += -sql-mysql
|
|
CONFIGURE_ARGS += -sql-psql
|
|
CONFIGURE_ARGS += -sql-tds
|
|
|
|
.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>
|
|
|
|
.if ${PROPERTIES:Mclang}
|
|
CONFIGURE_ARGS += -platform openbsd-clang
|
|
.else
|
|
CONFIGURE_ARGS += -platform openbsd-g++
|
|
.endif
|
|
|
|
# See qtbase/tests/README for details
|
|
TEST_IS_INTERACTIVE = X11
|
|
|
|
post-extract:
|
|
mkdir -p ${WRKDIST}/mkspecs/openbsd-{clang,g++}
|
|
cp ${FILESDIR}/clang-qmake.conf \
|
|
${WRKDIST}/mkspecs/openbsd-clang/qmake.conf
|
|
cp ${FILESDIR}/g++-qmake.conf \
|
|
${WRKDIST}/mkspecs/openbsd-g++/qmake.conf
|
|
cp ${WRKDIST}/mkspecs/freebsd-clang/qplatformdefs.h \
|
|
${WRKDIST}/mkspecs/openbsd-clang/
|
|
cp ${WRKDIST}/mkspecs/freebsd-g++/qplatformdefs.h \
|
|
${WRKDIST}/mkspecs/openbsd-g++/
|
|
|
|
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>
|