/
Portfile
executable file
·1939 lines (1723 loc) · 67.1 KB
/
Portfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# -*- 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
name qt513
categories aqua
platforms macosx
maintainers {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
# for OpenSSLException, see source and header files in src/network/ssl of qtbase
license {LGPL-3 GPL-3 OpenSSLException}
homepage https://www.qt.io
version 5.13.2
set middle_name everywhere
if { ${subport} eq "${name}-qtwebkit" ||
${subport} eq "${name}-qtwebkit-examples" ||
${subport} eq "${name}-qtwebkit-docs" } {
version 5.9.1
set middle_name opensource
}
# https://trac.macports.org/ticket/63154
if { ${xcodeversion} ne "none" } {
use_xcode yes
}
set just_want_qt5_variables yes
PortGroup qt5 1.0
unset just_want_qt5_variables
# get Qt's version numbers
set branch [join [lrange [split ${version} .] 0 1] .]
set qt_major [lindex [split ${version} .] 0]
# see https://wiki.qt.io/New_Features_in_Qt_5.7
compiler.cxx_standard 2011
master_sites \
https://download.qt.io/official_releases/qt/${branch}/${version}/submodules
# see https://trac.macports.org/ticket/53952
dist_subdir qt5
# file sizes are significantly smaller using xz
if { ${subport} ne ${name} && ${subport} ne "${name}-docs" } {
use_xz yes
}
conflicts qt3 qt3-mac
# conflict with all other version of qt5
foreach {qt_test_name qt_test_info} [array get available_qt_versions] {
if {${name} ne ${qt_test_name}} {
conflicts-append [lindex ${qt_test_info} 0]
}
}
# qt513-qtbase replaces qt5-qtbase, so can not conflict
if { ${os.major} == 16 } {
conflicts-delete qt5-qtbase
}
############################################################################### Modules Not Considered
#
# No qtactiveqt (Windows Only)
# No qtandroidextras (Android Only)
# No qtwayland (Linux Only)
# No qtx11extras (X11 Only)
# No qtwinextras (Windows Only)
#
###############################################################################
############################################################################### Finding Dependencies
#
# grep -r "%dependencies" *
# find ./ -name sync.profile
#
# grep -r qtCompileTest *
#
# find ./ -name config.tests
#
# find ./ -name Find\*.cmake
#
# grep -r qtHaveModule *
#
# grep -r packagesExist *
#
# port provides `find ./ -name \*.dylib -exec otool -L {} \; | grep /opt/local/libexec/qt5 | cut -d ' ' -f1` | cut -d : -f2 | sort -u
# port provides `find ./ -name \*.dylib -exec otool -L {} \; | grep /opt/local/lib/ | cut -d ' ' -f1` | cut -d : -f2 | sort -u
#
# https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules?h=5.13
#
###############################################################################
############################################################################### Notes
#
# qtconnectivity checks for bluetooth libraries
# bluez and bluez_le (Linux Only)
#
# qtconnectivity depends on
# qtandroidextras (Android Only)
#
# qtserialport depends on
# ntddmodm (Windows Only)
#
# qttools depends on
# qtactiveqt (Windows Only)
#
# qtwebkit has tests for libraries in:
# Tools/qmake/mkspecs/features/configure.prf
# Tools/qmake/config.tests/
#
###############################################################################
############################################################################### TODO
#
# TODO: possible to trim dependencies of qtbase?
#
###############################################################################
############################################################################### 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-5.13/qtmodules.html
#
###############################################################################
array set modules {
qt3d {
{
44ace68d9969a6aa2f7996383fc6950f56fe462d
d1b9fc0be82264b5f76c3a5330901dff95c1f2bcb67916c3fac6bad4ff69adc9
81537856
}
""
"port:assimp"
"qtbase qtdeclarative qtimageformats qtgamepad"
{"Qt 3D"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtbase {
{
94749bf68e78cf3e3fa84a8df73910b501869293
26b6b686d66a7ad28eaca349e55e2894e5a735f3831e45f2049e93b1daa92121
48735704
}
""
"port:zlib port:libpng path:include/turbojpeg.h:libjpeg-turbo port:freetype path:bin/dbus-daemon:dbus path:lib/pkgconfig/glib-2.0.pc:glib2 port:icu port:pcre2 path:lib/pkgconfig/harfbuzz.pc:harfbuzz port:double-conversion"
""
{"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 6"
"License: "
}
qtcharts {
{
37bc5548361ff55cefcc472e9eddd25826119992
3bad81c3cfb32cf72fb0ce2ac2794d031cf78a3902b4715f89c09b2d0e041e87
4244092
}
""
""
"qtbase qtdeclarative qtmultimedia"
{"Qt Charts"}
"GPLv3 license only"
"variant overrides: "
"revision 0"
"License: {GPL-3 OpenSSLException}"
}
qtconnectivity {
{
5001272b8ba4bf8ca0699a71a160bf99808dcc51
644e234eb64f602ef5cdeb8802ef9b58e75478f1124f001937275d62ed692e17
2777504
}
""
""
"qtbase qtdeclarative"
{"Qt Bluetooth" "Qt NFC"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtdatavis3d {
{
f9b6d842aed45aa64a51edd39721e7a76332f52c
ecf934c3eb07173505781734f95cfc2cf9d89e6b1b98516ac98a137797f4ef28
5182216
}
""
""
"qtbase qtdeclarative qtmultimedia"
{"Qt Data Visualization"}
"GPLv3 license only"
"variant overrides: "
"revision 0"
"License: {GPL-3 OpenSSLException}"
}
qtdeclarative {
{
0ffe0f6c54cfb6ae8d05b9d1023a2b29bcf62c25
d9a524f45fe9e136cda2252f9d7013ec17046d907e3f39606db920987c22d1fd
20940748
}
"port:python27"
""
"qtbase qtsvg"
{"Qt QML" "Qt Quick" "Qt Quick Layouts" "Qt Quick Widgets"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtdoc {
{
c15972fa405ae8f8cd2dfb77b442168a863de15a
be09543143d5dca984d2c2d9085751317e7a95b78fdbe9b6a30f2faa03543e46
5747084
}
""
""
"qtdeclarative qttools qtmultimedia qtquickcontrols qtquickcontrols2 sqlite-plugin"
{"Qt Reference Documentation"}
"requires all documentation"
"variant overrides: ~examples ~tests ~debug noarch ~docs"
"revision 0"
"License: "
}
qtgamepad {
{
7323d110e3090bc189c0b5a05d5737514dc2f4c2
75164885433e36a90b557aa7f319ff3d6278c3616469f67b42dda6eb8b92e76e
386668
}
""
"port:libsdl2"
"qtbase qtdeclarative"
{"Qt Gamepad"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtgraphicaleffects {
{
5740edaf153498882157449602c74171937a58ab
297a89bb6c771f849c4ce866e5c98dadf665163b3dab03bc48a58f51424e7e66
14845928
}
""
""
"qtdeclarative"
{"Qt Graphical Effects"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtimageformats {
{
b9118a89a786418f8227981674a3d1ce80b62713
6968649fdccc7d633cf9ada25f1bdaf0a2fb45a214d58c2c47896166d4553ac0
1803796
}
""
"path:lib/pkgconfig/jasper.pc:jasper port:libmng port:tiff port:webp"
"qtbase"
{"Qt Image Formats"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtlocation {
{
69484f3b23039dfc94a52ef9adac79ade1e1afbb
5fe4b824d3dc6c800682ff986333ec09edb9c27582066e928b1862b4d58212e3
6050044
}
""
"port:icu port:zlib"
"qtbase qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport"
{"Qt Location" "Qt Positioning"}
""
"variant overrides: "
"revision 1"
"License: "
}
qtlottie {
{
be5e31c30b35d25841c8da4ac3f69884d7779ec5
af9a10aaa110767ffd88e02cb8ad0a3930ccfeb61f0c125afbf3791136d36253
82052
}
""
""
"qtbase qtdeclarative"
{"A QML API for rendering graphics and animations in JSON format"}
"technology preview module"
"variant overrides: "
"revision 0"
"License: {GPL-3 OpenSSLException}"
}
qtmacextras {
{
b816c248bca3a3576dde2a79f1f124e9e9059694
545ede0783ebc2405c6efa6ed0b2b7147a1d7e60eb7fcb853abfca0a9cb65ed5
69164
}
""
""
"qtbase"
{"Qt Mac Extras"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtmultimedia {
{
6b6f99e01c307b260bb1c8d906a27e67e1c81e7b
5f885459d46ea2f2bb24597678befd4913d8f88029730d01984f51f9c367b9f4
3820660
}
""
""
"qtbase qtdeclarative"
{"Qt Multimedia" "Qt Multimedia Widgets"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtnetworkauth {
{
95b35ac7e7d619c71056e5961bbb71de414026c7
6326943e5c1a3e6eac8dcc44d088f1a3d1c45d14100ff1e95f833b0463243af3
141172
}
""
""
"qtbase"
{"Qt Network Authorization"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtpurchasing {
{
e4fcdeecfaa2ea185557dd76cd83b7329c74dadc
e9ef800b7d79f660c72f7024f82a2915b1111b47417f93c3dc2354b9bf307ff4
208096
}
""
""
"qtbase qtdeclarative"
{"Qt Purchasing"}
"in-app purchases is of limited value on desktop"
"variant overrides: "
"revision 0"
"License: {GPL-3 OpenSSLException}"
}
qtquickcontrols {
{
5c4fa9e83cede4e873c23172502a36d22936062e
d6e64d8db13ada55fcb0d5e8ca26097085680087d931435c6c6db859d87493ea
5955448
}
""
""
"qtdeclarative qtgraphicaleffects"
{"Qt Quick Controls" "Qt Quick Dialogs" "Qt Quick Extras"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtquickcontrols2 {
{
75863e6ec38e4e5319efc3a8c4fccfcceeabddf6
90ee8be7b66cc65f3f22e71a0b35adab5c169ac4f8ebc6f9e7685228bf8a7d70
9252912
}
""
""
"qtgraphicaleffects qtimageformats"
{"Qt Quick Controls 2"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtremoteobjects {
{
20097626c8ea2d6cf8de9b318e45bd716f597869
bd24db9d2bb08ae7955291af52ee7510aa193d0f72ed0e3ff74f7cf7e81f4d65
367032
}
""
""
"qtbase qtdeclarative"
{"Qt Remote Objects"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtscript {
{
71e26d3b2ce11bfa51d0748ff2e73983e33c26f3
3d92691c25577fbf7511d40253de0cd9d31444ea5a0aa860f65efb9fa0f3ce70
2696452
}
""
""
"qtbase"
{"Qt Script" "Qt Script Tools"}
"deprecated in favor QJS* in Qt QML"
"variant overrides: "
"revision 0"
"License: "
}
qtscxml {
{
a77625982d484e0ca8a43f986522788f769318f0
e489dff21e18c1e7f72ffd31af82404f845bd90824c6b978140591366398a9d9
435428
}
""
""
"qtbase qtdeclarative"
{"Qt SCXML"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtsensors {
{
8e722c909dfdf14df32fbe93e4ec8d227cf13297
46f73bbfddfd78a419c6424d6839318774b84c955a7f7a96c12c590f6d8fb177
2046708
}
""
""
"qtbase qtdeclarative"
{"Qt Sensors"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtserialbus {
{
2ff0ed6d010569251cfa0937c74bf7bbf28c1bc4
48159393b1368976b5324eac48424e2a6e5d63c783194d0576a978151f882da3
338428
}
""
""
"qtserialport"
{"Qt Serial Bus"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtserialport {
{
7238c5988a02b6ea2c9d2e01e37614fe362c7e38
7677ffc1dce3b75c0a98d07d215588a8dccb5c276c55b4ecd60c35ed1c89cb34
310736
}
""
""
"qtbase"
{"Qt Serial Port"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtspeech {
{
8f41ce8fec774203e5bbf9ef59748d3ae3d42239
a0aca08feeac6925ead7f841319bdcfd60bfc126de07807edaf267c2ca8d13d5
100312
}
""
""
"qtbase qtdeclarative qtmultimedia"
{"Qt Speech"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtsvg {
{
8bc01bd283fe156a09e594ee432c30ee74ce8ab6
849e2e357e1333b64ecb728352f652cd8d916f029ed848f775b15d0b500cb7d7
1890380
}
""
""
"qtbase"
{"Qt SVG"}
""
"variant overrides: "
"revision 0"
"License: "
}
qttools {
{
a5b422b534c00437a9adb1cfe4ccb7afd2e8854a
919a2713b6d2d7873a09ad85bd93cf4282606e5bf84d5884250f665a253ec06e
9110256
}
""
"port:clang-9.0"
"qtbase qtdeclarative"
{"Qt Designer" "Qt Help" "Qt UI Tools"}
""
"variant overrides: "
"revision 0"
"License: "
}
qttranslations {
{
4bd7a4da9034603ec6de5f72aca2e3188720f876
25755941a2525de2d7ae48e0011d04db7cc09e4e73fe83293206ceafa0aa82d9
1365880
}
""
""
"qttools"
{"translation files"}
""
"variant overrides: ~examples ~tests ~debug noarch ~docs"
"revision 0"
"License: "
}
qtvirtualkeyboard {
{
abd0f990c262ac13e7f0e0ad9cc372f9878437d8
8e368dde237d21666f6cc8512a060e205388e519a4d7559c0505cc75224ed62b
10923292
}
""
"port:hunspell"
"qtbase qtdeclarative qtsvg qtmultimedia qtquickcontrols"
{"Qt Virtual Keyboard"}
"GPLv3 license only"
"variant overrides: "
"revision 0"
"License: {GPL-3 OpenSSLException}"
}
qtwebchannel {
{
624790b4ce487ff62e5ca4db2bdf94aa4f7638bc
f452d419d8b19b566835f316bbf282dabc8b1c2a74c9c98c1aec4184465e9c13
192652
}
""
""
"qtbase qtdeclarative qtwebsockets"
{"Qt WebChannel"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtwebengine {
{
db36dd8fade1ea196e273304855292df46e3f24e
adcf56b5de6f34744bba2307b696fc75611884f4270e87dfa760d6e99dd711bb
255593964
}
"port:python27 port:py27-ply path:bin/ninja:ninja port:gperf port:bison port:flex"
"port:fontconfig port:dbus path:lib/pkgconfig/harfbuzz.pc:harfbuzz path:lib/pkgconfig/glib-2.0.pc:glib2 port:zlib port:minizip port:libevent port:libxml2 port:jsoncpp port:protobuf3-cpp path:lib/pkgconfig/poppler.pc:poppler port:pulseaudio port:icu path:lib/libavcodec.dylib:ffmpeg port:libopus port:webp port:libpng port:lcms2 port:freetype port:re2 port:snappy"
"qtdeclarative qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools"
{"Qt WebEngine"}
"very large and relatively new"
"variant overrides: "
"revision 2"
"License: "
}
qtwebglplugin {
{
95daeefa4fe3b98994dcc0218efb6180e472e7ac
ae369929d5a3356391bccd25cac22846dc44cbb726ce7b60924f53944addabb7
73608
}
""
""
"qtbase qtwebsockets qtdeclarative"
{"QPA plugin for running an application via a browser using streamed WebGL commands"}
"technology preview module; GPLv3 license only"
"variant overrides: ~docs ~examples"
"revision 0"
"License: {GPL-3 OpenSSLException}"
}
qtwebkit {
{
72cab2a8473801dcbbe8fc41ecf8dc45775f8b18
28a560becd800a4229bfac317c2e5407cd3cc95308bc4c3ca90dba2577b052cf
35300628
}
"port:python27"
"port:fontconfig port:icu port:leveldb port:webp port:libxml2 port:libxslt port:zlib port:sqlite3"
"qtbase qtdeclarative qtlocation qtmultimedia qtsensors qtwebchannel qtxmlpatterns"
{"Qt WebKit" "Qt WebKit Widgets"}
"community support only (use Qt WebEngine)"
"variant overrides: "
"revision 1"
"License: "
}
qtwebkit-examples {
{
21e9ec7d6b6ebe0e96dde0f59324a814b57048bc
e4ce4de6b468243abad2baabbe8ddfb05d25b186529bfe88cb8662fc983f54d0
3426504
}
""
""
"qtwebkit qtdeclarative qtlocation qttools qtwebchannel qtwebengine"
{"examples for Qt WebKit"}
"community support only (use Qt WebEngine)"
"variant overrides: ++examples ~docs "
"revision 0"
"License: "
}
qtwebsockets {
{
985bd55daed9c4f99af165986379a40532e477fc
fc11236c8bf69b27a4e237a27b9ea27fc90d8c25d81d1d451ce3a0b63cbc02d3
244668
}
""
""
"qtbase qtdeclarative"
{"Qt WebSockets"}
""
"variant overrides: "
"revision 0"
"License: "
}
qtwebview {
{
44df0e0dc744c1018529a5c9b4ac88689e81949c
394cc7a9cb29b7883816ff3137b022f30568151aada0739fc99a23789c21c015
131168
}
""
""
"qtdeclarative qtwebengine"
{"Qt WebView"}
"new in 5.6.0; requires qtwebengine"
"variant overrides: "
"revision 0"
"License: "
}
qtxmlpatterns {
{
d0be90cf4c12d789731b5a1cbdb86992c0b811ad
1e87d8c004ec0beea3b29d13f0964c563aa9fae51c392c998750ca4e386374e2
1392192
}
""
""
"qtbase qtdeclarative"
{"Qt XML Patterns"}
""
"variant overrides: "
"revision 0"
"License: "
}
}
############################################################################### SQL Plugin Format
#
# {
# variant name
# dependency, library
# include directory
# library directory
# library name
# obsolete? (empty string is no)
# }
#
###############################################################################
array set sql_plugins {
{sqlite SQLite "revision 0"} {
{
"sqlite3"
"port:sqlite3"
"${prefix}/include"
"${prefix}/lib"
"-lsqlite3"
""
}
}
{psql PostgreSQL "revision 0"} {
{
"postgresql96"
"port:postgresql96"
"${prefix}/include/postgresql96"
"${prefix}/lib/postgresql96"
"-lpq"
""
}
{
"postgresql95"
"port:postgresql95"
"${prefix}/include/postgresql95"
"${prefix}/lib/postgresql95"
"-lpq"
""
}
{
"postgresql94"
"port:postgresql94"
"${prefix}/include/postgresql94"
"${prefix}/lib/postgresql94"
"-lpq"
""
}
{
"postgresql84"
"port:postgresql84"
"${prefix}/include/postgresql84"
"${prefix}/lib/postgresql84"
"-lpq"
""
}
}
{mysql MySQL "revision 0"} {
{
"mariadb55"
"port:mariadb"
"${prefix}/include/mariadb/mysql"
"${prefix}/lib/mariadb/mysql"
"-lmysqlclient_r"
""
}
{
"mysql57"
"port:mysql57"
"${prefix}/include/mysql57/mysql"
"${prefix}/lib/mysql57/mysql"
"-lmysqlclient_r"
""
}
{
"mysql56"
"port:mysql56"
"${prefix}/include/mysql56/mysql"
"${prefix}/lib/mysql56/mysql"
"-lmysqlclient_r"
""
}
}
}
# 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
if { ${os.major} < 16 } {
known_fail yes
pre-fetch {
ui_error "${subport} requires macOS 10.12 or later"
return -code error "incompatible OS version"
}
}
foreach {module module_info} [array get modules] {
set revision_string [string trim [lindex ${module_info} 7]]
set revision_string [string range ${revision_string} 1+[string last " " ${revision_string}] end]
subport ${name}-${module} {
distname ${module}-${middle_name}-src-${version}
revision ${revision_string}
# see https://bugreports.qt.io/browse/QTBUG-35514
build.target
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] {
if { ${qtdeps} ne "qtbase" } {
depends_lib-append port:${name}-${qtdeps}
}
}
if {${os.platform} eq "darwin" && ${os.major} >= 20 && (${module} eq "qtbase" || "qtbase" in [lindex ${module_info} 3])} {
# Fails to find a working compiler and SDK
known_fail yes
depends_lib
depends_build
pre-fetch {
ui_error "${subport} currently does not build on macOS 11 or later"
return -code error "incompatible OS version"
}
}
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 { ${module} eq "qtbase" } {
# this subport uses configure script (NOT qmake)
PortGroup qt5 1.0
PortGroup developerversion 1.0
if { ${os.platform} ne "darwin" } {
pre-fetch {
ui_warn "${subport} is untested on \"${os.platform}\"."
}
}
if { [variant_isset universal] } {
pre-fetch {
ui_warn "Multiple architectures is not a Reference Configuration for Qt."
ui_warn "See https://doc.qt.io/qt-5/supported-platforms.html#reference-configurations"
}
}
# see https://trac.macports.org/ticket/59315
minimum_developerversions 16 9
# Neither "pkg-config --cflags Qt5Core" nor "pkg-config --cflags-only-I Qt5Core" will allow
# a configure script to find CPPFLAGS since the include mechanism relies on
# -F and -framework BOTH being set
# See e.g. octave
# See the files mkspecs/features/qt_module.prf and qmake/generators/makefile.cpp
patchfiles-append patch-pc_files.diff
# see https://trac.macports.org/ticket/63805#comment:13
patchfiles-append patch-sdk-no-stderr.diff
# find the Rez program
patchfiles-append patch-find_rez.diff
post-patch {
reinplace \
"s|__MACPORTS_Rez__|[exec -ignorestderr xcrun --find Rez]|g" \
mkspecs/common/mac.conf \
mkspecs/features/mac/rez.prf
}
#-----------------------------------------------------------------------------
# qtbase is used for:
# 1) building qtbase
# 2) building MacPorts projects via qmake
# 3) building end-user projects
#
# 1 & 2 require consistency with the MacPorts environment
# 3 requires consistency with the default Qt installation
#
# 2 can be achieved via environment variables
# (e.g. QMAKE_MACOSX_DEPLOYMENT_TARGET=${macosx_deployment_target})
#
# the only way 3 can be achieved is if no changes are made to the build system
#
# the following is an attempt to achieve 1 without destroying 3
#-----------------------------------------------------------------------------
# save default spec files
post-extract {
copy ${worksrcpath}/mkspecs ${worksrcpath}/mkspecs-save
}
# ensure qmake builds for the correct architecture
patchfiles-append patch-qmake_flags.diff
post-patch {
if {[variant_exists universal] && [variant_isset universal]} {
set arch_replace_cxx [portconfigure::configure_get_universal_archflags]
set arch_replace_ld [portconfigure::configure_get_universal_archflags]
} else {
set arch_replace_cxx [portconfigure::configure_get_archflags cxx]
set arch_replace_ld [portconfigure::configure_get_ld_archflags]
}
reinplace \
"s|__MACPORTS_CXX_ARCH_FLAGS__|${arch_replace_cxx}|g" \
${worksrcpath}/qmake/Makefile.unix.macos
reinplace \
"s|__MACPORTS_LD_ARCH_FLAGS__|${arch_replace_ld}|g" \
${worksrcpath}/qmake/Makefile.unix.macos
}
# respect MacPorts build variables
patchfiles-append patch-mkspecs.diff
# respect configure.compiler
if { ${configure.compiler} eq "clang" } {
# let xargs find correct compiler (default behaviour)
post-patch {
# let xargs find correct compiler
reinplace \
"s|__MACPORTS_CC__|clang|g" \
${worksrcpath}/mkspecs/common/clang.conf
reinplace \
"s|__MACPORTS_CXX__|clang++|g" \
${worksrcpath}/mkspecs/common/clang.conf
}
} else {
post-patch {
reinplace \
"s|__MACPORTS_CC__|${configure.cc}|g" \
${worksrcpath}/mkspecs/common/clang.conf
reinplace \
"s|__MACPORTS_CXX__|${configure.cxx}|g" \
${worksrcpath}/mkspecs/common/clang.conf
}
}
if { [string match macports-clang-* ${configure.compiler}] && [vercmp ${xcodeversion} "7.0"] >= 0 } {
# non-Xcode clang does not seem to be able to understand tbd files
# for an explanation of tbd files, see
# https://stackoverflow.com/questions/31450690/why-xcode-7-shows-tbd-instead-of-dylib
# see https://trac.macports.org/ticket/53151
pre-fetch {
ui_error "This configuration is known to fail"
ui_error "See https://trac.macports.org/ticket/53151"
ui_error "As a workaround, do not set configure.compiler manually"
return -code error "incompatible configuration"
}
}
post-patch {
# respect configure.cxx_stdlib
reinplace \
"s|__MACPORTS_CXX_STDLIB__|${configure.cxx_stdlib}|g" \
${worksrcpath}/mkspecs/common/clang-mac.conf
# respect macosx_deployment_target
reinplace \
"s|__MACPORTS_DEPLOYMENT_TARGET__|${macosx_deployment_target}|g" \
${worksrcpath}/mkspecs/common/macx.conf