app-misc/fastfetch: fix automagical deps

Patch the build system instead of sedding out checks

Signed-off-by: Viorel Munteanu <ceamac.paragon@gmail.com>
This commit is contained in:
Viorel Munteanu
2022-02-08 07:07:31 +02:00
parent 46a6ee2092
commit 61a59bd4bd
3 changed files with 303 additions and 16 deletions

View File

@@ -0,0 +1,89 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit bash-completion-r1 cmake
DESCRIPTION="Like neofetch but faster"
HOMEPAGE="https://github.com/LinusDierheimer/fastfetch"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/LinusDierheimer/fastfetch.git"
else
COMMIT="7ad73d3ba13489b341a07782e6374d92c54091ba"
VERSION_REV="7ad73d3"
SRC_URI="https://github.com/LinusDierheimer/fastfetch/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
fi
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="X gnome pci vulkan wayland xcb xfce xrandr"
# note - qa-vdb will always report errors because fastfetch loads the libs dynamically
RDEPEND="
X? ( x11-libs/libX11 )
gnome? (
dev-libs/glib
gnome-base/dconf
)
pci? ( sys-apps/pciutils )
vulkan? ( media-libs/vulkan-loader )
wayland? ( dev-libs/wayland )
xcb? ( x11-libs/libxcb )
xfce? ( xfce-base/xfconf )
xrandr? ( x11-libs/libXrandr )
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
REQUIRED_USE="xrandr? ( X )"
PATCHES=(
"${FILESDIR}/fastfetch-0.569-cmake-optional-deps.patch"
)
src_configure() {
local mycmakeargs=(
-DENABLE_RPM=no
-DENABLE_VULKAN=$(usex vulkan)
-DENABLE_WAYLAND=$(usex wayland)
-DENABLE_XCB_RANDR=$(usex xcb)
-DENABLE_XCB=$(usex xcb)
-DENABLE_XRANDR=$(usex xrandr)
-DENABLE_X11=$(usex X)
-DENABLE_GIO=$(usex gnome)
-DENABLE_DCONF=$(usex gnome)
-DENABLE_XFCONF=$(usex xfce)
)
if [[ ${PV} != *9999 ]]; then
# version comes from git, fake it
VERSION_MAJOR="$(ver_cut 2)"
sed -i -e "
s/\(PROJECT_VERSION\) .*$/\1 \"r${VERSION_MAJOR}.${VERSION_REV}\")/
s/\(PROJECT_VERSION_MAJOR\) .*$/\1 \"${VERSION_MAJOR}\")/" CMakeLists.txt || die "Cannot patch version"
fi
cmake_src_configure
}
src_install() {
if [[ ${PV} == *9999 ]]; then
elog "REV=\"r$(git rev-list --count HEAD)\""
elog "COMMIT=\"$(git rev-parse HEAD)\""
elog "VERSION_REV=\"$(git rev-parse --short HEAD)\""
fi
pushd "${BUILD_DIR}" || die
dobin fastfetch
popd
newbashcomp completions/bash fastfetch
insinto /usr/share/${PN}/presets
doins presets/*
einstalldocs
}

View File

@@ -40,24 +40,23 @@ BDEPEND="virtual/pkgconfig"
REQUIRED_USE="xrandr? ( X )"
# disable_check VAR lib
disable_check() {
sed -i -e "
/pkg_check_modules ($1 /d
/message.*$2/d" CMakeLists.txt || die "Cannot disable $1"
}
PATCHES=(
"${FILESDIR}/fastfetch-0.569-cmake-optional-deps.patch"
)
src_configure() {
disable_check RPM librpm
use X || disable_check X11 x11
use gnome || (disable_check GIO gio- && disable_check DCONF dconf)
use pci || disable_check LIBPCI libpci
use vulkan || disable_check VULKAN vulkan
use wayland || disable_check WAYLAND wayland-client
use xcb || (disable_check XCB_RANDR xcb-randr && disable_check XCB xcb)
use xfce || disable_check XFCONF libxfconf
use xrandr || disable_check XRANDR xrandr
local mycmakeargs=(
-DENABLE_RPM=no
-DENABLE_VULKAN=$(usex vulkan)
-DENABLE_WAYLAND=$(usex wayland)
-DENABLE_XCB_RANDR=$(usex xcb)
-DENABLE_XCB=$(usex xcb)
-DENABLE_XRANDR=$(usex xrandr)
-DENABLE_X11=$(usex X)
-DENABLE_GIO=$(usex gnome)
-DENABLE_DCONF=$(usex gnome)
-DENABLE_XFCONF=$(usex xfce)
)
if [[ ${PV} != *9999 ]]; then
# version comes from git, fake it

View File

@@ -0,0 +1,199 @@
Add options to disable automagical dependencies
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0915750..05ca503 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,82 +48,116 @@ find_package(Threads REQUIRED)
find_package(PkgConfig REQUIRED)
-pkg_check_modules (LIBPCI libpci)
-if(LIBPCI_FOUND)
- add_compile_definitions(FF_HAVE_LIBPCI=1)
-else(LIBPCI_FOUND)
- message(WARNING "Package libpci not found. Building without support.")
-endif(LIBPCI_FOUND)
-
-pkg_check_modules (VULKAN vulkan)
-if(VULKAN_FOUND)
- add_compile_definitions(FF_HAVE_VULKAN=1)
-else(VULKAN_FOUND)
- message(WARNING "Package vulkan not found. Building without support.")
-endif(VULKAN_FOUND)
-
-pkg_check_modules (WAYLAND wayland-client)
-if(WAYLAND_FOUND)
- add_compile_definitions(FF_HAVE_WAYLAND=1)
-else(WAYLAND_FOUND)
- message(WARNING "Package wayland-client not found. Building without support.")
-endif(WAYLAND_FOUND)
-
-pkg_check_modules (XCB_RANDR xcb-randr)
-if(XCB_RANDR_FOUND)
- add_compile_definitions(FF_HAVE_XCB_RANDR=1)
-else(XCB_RANDR_FOUND)
- message(WARNING "Package xcb-randr not found. Building without support.")
-endif(XCB_RANDR_FOUND)
-
-pkg_check_modules (XCB xcb)
-if(XCB_FOUND)
- add_compile_definitions(FF_HAVE_XCB=1)
-else(XCB_FOUND)
- message(WARNING "Package xcb not found. Building without support.")
-endif(XCB_FOUND)
-
-pkg_check_modules (XRANDR xrandr)
-if(XRANDR_FOUND)
- add_compile_definitions(FF_HAVE_XRANDR=1)
-else(XRANDR_FOUND)
- message(WARNING "Package xrandr not found. Building without support.")
-endif(XRANDR_FOUND)
-
-pkg_check_modules (X11 x11)
-if(X11_FOUND)
- add_compile_definitions(FF_HAVE_X11=1)
-else(X11_FOUND)
- message(WARNING "Package x11 not found. Building without support.")
-endif(X11_FOUND)
-
-pkg_check_modules (GIO gio-2.0)
-if(GIO_FOUND)
- add_compile_definitions(FF_HAVE_GIO=1)
-else(GIO_FOUND)
- message(WARNING "Package gio-2.0 not found. Building without support.")
-endif(GIO_FOUND)
-
-pkg_check_modules (DCONF dconf)
-if(DCONF_FOUND)
- add_compile_definitions(FF_HAVE_DCONF=1)
-else(DCONF_FOUND)
- message(WARNING "Package dconf not found. Building without support.")
-endif(DCONF_FOUND)
-
-pkg_check_modules (XFCONF libxfconf-0)
-if(XFCONF_FOUND)
- add_compile_definitions(FF_HAVE_XFCONF=1)
-else(XFCONF_FOUND)
- message(WARNING "Package libxfconf-0 not found. Building without support.")
-endif(XFCONF_FOUND)
-
-pkg_check_modules (RPM rpm)
-if(RPM_FOUND)
- add_compile_definitions(FF_HAVE_RPM=1)
-else(RPM_FOUND)
- message(WARNING "Package librpm not found. Building without support.")
-endif(RPM_FOUND)
+OPTION(ENABLE_LIBPCI "Enable libpci" ON)
+OPTION(ENABLE_VULKAN "Enable vulkan" ON)
+OPTION(ENABLE_WAYLAND "Enable wayland-client" ON)
+OPTION(ENABLE_XCB_RANDR "Enable xcb-randr" ON)
+OPTION(ENABLE_XCB "Enable xcb" ON)
+OPTION(ENABLE_XRANDR "Enable xrandr" ON)
+OPTION(ENABLE_X11 "Enable x11" ON)
+OPTION(ENABLE_GIO "Enable gio-2.0" ON)
+OPTION(ENABLE_DCONF "Enable dconf" ON)
+OPTION(ENABLE_XFCONF "Enable libxfconf-0" ON)
+OPTION(ENABLE_RPM "Enable rpm" ON)
+
+if(ENABLE_LIBPCI)
+ pkg_check_modules (LIBPCI libpci)
+ if(LIBPCI_FOUND)
+ add_compile_definitions(FF_HAVE_LIBPCI=1)
+ else(LIBPCI_FOUND)
+ message(WARNING "Package libpci not found. Building without support.")
+ endif(LIBPCI_FOUND)
+endif(ENABLE_LIBPCI)
+
+if(ENABLE_VULKAN)
+ pkg_check_modules (VULKAN vulkan)
+ if(VULKAN_FOUND)
+ add_compile_definitions(FF_HAVE_VULKAN=1)
+ else(VULKAN_FOUND)
+ message(WARNING "Package vulkan not found. Building without support.")
+ endif(VULKAN_FOUND)
+endif(ENABLE_VULKAN)
+
+if(ENABLE_WAYLAND)
+ pkg_check_modules (WAYLAND wayland-client)
+ if(WAYLAND_FOUND)
+ add_compile_definitions(FF_HAVE_WAYLAND=1)
+ else(WAYLAND_FOUND)
+ message(WARNING "Package wayland-client not found. Building without support.")
+ endif(WAYLAND_FOUND)
+endif(ENABLE_WAYLAND)
+
+if(ENABLE_XCB_RANDR)
+ pkg_check_modules (XCB_RANDR xcb-randr)
+ if(XCB_RANDR_FOUND)
+ add_compile_definitions(FF_HAVE_XCB_RANDR=1)
+ else(XCB_RANDR_FOUND)
+ message(WARNING "Package xcb-randr not found. Building without support.")
+ endif(XCB_RANDR_FOUND)
+endif(ENABLE_XCB_RANDR)
+
+if(ENABLE_XCB)
+ pkg_check_modules (XCB xcb)
+ if(XCB_FOUND)
+ add_compile_definitions(FF_HAVE_XCB=1)
+ else(XCB_FOUND)
+ message(WARNING "Package xcb not found. Building without support.")
+ endif(XCB_FOUND)
+endif(ENABLE_XCB)
+
+if(ENABLE_XRANDR)
+ pkg_check_modules (XRANDR xrandr)
+ if(XRANDR_FOUND)
+ add_compile_definitions(FF_HAVE_XRANDR=1)
+ else(XRANDR_FOUND)
+ message(WARNING "Package xrandr not found. Building without support.")
+ endif(XRANDR_FOUND)
+endif(ENABLE_XRANDR)
+
+if(ENABLE_X11)
+ pkg_check_modules (X11 x11)
+ if(X11_FOUND)
+ add_compile_definitions(FF_HAVE_X11=1)
+ else(X11_FOUND)
+ message(WARNING "Package x11 not found. Building without support.")
+ endif(X11_FOUND)
+endif(ENABLE_X11)
+
+if(ENABLE_GIO)
+ pkg_check_modules (GIO gio-2.0)
+ if(GIO_FOUND)
+ add_compile_definitions(FF_HAVE_GIO=1)
+ else(GIO_FOUND)
+ message(WARNING "Package gio-2.0 not found. Building without support.")
+ endif(GIO_FOUND)
+endif(ENABLE_GIO)
+
+if(ENABLE_DCONF)
+ pkg_check_modules (DCONF dconf)
+ if(DCONF_FOUND)
+ add_compile_definitions(FF_HAVE_DCONF=1)
+ else(DCONF_FOUND)
+ message(WARNING "Package dconf not found. Building without support.")
+ endif(DCONF_FOUND)
+endif(ENABLE_DCONF)
+
+if(ENABLE_XFCONF)
+ pkg_check_modules (XFCONF libxfconf-0)
+ if(XFCONF_FOUND)
+ add_compile_definitions(FF_HAVE_XFCONF=1)
+ else(XFCONF_FOUND)
+ message(WARNING "Package libxfconf-0 not found. Building without support.")
+ endif(XFCONF_FOUND)
+endif(ENABLE_XFCONF)
+
+if(ENABLE_RPM)
+ pkg_check_modules (RPM rpm)
+ if(RPM_FOUND)
+ add_compile_definitions(FF_HAVE_RPM=1)
+ else(RPM_FOUND)
+ message(WARNING "Package librpm not found. Building without support.")
+ endif(RPM_FOUND)
+endif(ENABLE_RPM)
include_directories(
${PROJECT_BINARY_DIR}