You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
1462 lines
52 KiB
Tcl
1462 lines
52 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup active_variants 1.1
|
|
PortGroup qt6_info 1.0
|
|
|
|
name qt68
|
|
|
|
categories aqua
|
|
platforms {macosx >= 23} ; # upon change, please update qt6 PG
|
|
maintainers {mcalhoun @MarcusCalhoun-Lopez} \
|
|
{reneeotten @reneeotten} openmaintainer
|
|
|
|
# for OpenSSLException, see source and header files in src/network/ssl of qtbase
|
|
# see also https://doc.qt.io/qt-6.8/qtnetwork-index.html#licenses-and-attributions
|
|
license {LGPL-3 GPL-3 OpenSSLException}
|
|
|
|
homepage https://www.qt.io
|
|
|
|
version 6.8.3
|
|
|
|
# get Qt's version numbers
|
|
set branch [join [lrange [split ${version} .] 0 1] .]
|
|
set qt_major [lindex [split ${version} .] 0]
|
|
|
|
# see https://www.qt.io/blog/qt-6.8-released
|
|
compiler.c_standard 2011
|
|
compiler.cxx_standard 2017
|
|
|
|
# qcompilerdetection.h emits:
|
|
# error: "Unsupported Apple Clang version"
|
|
# which also means Q_CC_CLANG will not be set.
|
|
# That causes the check for __has_feature(cxx_unicode_literals) to be skipped, causing
|
|
# error: "Qt6 requires Unicode string support in both the compiler and the standard library"
|
|
# to be emitted, even when the unsupported Apple Clang version does support Unicode string literals.
|
|
compiler.blacklist-append {clang < 1100}
|
|
|
|
master_sites https://download.qt.io/official_releases/qt/${branch}/${version}/submodules
|
|
# file sizes are significantly smaller using xz
|
|
use_xz yes
|
|
|
|
supported_archs arm64 x86_64
|
|
|
|
# conflict with all other versions of qt6
|
|
foreach {qt_base qt_info} ${qt6::available_versions} {
|
|
if { ${qt_base} ne ${name} } {
|
|
conflicts-append ${qt_base}-qtbase
|
|
}
|
|
}
|
|
|
|
if {${os.platform} eq "darwin" && [vercmp ${macosx_deployment_target} >= 15.0]} {
|
|
macosx_deployment_target 14.0
|
|
}
|
|
|
|
# Cannot get qt6-qtbase to configure without setting this - appears to be new
|
|
# in version 6.8.2...
|
|
use_xcode yes
|
|
|
|
# MacPorts LLVM/Clang version to use when required
|
|
set llvm_version 19
|
|
|
|
# MacPorts Python branch & version to use when required
|
|
set python_branch 3.13
|
|
set python_version [join [split ${python_branch} .] ""]
|
|
|
|
############################################################################### Modules Not Considered
|
|
#
|
|
# No qtactiveqt (Windows Only)
|
|
# No qtwayland (Linux Only)
|
|
#
|
|
###############################################################################
|
|
|
|
############################################################################### Qt Dependencies
|
|
#
|
|
# https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules?h=6.8.1
|
|
#
|
|
###############################################################################
|
|
|
|
############################################################################### Module Format
|
|
#
|
|
# "Qt Module Name" {
|
|
# {
|
|
# checksum, rmd160
|
|
# checksum, sha256
|
|
# checksum, size
|
|
# }
|
|
# dependencies, build
|
|
# dependencies, lib
|
|
# dependencies, Qt module name
|
|
# Qt components provided
|
|
# included in "standard" installation of Qt (empty string is no, explanation string is yes)
|
|
# variant overrides
|
|
# revision number
|
|
# license replacement
|
|
# }
|
|
#
|
|
# module info found at https://doc.qt.io/qt-6.8/qtmodules.html
|
|
#
|
|
###############################################################################
|
|
array set modules {
|
|
qtbase {
|
|
{
|
|
8df67d44976d8030a9d57a2cd9fbf95fd5d84514 \
|
|
56001b905601bb9023d399f3ba780d7fa940f3e4861e496a7c490331f49e0b80 \
|
|
48426536
|
|
}
|
|
""
|
|
"port:brotli path:bin/dbus-daemon:dbus port:double-conversion port:freetype
|
|
path:lib/pkgconfig/glib-2.0.pc:glib2 path:lib/pkgconfig/harfbuzz.pc:harfbuzz
|
|
path:lib/pkgconfig/icu-uc.pc:icu path:include/turbojpeg.h:libjpeg-turbo port:libb2
|
|
port:libpng port:md4c path:lib/pkgconfig/libpcre2-posix.pc:pcre2
|
|
port:zlib path:lib/pkgconfig/libzstd.pc:zstd"
|
|
""
|
|
{"Qt Core" "Qt GUI" "Qt Network" "Qt SQL" "Qt Test" "Qt Widgets" "Qt Concurrent" "Qt D-Bus" \
|
|
"Qt OpenGL" "Qt Platform Headers" "Qt Print Support" "Qt XML"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtsvg {
|
|
{
|
|
b133c2437f8ba58f6212d9b04d09d6640f53b986 \
|
|
35eb516460f00f264eb504baa253432384351cf23fb9980a5857190e8deef438 \
|
|
2009072
|
|
}
|
|
""
|
|
"port:zlib"
|
|
"qtbase"
|
|
{"Qt SVG"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtdeclarative {
|
|
{
|
|
345060136cc3fa6425fd4032c6a602073382a356 \
|
|
1f03a2b8f5588b4face7da87926e9b2c1372b3a32157c52df07a75067a9db1af \
|
|
36503988
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtimageformats qtshadertools qtsvg qtlanguageserver"
|
|
{"Qt QML" "Qt Quick" "Qt Quick Layouts" "Qt Quick Widgets"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtmultimedia {
|
|
{
|
|
e90389ec225172e51eebf49c64ee7b4bc71c291e \
|
|
32e82307d783172a3b984cc3c47c5e4e8b819cee3cbfc702c7012c47f15f6b01 \
|
|
9705340
|
|
}
|
|
""
|
|
"port:ffmpeg7 port:pulseaudio"
|
|
"qtbase qtshadertools qtdeclarative qtquick3d"
|
|
{"Qt Multimedia"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qttools {
|
|
{
|
|
a571e0c097bbf4b50e04623147e7b9c934d01932 \
|
|
02a4e219248b94f1333df843d25763f35251c1074cdc4fb5bda67d340f8c8b3a \
|
|
10301984
|
|
}
|
|
""
|
|
"port:clang-${llvm_version} path:lib/pkgconfig/libzstd.pc:zstd"
|
|
"qtbase qtdeclarative"
|
|
{"Qt Designer" "Qt Help" "Qt UI Tools"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qttranslations {
|
|
{
|
|
2e9c9d3e976c32ef6ffaef0adb00132670aab91a \
|
|
c3c61d79c3d8fe316a20b3617c64673ce5b5519b2e45535f49bee313152fa531 \
|
|
1577680
|
|
}
|
|
""
|
|
""
|
|
"qttools"
|
|
{"translation files"}
|
|
""
|
|
"variant overrides: ~examples ~tests ~debug noarch ~docs"
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtdoc {
|
|
{
|
|
005c5ccc165ad7e7b5b65694956421ea5b9a1c0f \
|
|
f55371489e97325ec8e9e8683ec6f9f581a20a8b27736e2b4df8a8414fddeb59 \
|
|
46015000
|
|
}
|
|
""
|
|
""
|
|
"qtdeclarative qttools qtmultimedia"
|
|
{"documentation and examples"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtlocation {
|
|
{
|
|
5e866f3dc8c41ac43b97d825bbe99cca8b3c837e \
|
|
1d05e95aa5b6bd26bffa004cd8c5c70ae2af649496010a1a70124293bc09fd43 \
|
|
3165768
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtpositioning qtdeclarative"
|
|
{"Qt Location"}
|
|
"status = preview"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtpositioning {
|
|
{
|
|
025f6c71a3f975f9cefb1222a5aa712ee764a8b6 \
|
|
6ab69a7e71a7795aab9ca2798eea126e36df55159a771ebd2f37cad3da63e9d3 \
|
|
663612
|
|
}
|
|
""
|
|
"port:gconf port:gettext-runtime path:lib/pkgconfig/glib-2.0.pc:glib2"
|
|
"qtbase qtdeclarative qtserialport"
|
|
{"Qt Positioning"}
|
|
""
|
|
"variant overrides: ~examples ~tests"
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtsensors {
|
|
{
|
|
9f8c1700d2fda3834e9b2ba490443cc56d3b8756 \
|
|
b871a7501f9fa609f35260ea39a0f198427d6d6b9ee8d1a6ddb987cc26511eae \
|
|
1500140
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt Sensors"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtconnectivity {
|
|
{
|
|
ac1191c470b0b8ca9279eca3d5dee58e23a050af \
|
|
477176383308ce77f974a16f118027e833061caed57aeb30eeb4306a583c9b39 \
|
|
1071152
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt Bluetooth" "Qt NFC"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qt3d {
|
|
{
|
|
32b45b2122995212d002bb35523e97d4c34f2c29 \
|
|
095e1be77ffd4b158d9e57f16ee898caf7d0d6e5406f466d9d8315d5b1e79563 \
|
|
141825440
|
|
}
|
|
""
|
|
"port:assimp port:zlib port:minizip port:pugixml"
|
|
"qtbase qtdeclarative qtshadertools"
|
|
{"Qt 3D"}
|
|
"status = deprecated"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtimageformats {
|
|
{
|
|
77826c4e949746d49a547f656e3a8089698a13ea \
|
|
049bfb99845e4801672aca07c3c4fc4c140f932a3a33faa899419579e33ef1c8 \
|
|
2035140
|
|
}
|
|
""
|
|
"path:lib/pkgconfig/jasper.pc:jasper port:libmng port:tiff port:webp
|
|
path:include/turbojpeg.h:libjpeg-turbo"
|
|
"qtbase"
|
|
{"Qt Image Formats"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtserialbus {
|
|
{
|
|
6c00cc3f06fa5fd928330535eb2fa886c93c0e75 \
|
|
43480eeb7172757d2af2c5717cfed84a9254bef775cd715fd27258a81c7b7e9e \
|
|
550256
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtserialport"
|
|
{"Qt Serial Bus"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtserialport {
|
|
{
|
|
dab89d1a394ef6261166dc6ab4116f5a11888d61 \
|
|
c164a0392dc7cab3d072fa8fdcacc8fc4f3e685234b021b3128020719cdf5fa5 \
|
|
276532
|
|
}
|
|
""
|
|
""
|
|
"qtbase"
|
|
{"Qt Serial Port"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtwebsockets {
|
|
{
|
|
df6798838a62bf9134b1427246bc0fe95dedf803 \
|
|
fc6310c1b12d6e22a31062727aa6574ed69239d036c8a4247b3b089902709b11 \
|
|
461996
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt WebSockets"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtwebchannel {
|
|
{
|
|
73acc56c87f3f002f1ee3d1a1869b578dce4c06e \
|
|
967046b2650b7fc7b27547522e998e35d62291d795b20d9497e4bcc714831262 \
|
|
209372
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative qtwebsockets"
|
|
{"Qt WebChannel"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtwebengine {
|
|
{
|
|
90976c5ba9cf10feca1ae2274158b651254112ea \
|
|
df4e19ba2b3a540551b6f998d62597377ffa688c1cff564589b7da2e2bf87337 \
|
|
566553436
|
|
}
|
|
"path:bin/node:nodejs20 port:python${python_version} port:py${python_version}-html5lib port:py${python_version}-ply"
|
|
"port:libpng port:zlib"
|
|
"qtdeclarative qtwebchannel qttools qtpositioning"
|
|
{"Qt WebEngine Qt" "Qt PDF"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtwebview {
|
|
{
|
|
a52f5001362b6b507b7071c1bdf88de3027fe26b \
|
|
2c46e472034c8a254bb4dbd15250a3fa8f727135a14718a3ff1175697b487ed2 \
|
|
141020
|
|
}
|
|
""
|
|
""
|
|
"qtdeclarative qtwebengine"
|
|
{"Qt WebView"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtcharts {
|
|
{
|
|
63e5efb2a4346b0d64e77532e3d5b6c665cfb089 \
|
|
34aa5f5a48bb7481c9bd62172696831c73c2cef327aa6b871b1861693b3e0914 \
|
|
4664228
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative qtmultimedia"
|
|
{"Qt Charts"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtdatavis3d {
|
|
{
|
|
90c29d39b9cc8f5563578670cfff27826619e75e \
|
|
8323b6d4ad719b9332343760de27f0e8511f75bc2b8750c7821b08988585fe1a \
|
|
3954668
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative qtmultimedia"
|
|
{"Qt Data Visualization"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtvirtualkeyboard {
|
|
{
|
|
5952a14384adf5c72a44a748dd98c6f286506e93 \
|
|
8111061261ed8d88ec40b79083f8ed025650eb1807a05528615265d36213bb1d \
|
|
3288724
|
|
}
|
|
""
|
|
"port:hunspell"
|
|
"qtbase qtdeclarative qtsvg qtmultimedia"
|
|
{"Qt Virtual Keyboard"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtscxml {
|
|
{
|
|
6735045c49d9a6d3b2cc18e941f931e0d591d091 \
|
|
dbac976ab7299fb782dfc4c1e4bb1cafc059929bef2271a275f11d97ce7f2f5c \
|
|
560632
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt SCXML"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtspeech {
|
|
{
|
|
b3202b5d6bb1f1016d174ce0e626fd381085d56a \
|
|
b0dd3e3bf993e15dc03d3486ee1b452c2b92f0460a621eb32d261eecc040504b \
|
|
264416
|
|
}
|
|
""
|
|
"port:flite"
|
|
"qtbase qtdeclarative qtmultimedia"
|
|
{"Qt TextToSpeech"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtnetworkauth {
|
|
{
|
|
a24f714aeba1822a6ccc3602aa54ba9941f8a8af \
|
|
27ee8b7c105a9dd75f1182d8dddc3837b875f1145f05311bca343f0838ef4b49 \
|
|
257476
|
|
}
|
|
""
|
|
""
|
|
"qtbase"
|
|
{"Qt Network Authorization"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtremoteobjects {
|
|
{
|
|
2b07f9d30489e07b094693ef1f245ca2d3c7d07a \
|
|
5a40d1a67c2e02911f3014977cdce59eb49e8af2c82f4e18c06ce7031744aeaf \
|
|
539556
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt Remote Objects"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtlottie {
|
|
{
|
|
b9e89d0e2a6e3b809055fb9ccca237995762574f \
|
|
d732e754497a1295c4f512312828a11551fe89433259af9ee9f1e62bb7263d24 \
|
|
86104
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt Lottie Animation"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtquicktimeline {
|
|
{
|
|
0fa6f2f7e233a0bbfdc3349f53daa705ec58d1d2 \
|
|
b2ba57fa4fb929d3cd103dff65dd7a62dc2e3852f9a4fddd081e4a759b684fdd \
|
|
112572
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative"
|
|
{"Qt Quick Timeline"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtquick3d {
|
|
{
|
|
89899f0d6cd3133c152d2a53bfcdd2a0230f1bbe \
|
|
30483c700e521b9bc53a5f68cbaed089416c991fc29f5fb4179cde53fd3652df \
|
|
75305840
|
|
}
|
|
""
|
|
"port:assimp"
|
|
"qtbase qtdeclarative qtshadertools"
|
|
{"Qt Quick 3D"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtshadertools {
|
|
{
|
|
b574bb90bfa9031c1dda99d25e65da305f151f20 \
|
|
f6ec88bf42deba84d8f6b5d0914636ceed4749ccb51d1945b2f79b322b7ecf47 \
|
|
1140608
|
|
}
|
|
""
|
|
""
|
|
"qtbase"
|
|
{"Qt Shader Tools"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qt5compat {
|
|
{
|
|
96ca0e240030a7c373d124d533c12b7c6b6c412b \
|
|
54b9c84bff34b423dd8c472862ce1009753ff505e418b4ef33907416da16b82e \
|
|
14634168
|
|
}
|
|
""
|
|
"path:lib/pkgconfig/icu-uc.pc:icu port:libiconv"
|
|
"qtbase qtdeclarative"
|
|
{"Qt 5 Core Compatibility APIs"}
|
|
"status = deprecated"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qtlanguageserver {
|
|
{
|
|
84635fcdc11325d7e6d8c527852eaab52d63972f \
|
|
e4d320073c55b3a418a784e7866c43bc3e3d52817368be56e7d468866ff8b469 \
|
|
152144
|
|
}
|
|
""
|
|
""
|
|
"qtbase"
|
|
{"Qt Language Server"}
|
|
"status = preview"
|
|
"variant overrides: ~docs"
|
|
"revision 0"
|
|
"License: "
|
|
}
|
|
qthttpserver {
|
|
{
|
|
fe26e2f5c8071842ad8cd02dce57ca0a2efd922b \
|
|
792be98dd979a3f1cf42477139321a8999a648b7e7ad041ae133965c3cc35f65 \
|
|
185480
|
|
}
|
|
""
|
|
""
|
|
"qtbase"
|
|
{"Qt HTTP Server"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtquick3dphysics {
|
|
{
|
|
41e27347e59ac1161b2504602d302be03a10ab44 \
|
|
e862233530775dbd9ce914447d23a1e7116e63decf5bf8e5a25899a59e297fac \
|
|
4682552
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative qtquick3d qtshadertools"
|
|
{"Qt Quick 3D Physics"}
|
|
"GPLv3 license only"
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
qtquickeffectmaker {
|
|
{
|
|
517c05715988f45add7f6c3037c6e1293f6e9c32 \
|
|
cff4818ea0de7d1e0b9ab221faca6266d328dd97aa79bf9f0085390cac4dba07 \
|
|
4350080
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative qtquick3d qtshadertools"
|
|
{"Qt Quick Effects"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
""
|
|
}
|
|
qtgraphs {
|
|
{
|
|
6838d14d6fefb4f86926598cacabfcaad7f4d9ad \
|
|
a40bb22211cc8f78292557e18718b3a721e8ab5809b1ac25f3adf36dc5965c74 \
|
|
4870904
|
|
}
|
|
""
|
|
""
|
|
"qtbase qtdeclarative qtquick3d"
|
|
{"Qt Graphs"}
|
|
""
|
|
"variant overrides: "
|
|
"revision 0"
|
|
"License: {GPL-3 OpenSSLException}"
|
|
}
|
|
}
|
|
|
|
############################################################################### SQL Plugin Format
|
|
#
|
|
# {
|
|
# module name
|
|
# {
|
|
# SQL name
|
|
# revision string
|
|
# {list of feature names}
|
|
# {
|
|
# variant name
|
|
# {
|
|
# variant name
|
|
# library dependencies
|
|
# {list of CMake options to find library}
|
|
# }
|
|
# }
|
|
# }
|
|
# }
|
|
#
|
|
###############################################################################
|
|
array set sql_plugins {
|
|
sqlite {
|
|
SQLite
|
|
"revision 0"
|
|
{sql-sqlite system-sqlite}
|
|
{
|
|
sqlite3 {
|
|
"port:sqlite3"
|
|
{
|
|
-DSQLite3_INCLUDE_DIR=${prefix}/include
|
|
-DSQLite3_LIBRARY=${prefix}/lib/libsqlite3.dylib
|
|
}
|
|
}
|
|
}
|
|
}
|
|
psql {
|
|
PostgreSQL
|
|
"revision 0"
|
|
{sql-psql}
|
|
{
|
|
postgresql17 {
|
|
"port:postgresql17"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql17
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql17
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql17
|
|
}
|
|
}
|
|
postgresql16 {
|
|
"port:postgresql16"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql16
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql16
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql16
|
|
}
|
|
}
|
|
postgresql15 {
|
|
"port:postgresql15"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql15
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql15
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql15
|
|
}
|
|
}
|
|
postgresql14 {
|
|
"port:postgresql14"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql14
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql14
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql14
|
|
}
|
|
}
|
|
postgresql13 {
|
|
"port:postgresql13"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql13
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql13
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql13
|
|
}
|
|
}
|
|
postgresql12 {
|
|
"port:postgresql12"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql12
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql12
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql12
|
|
}
|
|
}
|
|
postgresql11 {
|
|
"port:postgresql11"
|
|
{
|
|
-DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql11
|
|
-DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql11
|
|
-DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql11
|
|
}
|
|
}
|
|
}
|
|
}
|
|
mysql {
|
|
MySQL
|
|
"revision 0"
|
|
{sql-mysql}
|
|
{
|
|
mariadb10_11 {
|
|
"port:mariadb-10.11"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.11/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.11/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_10 {
|
|
"port:mariadb-10.10"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.10/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.10/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_9 {
|
|
"port:mariadb-10.9"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.9/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.9/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_8 {
|
|
"port:mariadb-10.8"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.8/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.8/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_7 {
|
|
"port:mariadb-10.7"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.7/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.7/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_6 {
|
|
"port:mariadb-10.6"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.6/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.6/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_5 {
|
|
"port:mariadb-10.5"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.5/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.5/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mariadb10_4 {
|
|
"port:mariadb-10.6"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mariadb-10.4/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mariadb-10.4/mysql/libmariadb.dylib
|
|
}
|
|
}
|
|
mysql8 {
|
|
"port:mysql8"
|
|
{
|
|
-DMySQL_INCLUDE_DIR=${prefix}/include/mysql8/mysql
|
|
-DMySQL_LIBRARY=${prefix}/lib/mysql8/mysql/libmysqlclient.dylib
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach {module module_info} [array get modules] {
|
|
subport ${name}-${module} {
|
|
|
|
# minimum supported versions have changed over time and new qtXY ports were added
|
|
# this attempts to provide a clean "upgrade" path for user who had "qt6-XY" (sub)ports installed
|
|
# on a system that is no longer supported
|
|
# REMOVE after 2026-02-19
|
|
if {${os.platform} eq "darwin" && ${os.major} < 23 && ${os.major} >= 21} {
|
|
PortGroup obsolete 1.0
|
|
replaced_by qt67-${module}
|
|
} elseif {${os.platform} eq "darwin" && ${os.major} < 21 && ${os.major} >= 18} {
|
|
PortGroup obsolete 1.0
|
|
replaced_by qt64-${module}
|
|
}
|
|
|
|
distname ${module}-everywhere-src-${version}
|
|
|
|
revision [regexp -inline {[0-9]+} [lindex ${module_info} 7]]
|
|
|
|
checksums rmd160 [lindex [lindex ${module_info} 0] 0] \
|
|
sha256 [lindex [lindex ${module_info} 0] 1] \
|
|
size [lindex [lindex ${module_info} 0] 2]
|
|
|
|
set license_string [lindex ${module_info} 8]
|
|
set license_string [string range ${license_string} 1+[string first ":" ${license_string}] end]
|
|
set license_string [string trim ${license_string}]
|
|
if { ${license_string} ne "" } {
|
|
license {*}${license_string}
|
|
}
|
|
|
|
foreach deps [lindex ${module_info} 1] {
|
|
depends_build-append [subst ${deps}]
|
|
}
|
|
|
|
foreach deps [lindex ${module_info} 2] {
|
|
depends_lib-append [subst ${deps}]
|
|
}
|
|
|
|
foreach qtdeps [lindex ${module_info} 3] {
|
|
depends_lib-append port:${name}-${qtdeps}
|
|
}
|
|
|
|
description Tools and Module(s) for Qt Tool Kit ${qt_major}
|
|
|
|
set modules_provided_list [lindex ${module_info} 4]
|
|
if { [llength ${modules_provided_list}] == 1 } {
|
|
set modules_provided_join [lindex ${modules_provided_list} 0]
|
|
} elseif { [llength ${modules_provided_list}] == 2 } {
|
|
set modules_provided_join [join ${modules_provided_list} " and "]
|
|
} else {
|
|
set modules_provided_join [join [list [join [lrange ${modules_provided_list} 0 end-1] ", "] [lindex ${modules_provided_list} end]] ", and "]
|
|
}
|
|
|
|
long_description Tools and Module(s) for Qt Tool Kit ${qt_major}: ${modules_provided_join}
|
|
|
|
if { [lsearch -exact [lindex ${module_info} 6] "~universal"] != -1 } {
|
|
universal_variant no
|
|
}
|
|
|
|
if { [lsearch -exact [lindex ${module_info} 6] "noarch"] != -1 } {
|
|
supported_archs noarch
|
|
platforms any
|
|
}
|
|
|
|
if { [lsearch -exact [lindex ${module_info} 6] "~debug"] == -1 } {
|
|
# debugging seems to be turned on if and only if it is turned on in the base
|
|
# CMAKE_CONFIGURATION_TYPES is set with the FORCE option
|
|
# see https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/QtPostProcessHelpers.cmake
|
|
variant debug description {Build both release and debug libraries} {
|
|
require_active_variants qt68-qtbase debug ""
|
|
}
|
|
if {![variant_isset debug]} {
|
|
require_active_variants qt68-qtbase "" debug
|
|
}
|
|
}
|
|
|
|
if { [lsearch -exact [lindex ${module_info} 6] "~examples"] == -1 } {
|
|
variant examples description {Build examples} {}
|
|
}
|
|
|
|
if { [lsearch -exact [lindex ${module_info} 6] "~tests"] == -1 } {
|
|
variant tests description {Enable tests} {}
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach {module module_info} [array get modules] {
|
|
if { [lsearch -exact [lindex ${module_info} 6] "~docs"] != -1 } { continue }
|
|
|
|
subport ${name}-${module}-docs {
|
|
|
|
# minimum supported versions have changed over time and new qtXY ports were added
|
|
# this attempts to provide a clean "upgrade" path for user who had "qt6-XY" (sub)ports installed
|
|
# on a system that is no longer supported
|
|
# REMOVE after 2026-02-19
|
|
if {${os.platform} eq "darwin" && ${os.major} < 23 && ${os.major} >= 21} {
|
|
PortGroup obsolete 1.0
|
|
replaced_by qt67-${module}
|
|
} elseif {${os.platform} eq "darwin" && ${os.major} < 21 && ${os.major} >= 18} {
|
|
PortGroup obsolete 1.0
|
|
replaced_by qt64-${module}
|
|
}
|
|
|
|
distname ${module}-everywhere-src-${version}
|
|
|
|
revision [regexp -inline {[0-9]+} [lindex ${module_info} 7]]
|
|
|
|
checksums rmd160 [lindex [lindex ${module_info} 0] 0] \
|
|
sha256 [lindex [lindex ${module_info} 0] 1] \
|
|
size [lindex [lindex ${module_info} 0] 2]
|
|
|
|
set license_string [lindex ${module_info} 8]
|
|
set license_string [string range ${license_string} 1+[string first ":" ${license_string}] end]
|
|
set license_string [string trim ${license_string}]
|
|
if { ${license_string} ne "" } {
|
|
license {*}${license_string}
|
|
}
|
|
|
|
depends_build-append port:${name}-qttools \
|
|
port:${name}-sqlite-plugin
|
|
|
|
# have the same build dependencies
|
|
foreach deps [lindex ${module_info} 1] {
|
|
depends_build-append [subst ${deps}]
|
|
}
|
|
|
|
depends_lib-append port:${name}-${module}
|
|
|
|
description Documentation for Qt Tool Kit ${qt_major}
|
|
|
|
set modules_provided_list [lindex ${module_info} 4]
|
|
if { [llength ${modules_provided_list}] == 1 } {
|
|
set modules_provided_join [lindex ${modules_provided_list} 0]
|
|
} elseif { [llength ${modules_provided_list}] == 2 } {
|
|
set modules_provided_join [join ${modules_provided_list} " and "]
|
|
} else {
|
|
set modules_provided_join [join [list [join [lrange ${modules_provided_list} 0 end-1] ", "] [lindex ${modules_provided_list} end]] ", and "]
|
|
}
|
|
|
|
long_description Documentation for Qt Tool Kit ${qt_major}: ${modules_provided_join}
|
|
|
|
supported_archs noarch
|
|
platforms any
|
|
}
|
|
}
|
|
|
|
# see https://doc.qt.io/qt-6/sql-driver.html for info on building SQL Database Drivers
|
|
foreach {driver driver_info} [array get sql_plugins] {
|
|
set dbms [lindex ${driver_info} 0]
|
|
|
|
set revision_string [string trim [lindex ${driver_info} 1]]
|
|
set revision_string [string range ${revision_string} 1+[string last " " ${revision_string}] end]
|
|
|
|
set sql_variants [lindex ${driver_info} 3]
|
|
|
|
subport ${name}-${driver}-plugin {
|
|
|
|
# minimum supported versions have changed over time and new qtXY ports were added
|
|
# this attempts to provide a clean "upgrade" path for user who had "qt6-XY" (sub)ports installed
|
|
# on a system that is no longer supported
|
|
# REMOVE after 2026-02-19
|
|
if {${os.platform} eq "darwin" && ${os.major} < 23 && ${os.major} >= 21} {
|
|
PortGroup obsolete 1.0
|
|
replaced_by qt67-${driver}-plugin
|
|
} elseif {${os.platform} eq "darwin" && ${os.major} < 21 && ${os.major} >= 18} {
|
|
PortGroup obsolete 1.0
|
|
replaced_by qt64-${driver}-plugin
|
|
}
|
|
|
|
distname qtbase-everywhere-src-${version}
|
|
|
|
revision ${revision_string}
|
|
|
|
checksums rmd160 [lindex [lindex $modules(qtbase) 0] 0] \
|
|
sha256 [lindex [lindex $modules(qtbase) 0] 1] \
|
|
size [lindex [lindex $modules(qtbase) 0] 2]
|
|
|
|
depends_lib-append port:${name}-qtbase
|
|
|
|
description ${dbms} Database Driver for Qt Tool Kit ${qt_major}
|
|
long_description ${dbms} Database Driver for Qt Tool Kit ${qt_major}
|
|
|
|
foreach feature {sql-db2 sql-ibase sql-mysql sql-oci sql-odbc sql-psql sql-sqlite system-sqlite} {
|
|
if { ${feature} in [lindex ${driver_info} 2] } {
|
|
configure.args-append -feature-${feature}
|
|
} else {
|
|
configure.args-append -no-feature-${feature}
|
|
}
|
|
}
|
|
|
|
set worksrcpath ${worksrcpath}/src/plugins/sqldrivers
|
|
|
|
set any_sql no
|
|
foreach {variant_name variant_info} ${sql_variants} {
|
|
set conflict_list ""
|
|
|
|
foreach {variant_name_other variant_info_other} ${sql_variants} {
|
|
if { ${variant_name_other} ne ${variant_name} } {
|
|
lappend conflict_list ${variant_name_other}
|
|
}
|
|
}
|
|
|
|
if { [llength ${conflict_list}] > 0 } {
|
|
variant ${variant_name} conflicts {*}${conflict_list} description "use version [regexp -inline {[0-9].} ${variant_name}] of ${dbms}" {}
|
|
}
|
|
if { ([variant_exists ${variant_name}] && [variant_isset ${variant_name}]) || [llength ${conflict_list}]==0 } {
|
|
set any_sql yes
|
|
}
|
|
}
|
|
|
|
if { !${any_sql} } {
|
|
default_variants-append +[lindex ${sql_variants} 0]
|
|
if { ![variant_isset [lindex ${sql_variants} 0]] } {
|
|
known_fail yes
|
|
pre-extract {
|
|
ui_error "At least one SQL variant must be selected."
|
|
return -code error "No SQL variant selected."
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach {variant_name variant_info} ${sql_variants} {
|
|
if { ([variant_exists ${variant_name}] && [variant_isset ${variant_name}]) || [llength ${conflict_list}]==0 } {
|
|
depends_lib-append {*}[lindex ${variant_info} 0]
|
|
configure.post_args-append {*}[subst [lindex ${variant_info} 1]]
|
|
}
|
|
}
|
|
|
|
post-destroot {
|
|
if {[file exists ${qt6.dir}/sbom/qsqlitedriverplugins-${version}.spdx]} {
|
|
file delete ${destroot}${qt6.dir}/sbom/qsqlitedriverplugins-${version}.spdx
|
|
}
|
|
}
|
|
notes "${destroot}${qt6.dir}/sbom/qsqlitedriverplugins-${version}.spdx"
|
|
}
|
|
}
|
|
|
|
###############################################################################
|
|
# Special Cases
|
|
###############################################################################
|
|
subport ${name}-qttools {
|
|
configure.env-append LLVM_INSTALL_DIR=${prefix}/libexec/llvm-${llvm_version}
|
|
|
|
post-destroot {
|
|
# avoid having to add `-Wl,-rpath ${prefix}/libexec/llvm-${llvm_version}/lib` or something like it
|
|
foreach bin {lupdate qdoc} {
|
|
foreach lib {libclang.dylib libclang-cpp.dylib libLLVM.dylib} {
|
|
system "install_name_tool -change @rpath/${lib} ${prefix}/libexec/llvm-${llvm_version}/lib/${lib} ${destroot}${qt6.dir}/bin/${bin}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if { ${subport} in [list "${name}-qtwebengine" "${name}-qtwebengine-docs"] } {
|
|
compiler.cxx_standard 2020
|
|
configure.env-append PYTHON3_PATH=${prefix}/Library/Frameworks/Python.framework/Versions/${python_branch}/bin
|
|
# in ${worksrcpath}, `${qt6.dir}/bin/qt-configure-module . -help` and `${qt6.dir}/bin/qt-configure-module . -list-features`
|
|
# it is not clear why, but icu and ffmpeg support must be added manually
|
|
# native-spellchecker support is off by default
|
|
# support for proprietary codecs could by added via `-webengine-proprietary-codecs`
|
|
configure.args-append -webengine-icu \
|
|
-webengine-ffmpeg \
|
|
-webengine-native-spellchecker
|
|
|
|
# avoid
|
|
# xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer
|
|
# directory '/Library/Developer/CommandLineTools' is a command line tools
|
|
# instance
|
|
use_xcode yes
|
|
}
|
|
|
|
subport ${name}-qtwebengine {
|
|
# manually install icudtl.dat
|
|
post-destroot {
|
|
xinstall -m 0644 ${worksrcpath}/src/3rdparty/chromium/third_party/icu/common/icudtl.dat \
|
|
${destroot}${qt6.dir}/lib/QtWebEngineCore.framework/Resources/
|
|
}
|
|
}
|
|
|
|
subport ${name}-qtmultimedia {
|
|
# GStreamer will be found if gstreamer1 and gstreamer1-gst-plugins-base are installed
|
|
# however, an error will ensue since the GStreamer support requires "Linux DMA buffer support"
|
|
# see
|
|
# https://code.qt.io/cgit/qt/qtmultimedia.git/tree/src/plugins/multimedia/gstreamer/CMakeLists.txt
|
|
# https://code.qt.io/cgit/qt/qtmultimedia.git/tree/src/multimedia/configure.cmake
|
|
configure.args-append -no-gstreamer
|
|
|
|
configure.post_args-append -DFFMPEG_DIR=${prefix}/libexec/ffmpeg7 \
|
|
-DAVCODEC_INCLUDE_DIR=${prefix}/libexec/ffmpeg7/include \
|
|
-DAVCODEC_LIBRARY=${prefix}/libexec/ffmpeg7/lib/libavcodec.dylib \
|
|
-DAVFORMAT_INCLUDE_DIR=${prefix}/libexec/ffmpeg7/include \
|
|
-DAVFORMAT_LIBRARY=${prefix}/libexec/ffmpeg7/lib/libavformat.dylib \
|
|
-DAVUTIL_INCLUDE_DIR=${prefix}/libexec/ffmpeg7/include\
|
|
-DAVUTIL_LIBRARY=${prefix}/libexec/ffmpeg7/lib/libavutil.dylib
|
|
}
|
|
|
|
subport ${name}-qt5compat {
|
|
patchfiles-append patch-qt5compat-find_libs.diff
|
|
}
|
|
|
|
subport ${name}-qtspeech {
|
|
# ALSA is Linux only (https://www.alsa-project.org/wiki/Main_Page)
|
|
# Speech Dispatcher *might* be made to work on macOS (https://freebsoft.org/speechd)
|
|
configure.args-append -no-flite-alsa \
|
|
-no-speechd
|
|
}
|
|
|
|
if { ${subport} eq "${name}-qtbase" || ${subport} eq "${name}-qtbase-docs" } {
|
|
|
|
configure.pre_args-replace --prefix=${prefix} \
|
|
"-prefix ${qt6.dir}"
|
|
|
|
# configure options:
|
|
configure.args-append -shared \
|
|
-accessibility
|
|
|
|
# SQL Options
|
|
foreach driver {db2 ibase mysql oci odbc psql sqlite} {
|
|
configure.args-append -no-sql-${driver}
|
|
}
|
|
|
|
# use -Oz instead of -O2
|
|
configure.args-append -optimize-size
|
|
|
|
configure.args-append -pkg-config
|
|
|
|
# Third Party Libraries:
|
|
configure.args-append -system-zlib \
|
|
-no-mtdev \
|
|
-no-journald \
|
|
-no-syslog \
|
|
-system-libpng \
|
|
-system-libjpeg \
|
|
-system-freetype \
|
|
-system-harfbuzz \
|
|
-system-pcre \
|
|
-no-openssl \
|
|
-no-libproxy \
|
|
-glib \
|
|
-no-gtk
|
|
|
|
# additional options:
|
|
configure.args-append {-make tools} \
|
|
{-nomake examples} \
|
|
{-nomake tests} \
|
|
-gui \
|
|
-widgets \
|
|
-cups \
|
|
-no-evdev \
|
|
-no-tslib \
|
|
-icu \
|
|
-no-fontconfig \
|
|
-no-pch \
|
|
-no-ltcg \
|
|
-dbus-linked \
|
|
-no-use-gold-linker \
|
|
-no-separate-debug-info \
|
|
-no-xcb \
|
|
-no-eglfs \
|
|
-no-gbm \
|
|
-no-directfb \
|
|
-no-linuxfb \
|
|
-no-kms \
|
|
-no-libinput \
|
|
-no-system-proxies \
|
|
-no-libudev \
|
|
-no-egl
|
|
|
|
# macOS/iOS options:
|
|
configure.args-append -framework \
|
|
-securetransport
|
|
|
|
# do not opportunistically enable Vulkan support
|
|
# (TODO: is Vulkan support desirable?)
|
|
# see https://trac.macports.org/ticket/62104
|
|
configure.args-append -no-feature-vulkan
|
|
|
|
# attempt to avoid @rpath
|
|
configure.args-append -no-rpath \
|
|
-no-feature-relocatable
|
|
}
|
|
|
|
subport ${name}-qtbase {
|
|
# this subport uses configure script
|
|
PortGroup openssl 1.0
|
|
|
|
build.cmd ninja
|
|
build.post_args-append -v
|
|
destroot.target install
|
|
|
|
variant tests description {Enable tests} {
|
|
configure.args-replace {-nomake tests} \
|
|
{-make tests}
|
|
}
|
|
|
|
variant examples description {Build examples} {
|
|
configure.args-replace {-nomake examples} \
|
|
{-make examples}
|
|
}
|
|
|
|
variant debug description {Build both release and debug libraries} {
|
|
configure.args-replace -release \
|
|
-debug-and-release
|
|
}
|
|
|
|
variant openssl description {Use OpenSSL instead of Secure Transport} {
|
|
configure.args-delete -securetransport \
|
|
-no-openssl
|
|
configure.args-append -openssl-linked
|
|
|
|
# configure has issues locating openssl files
|
|
configure.pre_args-append -DOPENSSL_ROOT_DIR=[openssl::install_area] \
|
|
-DOPENSSL_INCLUDE_DIR=[openssl::include_dir] \
|
|
-DOPENSSL_LIBRARIES=[openssl::install_area]/lib \
|
|
-DOPENSSL_LIBS='-L[openssl::install_area]/lib -lssl -lcrypto'
|
|
}
|
|
default_variants-append +openssl
|
|
|
|
post-destroot {
|
|
# do not record __qt_initial_c_compiler and __qt_initial_cxx_compiler
|
|
reinplace "s|${configure.cc}|/usr/bin/clang|g" \
|
|
${destroot}${qt6.dir}/lib/cmake/Qt6/qt.toolchain.cmake
|
|
reinplace "s|${configure.cxx}|/usr/bin/clang++|g" \
|
|
${destroot}${qt6.dir}/lib/cmake/Qt6/qt.toolchain.cmake
|
|
|
|
# return to default value of CMAKE_OSX_DEPLOYMENT_TARGET
|
|
#reinplace "s|CMAKE_OSX_DEPLOYMENT_TARGET \"${macosx_deployment_target}\"|CMAKE_OSX_DEPLOYMENT_TARGET \"10.14\"|g" \
|
|
# ${destroot}${qt6.dir}/lib/cmake/Qt6/qt.toolchain.cmake
|
|
|
|
# do not record QT_SOURCE_TREE
|
|
reinplace "s|${worksrcpath}|${qt6.dir}/src|g" \
|
|
${destroot}${qt6.dir}/lib/cmake/Qt6BuildInternals/QtBuildInternalsExtra.cmake
|
|
|
|
# do not record original_cmake_path
|
|
reinplace "s|${prefix}/bin/cmake|/Applications/CMake.app/Contents/bin/cmake|g" \
|
|
${destroot}${qt6.dir}/bin/qt-cmake
|
|
reinplace "s|${prefix}/bin/cmake|/Applications/CMake.app/Contents/bin/cmake|g" \
|
|
${destroot}${qt6.dir}/bin/qt-cmake-create
|
|
|
|
if { "${qt6.dir}" ne "${prefix}" } {
|
|
# Add dummy cmake find modules that forward to the real ones
|
|
file mkdir "${destroot}${prefix}/lib/cmake/Qt6"
|
|
foreach configfile [list "Qt6Config.cmake" "Qt6ConfigVersion.cmake"] {
|
|
set fd [open "${destroot}${prefix}/lib/cmake/Qt6/${configfile}" "w"]
|
|
puts $fd "set(_PREFIX_PATH_BAK \${CMAKE_PREFIX_PATH})"
|
|
puts $fd "list(APPEND CMAKE_PREFIX_PATH \"${qt6.dir}\")"
|
|
puts $fd "include(\"${qt6.dir}/lib/cmake/Qt6/${configfile}\")"
|
|
puts $fd "set(CMAKE_PREFIX_PATH \${_PREFIX_PATH_BAK})"
|
|
close $fd
|
|
}
|
|
}
|
|
}
|
|
|
|
# Qt builds part of the system using environment provided by MacPorts.
|
|
# It builds the rest using its own internal environment.
|
|
# For consistency, clear MacPorts environment.
|
|
configure.cxx_stdlib
|
|
proc portconfigure::should_add_stdlib {} { return false }
|
|
configure.sdkroot
|
|
configure.cc_archflags
|
|
configure.cxx_archflags
|
|
configure.objc_archflags
|
|
configure.objcxx_archflags
|
|
configure.ld_archflags
|
|
configure.cppflags
|
|
configure.cflags
|
|
configure.cxxflags
|
|
configure.objcflags
|
|
configure.objcxxflags
|
|
configure.ldflags
|
|
configure.pipe no
|
|
configure.march
|
|
configure.mtune
|
|
configure.universal_ldflags
|
|
configure.universal_cflags
|
|
configure.universal_cxxflags
|
|
configure.universal_cppflags
|
|
}
|
|
|
|
subport ${name}-qtbase-docs {
|
|
# see https://wiki.qt.io/Building_Qt_Documentation
|
|
build.cmd cmake --build ${build.dir}
|
|
destroot.target
|
|
build.target --target docs
|
|
destroot.cmd cmake --build ${build.dir} --target install_docs
|
|
}
|
|
|
|
###############################################################################
|
|
# Applies to allmost all modules
|
|
###############################################################################
|
|
if { ${subport} ne "${name}" && ${subport} ne "${name}-qtbase" && ${subport} ne "${name}-qtbase-docs" } {
|
|
# attempting to match module configure instructions from here: https://www.qt.io/blog/qt-6-build-system
|
|
configure.cmd ${qt6.dir}/bin/qt-configure-module
|
|
configure.dir ${workpath}/build
|
|
configure.pre_args ${worksrcpath}
|
|
configure.args-append -verbose
|
|
|
|
build.dir ${workpath}/build
|
|
build.cmd cmake --build ${build.dir}
|
|
|
|
destroot.target
|
|
|
|
if { [lindex [split ${subport} -] end] ne "docs" } {
|
|
build.target
|
|
destroot.cmd cmake --install ${build.dir}
|
|
} else {
|
|
build.target --target docs
|
|
destroot.cmd cmake --build ${build.dir} --target install_docs
|
|
}
|
|
|
|
if { [variant_exists examples] } {
|
|
configure.post_args-append -DQT_BUILD_EXAMPLES=[expr {[variant_isset examples] ? ON : OFF}]
|
|
}
|
|
if { [variant_exists tests] } {
|
|
configure.post_args-append -DQT_BUILD_TESTS=[expr {[variant_isset tests] ? ON : OFF}]
|
|
}
|
|
}
|
|
|
|
###############################################################################
|
|
# Applies to all subports except ${name}
|
|
# this code may depend on the subport specific code (e.g., configure.cc)
|
|
###############################################################################
|
|
depends_build-append path:bin/cmake:cmake \
|
|
port:ninja \
|
|
port:pkgconfig
|
|
|
|
# because CPATH is set, pkgconfig does not include ${prefix}/lib and ${prefix}/include even when requested
|
|
# this means that files in ${prefix}/lib and ${prefix}/include are the *last* to be found
|
|
# this causes problems when there are files in ${worksrpath} that are unintentionally found instead
|
|
configure.env-append PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
|
|
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
|
|
build.env-append PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
|
|
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
|
|
|
|
configure.universal_args
|
|
|
|
test.cmd ctest
|
|
test.args -V
|
|
test.target
|
|
|
|
# ninja needs the DESTDIR argument in the environment
|
|
destroot.destdir
|
|
destroot.env-append DESTDIR=${destroot}
|
|
|
|
# set CMake variables (similar to what cmake PortGroup does)
|
|
# to allow using ccache and controlling compiler selection
|
|
configure.post_args-prepend --
|
|
configure.post_args-append -DCMAKE_C_COMPILER=[option configure.cc] \
|
|
-DCMAKE_CXX_COMPILER=[option configure.cxx] \
|
|
-DCMAKE_OBJC_COMPILER=[option configure.objc] \
|
|
-DCMAKE_OBJCXX_COMPILER=[option configure.objcxx] \
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=${macosx_deployment_target}
|
|
if { ${configure.ccache} } {
|
|
if { ${subport} ne "${name}-qtbase" } {
|
|
configure.post_args-append -DQT_USE_CCACHE=ON
|
|
} else {
|
|
# do not use `configure.args-append -ccache`
|
|
# or `configure.post_args-append -DQT_USE_CCACHE=1`
|
|
# since that affects installed files.
|
|
configure.post_args-append -DCMAKE_C_COMPILER_LAUNCHER=${prefix}/bin/ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=${prefix}/bin/ccache \
|
|
-DCMAKE_OBJC_COMPILER_LAUNCHER=${prefix}/bin/ccache \
|
|
-DCMAKE_OBJCXX_COMPILER_LAUNCHER=${prefix}/bin/ccache
|
|
}
|
|
}
|
|
|
|
test.run [expr {[variant_exists tests] && [variant_isset tests] ? yes : no}]
|
|
|
|
if { ${universal_possible} && [variant_isset universal] } {
|
|
configure.post_args-append -DCMAKE_OSX_ARCHITECTURES="[join ${configure.universal_archs} \;]"
|
|
} elseif { ${configure.build_arch} ne "" } {
|
|
configure.post_args-append -DCMAKE_OSX_ARCHITECTURES="${configure.build_arch}"
|
|
}
|
|
|
|
# attempt to avoid @rpath
|
|
configure.post_args-append -DCMAKE_INSTALL_NAME_DIR=${qt6.dir}/lib
|
|
|
|
post-destroot {
|
|
fs-traverse f ${destroot} {
|
|
if { [file isfile ${f}] && [file extension ${f}] eq ".prl" } {
|
|
# do not record build directory
|
|
reinplace -q "/^QMAKE_PRL_BUILD_DIR = /d" \
|
|
${f}
|
|
}
|
|
}
|
|
|
|
# .app and non-.app programs are both put in ${qt6.dir}/bin
|
|
# put a link of any .app programs in the ${applications_dir}/Qt6
|
|
xinstall -d -m 0755 ${destroot}${applications_dir}/Qt6
|
|
foreach app [glob -nocomplain -tails -directory ${destroot}${qt6.dir}/bin *.app] {
|
|
ln -s ${qt6.dir}/bin/${app} \
|
|
${destroot}${applications_dir}/Qt6
|
|
}
|
|
}
|
|
|
|
livecheck.type none
|
|
|
|
###############################################################################
|
|
# Special Case: must be near the end since it undoes other code
|
|
###############################################################################
|
|
subport ${name} {
|
|
# the main port is Meta-port to install various modules
|
|
revision 0
|
|
|
|
description Qt Tool Kit ${qt_major}
|
|
long_description Qt Tool Kit: A cross-platform framework \
|
|
(headers, data, and libraries) for writing \
|
|
cross-platform GUI-based applications.
|
|
|
|
master_sites
|
|
distfiles
|
|
use_configure no
|
|
supported_archs noarch
|
|
platforms any
|
|
installs_libs no
|
|
test.run no
|
|
depends_extract
|
|
depends_build
|
|
depends_lib
|
|
depends_test
|
|
|
|
build {}
|
|
|
|
# create a dummy file so the port can be successfully activated
|
|
destroot {
|
|
xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${subport}
|
|
set docfile [open ${destroot}${prefix}/share/doc/${subport}/README.txt "w"]
|
|
puts ${docfile} "Meta-port for ${name}"
|
|
puts ${docfile} "${long_description}"
|
|
close ${docfile}
|
|
}
|
|
|
|
foreach {module module_info} [array get modules] {
|
|
if { [lindex ${module_info} 5] eq "" } {
|
|
depends_run-append port:${name}-${module}
|
|
}
|
|
}
|
|
depends_run-append port:${name}-sqlite-plugin
|
|
|
|
livecheck.type regex
|
|
livecheck.url https://download.qt.io/archive/qt/${branch}/
|
|
livecheck.regex (\\d+(\\.\\d+)\\.\\d+)
|
|
}
|