qv2ray-2.7.0_p20240625-r1gentoo-zh
download
# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake xdg flag-o-matic
DESCRIPTION="Qt GUI fontend of v2ray"
HOMEPAGE="https://github.com/Qv2ray/Qv2ray"
GIT_COMMIT="d5c5aeb366e2fbe9c9243648af36b0d11da14920"
GIT_COMMIT_QJSONSTRUCT="02416895f2f1fb826f8e9207d8bbe5804b6d0441"
GIT_COMMIT_PURESOURCE="a4872c1fb429ed70eb183c3846bcf791bda75459"
GIT_COMMIT_QT_QRCODE="2d57d9c6e2341689d10f9360a16a08831a4a820b"
GIT_COMMIT_UVW="c56c05e6daaf6d7644b46d0d0bf902f099d0a218"
GIT_COMMIT_QVPLUGIN_INTERFACE="911c4adbb7b598435162da245ab248d215d3f018"
QRENCODE_PV="4.0.0"
SRC_URI="
https://github.com/Qv2ray/Qv2ray/archive/${GIT_COMMIT}.tar.gz
-> ${P}.tar.gz
https://github.com/Qv2ray/QJsonStruct/archive/${GIT_COMMIT_QJSONSTRUCT}.tar.gz
-> QJsonStruct-${GIT_COMMIT_QJSONSTRUCT}.tar.gz
https://github.com/Qv2ray/PureSource/archive/${GIT_COMMIT_PURESOURCE}.tar.gz
-> PureSource-${GIT_COMMIT_PURESOURCE}.tar.gz
https://github.com/danielsanfr/qt-qrcode/archive/${GIT_COMMIT_QT_QRCODE}.tar.gz
-> qt-qrcode-${GIT_COMMIT_QT_QRCODE}.tar.gz
https://github.com/fukuchi/libqrencode/archive/refs/tags/v${QRENCODE_PV}.tar.gz
-> qrencode-${QRENCODE_PV}.tar.gz
https://github.com/skypjack/uvw/archive/${GIT_COMMIT_UVW}.tar.gz
-> uvw-${GIT_COMMIT_UVW}.tar.gz
https://github.com/Qv2ray/QvPlugin-Interface/archive/${GIT_COMMIT_QVPLUGIN_INTERFACE}.tar.gz
-> QvPlugin-Interface-${GIT_COMMIT_QVPLUGIN_INTERFACE}.tar.gz
https://github.com/Qv2ray/Qv2ray/commit/d0d6f7c891f69c19086ff3a8b614462de6524af0.patch
-> ${P}-custom-core-version.patch
"
S="${WORKDIR}/Qv2ray-${GIT_COMMIT}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test +themes"
RESTRICT="!test? ( test )"
DEPEND="
dev-qt/qtbase:6[gui,network,widgets]
dev-qt/qtsvg:6
dev-libs/libuv:=
net-libs/grpc:=
dev-libs/protobuf:=
net-misc/curl
dev-libs/qnodeeditor
"
RDEPEND="
|| (
net-proxy/v2ray
net-proxy/v2ray-bin
net-proxy/Xray
)
dev-libs/openssl:0=
${DEPEND}
"
DEPEND+=">=dev-libs/singleapplication-3.5.2_p20250124"
BDEPEND="dev-qt/qttools:6[linguist]"
PATCHES=(
"${FILESDIR}/${P}-fix-building-with-freestanding-singleapplication.patch"
"${DISTDIR}/${P}-custom-core-version.patch"
)
src_unpack() {
default
cd "${S}/3rdparty" || die
rmdir QJsonStruct puresource qt-qrcode uvw || die
mv "${WORKDIR}/QJsonStruct-${GIT_COMMIT_QJSONSTRUCT}" QJsonStruct || die
mv "${WORKDIR}/PureSource-${GIT_COMMIT_PURESOURCE}" puresource || die
mv "${WORKDIR}/qt-qrcode-${GIT_COMMIT_QT_QRCODE}" qt-qrcode || die
rmdir qt-qrcode/lib/libqrencode || die
mv "${WORKDIR}/libqrencode-${QRENCODE_PV}" qt-qrcode/lib/libqrencode || die
mv "${WORKDIR}/uvw-${GIT_COMMIT_UVW}" uvw || die
rmdir "${S}/src/plugin-interface" || die
mv "${WORKDIR}/QvPlugin-Interface-${GIT_COMMIT_QVPLUGIN_INTERFACE}" "${S}/src/plugin-interface" || die
}
src_prepare() {
sed -i -e 's/__STATIC/STATIC_IN_RELEASE/' cmake/qrencode.cmake || die
cmake_src_prepare
}
src_configure() {
# https://github.com/Qv2ray/Qv2ray/issues/1734
filter-lto
local mycmakeargs=(
-DBUILD_TESTING=$(usex test)
-DQV2RAY_DISABLE_AUTO_UPDATE=ON
-DQV2RAY_HAS_BUILTIN_THEMES=$(usex themes)
-DQV2RAY_QT6=ON
-DUSE_SYSTEM_LIBUV=ON
-DQV2RAY_SINGLEAPPLICATION_PROVIDER=package
-DQV2RAY_QNODEEDITOR_PROVIDER=package
)
cmake_src_configure
}