# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake flag-o-matic xdg DESCRIPTION="跨平台第三方B站客户端" HOMEPAGE=" https://xfangfang.github.io/wiliwili https://github.com/xfangfang/wiliwili " SRC_URI=" https://github.com/xfangfang/wiliwili/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz " SUBMODULES=( "MemoryModule main https://github.com/xfangfang/MemoryModule 7739ba4b2d87395446bbdcad6ae8bf9131b4250b" #"OpenCC main https://github.com/xfangfang/OpenCC ccae908834c2fe41ba02141fa5d0eef178a45080" #"QR-Code-generator main https://github.com/nayuki/QR-Code-generator 720f62bddb7226106071d4728c292cb1df519ceb" "borealis main https://github.com/xfangfang/borealis 5f08b286f3df737f3321d2247a6fe633fcead03c" "cpr main https://github.com/xfangfang/cpr ef35a614f1feb6ba0d4de13b1950bcaf7faad060" "libpdr main https://github.com/xfangfang/libpdr 9dd3ab920940adac013a3cf40e3a5805d7e193e1" "lunasvg main https://github.com/sammycage/lunasvg f924651b85cac47dbe15f51a4aa320461fc1d07b" "mongoose main https://github.com/xfangfang/mongoose 4328842400370f62d00b6a6b23f1cbe0cded4073" #"pystring main https://github.com/imageworks/pystring 7d16bc814ccb4cad03c300dcb77440034caa84f7" "glfw borealis https://github.com/xfangfang/glfw 892256c3f630739fb02552544b8d83240883ec8a" #"SDL borealis https://github.com/libsdl-org/SDL 15ead9a40d09a1eb9972215cceac2bf29c9b77f6" ) LICENSE="GPL-3" # MemoryModule -> MPL-2.0 # OpenCC, borealis -> Apache-2.0 # QR-Code-generator, cpr, lunasvg -> MIT # mongoose -> GPL-2 # pystring -> BSD-3-Clause # glfw -> zlib LICENSE+=" MPL-2.0 Apache-2.0 MIT GPL-2 BSD ZLIB" SLOT="0" KEYWORDS="~amd64" IUSE="glfw +hwaccel opencc +sdl2 +webp wayland +X" REQUIRED_USE=" || ( wayland X ) ^^ ( glfw sdl2 ) " RESTRICT="test" DEPEND=" opencc? ( app-i18n/opencc:= ) dev-cpp/pystring:= dev-libs/libfmt:= dev-libs/openssl:= dev-libs/qr-code-generator:= dev-libs/tinyxml2:= sdl2? ( media-libs/libsdl2[wayland?,X?] ) glfw? ( sys-apps/dbus ) webp? ( media-libs/libwebp:= ) media-video/mpv:=[libmpv] net-misc/curl virtual/zlib:= " RDEPEND="${DEPEND}" BDEPEND=" glfw? ( wayland? ( dev-libs/wayland-protocols ) X? ( x11-libs/libXi x11-libs/libXinerama ) ) " CMAKE_QA_COMPAT_SKIP=1 submodule_uris() { for line in "${SUBMODULES[@]}"; do read -r dep proj url commit <<< "${line}" || die SRC_URI+=" ${url}/archive/${commit}.tar.gz -> ${url##*/}-${commit}.tar.gz" done } submodule_uris pkg_pretend() { if ! use hwaccel; then ewarn "USE=hwaccel not set, using software rendering, but it will affect performance." else ewarn "USE=hwaccel set, if your system does not support OpenGL(ES), this is useless." fi } src_prepare() { for line in "${SUBMODULES[@]}"; do read -r dep proj url commit <<< "${line}" || die if [[ ${proj} == "main" ]]; then cp -r "${WORKDIR}"/${url##*/}-${commit}/* "${S}/library/${dep}/" || die elif [[ ${proj} == "borealis" ]]; then cp -r "${WORKDIR}"/${url##*/}-${commit}/* "${S}/library/borealis/library/lib/extern/${dep}/" || die else die fi done cmake_src_prepare } src_configure() { # LTO fails in subproject libpdr with ODR violations[-Werror=odr] filter-lto local mycmakeargs=( -DPLATFORM_DESKTOP=ON -DINSTALL=ON -DUSE_SDL2=$(usex sdl2 ON OFF) -DUSE_GLFW=$(usex glfw ON OFF) -DMPV_SW_RENDER=$(usex !hwaccel ON OFF) #-DMPV_NO_FB=$(usex !framebuffer ON OFF) -DGIT_TAG_VERSION="${PV}" -DGIT_TAG_SHORT="${PV}" -DUSE_SHARED_LIB=ON -DUSE_SYSTEM_CURL=ON -DUSE_SYSTEM_CPR=OFF # not packaged -DUSE_SYSTEM_QRCODEGEN=ON -DUSE_SYSTEM_PYSTRING=ON -DUSE_SYSTEM_OPENCC=ON -DUSE_SYSTEM_FMT=ON -DUSE_SYSTEM_TINYXML2=ON -DUSE_SYSTEM_SDL2=ON -DUSE_SYSTEM_MONGOOSE=OFF # not packaged -DUSE_SYSTEM_LUNASVG=OFF # not packaged -DUSE_SYSTEM_GLFW=OFF # modified GLFW used -DUSE_SYSTEM_TWEENY=OFF # not packaged -DDISABLE_OPENCC=$(usex !opencc ON OFF) -DDISABLE_WEBP=$(usex !webp ON OFF) ) if use glfw; then mycmakeargs+=( -DGLFW_BUILD_WAYLAND=$(usex wayland ON OFF) -DGLFW_BUILD_X11=$(usex X ON OFF) ) fi cmake_src_configure }