blob: 18ae03f006d0c4d2b271e1602e8e3e23f0894e4b (
plain)
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
|
PORTNAME= xdg-desktop-portal-hyprland
DISTVERSIONPREFIX= v
DISTVERSION= 1.3.1
PORTREVISION= 5
CATEGORIES= x11 wayland
PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
PATCHFILES+= 65fb44ae4960.patch:-p1 # https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/190
PATCHFILES+= 9c370fd55d6e.patch:-p1 # https://github.com/hyprwm/xdg-desktop-portal-hyprland/pull/193
PATCHFILES+= 4fc83e6871e9.patch:-p1 # unbreak MALLOC_CONF=junk:true
PATCHFILES+= 9ace6f969ce4.patch:-p1 # https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/207
MAINTAINER= jbeich@FreeBSD.org
COMMENT= xdg-desktop-portal backend for hyprland
WWW= https://github.com/hyprwm/xdg-desktop-portal-hyprland
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= wayland-protocols>=1.31:graphics/wayland-protocols
LIB_DEPENDS= libhyprlang.so:devel/hyprlang \
libsdbus-c++.so:devel/sdbus-cpp \
libdrm.so:graphics/libdrm \
libwayland-client.so:graphics/wayland \
libpipewire-0.3.so:multimedia/pipewire
RUN_DEPENDS= xdg-desktop-portal>0:deskutils/xdg-desktop-portal \
grim:x11/grim \
slurp:x11/slurp
FLAVORS= qt6 qt5
qt5_PKGNAMESUFFIX= -qt5
qt5_CONFLICTS_INSTALL= ${PORTNAME}
qt6_CONFLICTS_INSTALL= ${PORTNAME}-qt5
USES= cmake compiler:c++11-lib gl pkgconfig qt:6
USE_GITHUB= yes
USE_GL= gbm
USE_QT= base wayland:run
GH_ACCOUNT= hyprwm
GH_TUPLE= hyprwm:hyprland-protocols:v0.2:hyprland_protocols/subprojects/hyprland-protocols
LDFLAGS+= -Wl,--as-needed # GL, sdbus-cpp deps
PLIST_FILES= bin/hyprland-share-picker \
lib/systemd/user/${PORTNAME}.service \
libexec/${PORTNAME} \
share/dbus-1/services/org.freedesktop.impl.portal.desktop.hyprland.service \
share/xdg-desktop-portal/portals/hyprland.portal
.if ${FLAVOR:U} == qt5
USES:= ${USES:S/qt:6/qt:5/}
USE_QT= qmake:build buildtools:build core gui wayland:run widgets
.endif
# XXX Drop after FreeBSD 14.0 EOL around 2025-03-01
.if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h)
CXXFLAGS+= -fexperimental-library
.endif
# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo)
.if ${CXX} == c++ && exists(/usr/lib/libc++.so)
.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch)
USES+= llvm:min=16,build,export
PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm*
CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}"
# XXX Move into separate port and standardize via USES
GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx
CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1
# Don't link against new libc++ as it's not necessary
#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt
pre-configure: bundled-libcxx
bundled-libcxx:
@${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
-DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \
-B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx
@${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build
.endif
.endif # exists(/usr/lib/libc++.so)
.include <bsd.port.mk>
|