-
Notifications
You must be signed in to change notification settings - Fork 732
/
Makefile
147 lines (125 loc) · 4.82 KB
/
Makefile
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
PORTNAME= telegram-desktop
DISTVERSION= 4.14.0
CATEGORIES= net-im
MASTER_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/releases/download/v${DISTVERSION}/
DISTNAME= tdesktop-${DISTVERSION}-full
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= ports@FreeBSD.org
COMMENT= Telegram Desktop messaging app
WWW= https://desktop.telegram.org/
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_i386= does not build, webrtc related
BROKEN_SSL= openssl openssl31
BROKEN_SSL_REASON= undefined symbol: ERR_load_BIO_strings
NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe
NOT_FOR_ARCHS_REASON= Only little endian is supported
BUILD_DEPENDS= boost-libs>0:devel/boost-libs \
microsoft-gsl>0:devel/microsoft-gsl \
range-v3>0:devel/range-v3 \
tl-expected>0:devel/tl-expected \
v4l_compat>0:multimedia/v4l_compat \
yasm:devel/yasm \
${LOCALBASE}/lib/libtg_owt.a:net-im/tg_owt
LIB_DEPENDS= libabsl_base.so:devel/abseil \
libavformat.so:multimedia/ffmpeg \
libdbus-1.so:devel/dbus \
libdispatch.so:devel/libdispatch \
libfmt.so:devel/libfmt \
libhunspell-1.7.so:textproc/hunspell \
liblz4.so:archivers/liblz4 \
libopenh264.so:multimedia/openh264 \
libopus.so:audio/opus \
libpipewire-0.3.so:multimedia/pipewire \
libprotobuf.so:devel/protobuf \
libqrcodegencpp.so:graphics/qr-code-generator \
librnnoise.so:audio/rnnoise \
libxcb-keysyms.so:x11/xcb-util-keysyms \
libxkbcommon.so:x11/libxkbcommon \
libxxhash.so:devel/xxhash \
libvpx.so:multimedia/libvpx
FLAVORS= qt5 qt6
FLAVOR?= ${FLAVORS:[1]}
qt5_PKGNAMESUFFIX=
qt6_PKGNAMESUFFIX= -qt6
qt5_CONFLICTS_INSTALL= ${PORTNAME}-qt6
qt6_CONFLICTS_INSTALL= ${PORTNAME}
USES= cmake desktop-file-utils gl gnome jpeg localbase \
minizip openal pkgconfig python:build ssl xorg
USE_GITHUB= nodefault
GH_ACCOUNT= telegramdesktop
GH_PROJECT= tdesktop
.if ${FLAVOR} == qt5
USES+= kde:5 qt:5
USE_QT= buildtools:build core dbus declarative gui imageformats network qmake:build \
svg wayland widgets
USE_KDE= coreaddons kimageformats
.else
USES+= qt:6
USE_QT= 5compat base imageformats lottie shadertools svg tools:build wayland
.endif
USE_GL= gl
USE_GNOME= glib20 glibmm26 introspection
USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrandr xrender xtst
CMAKE_ARGS= -DTDESKTOP_API_ID=${TELEGRAM_API_ID} -DTDESKTOP_API_HASH=${TELEGRAM_API_HASH}
CMAKE_ON= DESKTOP_APP_USE_PACKAGED DESKTOP_APP_DISABLE_CRASH_REPORTS \
DESKTOP_APP_DISABLE_SCUDO \
DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION
# Since cmake 3.25.0, BSDs are no longer recognised as Linux (in this port).
CMAKE_ARGS+= -DLINUX=true
# libdispatch components
LDFLAGS+= -lBlocksRuntime
# Telegram uses OpenAL for its audio, but libtgvoip (for voice calls) can use PulseAudio or ALSA.
# It dynamically loads PulseAudio, and if this fails, it loads ALSA.
# If both of them are not installed, then voice calls do not work, but other functionalities still work.
OPTIONS_DEFINE= SYSTEM_FONTS
OPTIONS_DEFAULT= ALSA
OPTIONS_GROUP= AUDIO
OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO
AUDIO_DESC= Audio backend for voice calls
SYSTEM_FONTS_DESC= Use system fonts instead of bundled patched ones
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
ALSA_CMAKE_BOOL_OFF= LIBTGVOIP_DISABLE_ALSA
PULSEAUDIO_CMAKE_BOOL_OFF= LIBTGVOIP_DISABLE_PULSEAUDIO
SYSTEM_FONTS_CMAKE_BOOL_OFF= DESKTOP_APP_USE_PACKAGED_FONTS
# Telegram asks each custom build to have its own API ID and hash.
TELEGRAM_API_HASH= 20a3432aab43f24bb4460fceac5ba38d
TELEGRAM_API_ID= 601761
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400000 && ${OSVERSION} < 1400079
USES+= llvm:max=15,build
.else
USES+= compiler:c++20-lang
.endif
post-extract:
# Some of the third-party components already built, and
# can be safely removed
${RM} -rf \
${WRKSRC}/Telegram/ThirdParty/QR \
${WRKSRC}/Telegram/ThirdParty/dispatch \
${WRKSRC}/Telegram/ThirdParty/expected \
${WRKSRC}/Telegram/ThirdParty/fcitx5-qt \
${WRKSRC}/Telegram/ThirdParty/hime \
${WRKSRC}/Telegram/ThirdParty/hunspell \
${WRKSRC}/Telegram/ThirdParty/jemalloc \
${WRKSRC}/Telegram/ThirdParty/lz4 \
${WRKSRC}/Telegram/ThirdParty/minizip \
${WRKSRC}/Telegram/ThirdParty/jimf \
${WRKSRC}/Telegram/ThirdParty/plasma-wayland-protocols \
${WRKSRC}/Telegram/ThirdParty/range-v3 \
${WRKSRC}/Telegram/ThirdParty/wayland \
${WRKSRC}/Telegram/ThirdParty/wayland-protocols \
${WRKSRC}/Telegram/ThirdParty/xxHash
.if ${FLAVOR} == qt5
${RM} -rf \
${WRKSRC}/Telegram/ThirdParty/kcoreaddons \
${WRKSRC}/Telegram/ThirdParty/kimageformats
.endif
post-patch:
# XXX fix the following on every source file
# warning: unknown warning option '-Wno-maybe-uninitialized'
# warning: argument unused during compilation: '-fstack-clash-protection'
${REINPLACE_CMD} -e /-Wno-maybe-uninitialized/d -e /-fstack-clash-protection/d \
${WRKSRC}/cmake/options_linux.cmake
.include <bsd.port.mk>