File lightly-shaders.spec of Package lightly-shaders
Name: lightly-shaders
Version: 3.0.0
Release: 0%{?dist}
Summary: Rounded window corners and outline effect for KWin
License: GPL-3.0
URL: https://github.com/a-parhom/LightlyShaders
Source0: %name-%version.tar
Requires: ( kwin6 >= 6.4.0 or kwin6-x11 >= 6.4.0 )
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: fdupes
BuildRequires: extra-cmake-modules
BuildRequires: cmake(KWin)
BuildRequires: cmake(KWinX11)
BuildRequires: cmake(KF6Config)
BuildRequires: cmake(KF6GuiAddons)
BuildRequires: cmake(KF6KCMUtils)
BuildRequires: cmake(KF6Crash)
BuildRequires: cmake(KF6KIO)
BuildRequires: cmake(Qt6UiTools)
BuildRequires: cmake(KF6GlobalAccel)
BuildRequires: cmake(KF6Notifications)
BuildRequires: cmake(Qt6Quick)
BuildRequires: libepoxy-devel
%description
Round window corners and outline effect for KWin.
This is a fork of Luwx's LightlyShaders, which in turn is a fork of ShapeCorners.
It deals with infamous "korner bug" and works correctly with stock Plasma effects (except WindowHeap-based effects, which is a bug in KWin).
%prep
%setup -q
%build
mkdir -p build/{wayland,x11}
%install
cmake -B build/wayland -DCMAKE_INSTALL_PREFIX=%{_prefix}
make %{_smp_mflags} -C build/wayland
%make_install -C build/wayland
sed -ri '/^find_package\(KWin(DBusInterface| )/s/KWin/KWinX11/' CMakeLists.txt
find -type f -name CMakeLists.txt -not -path "*/build/*" \
-exec sed -i "/KWin::kwin/s/KWin::kwin/KWinX11::kwin/" {} +
find -type f -name CMakeLists.txt -not -path "*/build/*" \
-exec sed -ri "/\/kwin\/effects\/(configs|plugins)/s|kwin/effects|kwin-x11/effects|" {} +
cmake -B build/x11 -DCMAKE_INSTALL_PREFIX=%{_prefix}
make %{_smp_mflags} -C build/x11
%make_install -C build/x11 # Overwriting: liblshelper.so*
%fdupes -s %{buildroot}
find %{buildroot} -type f -name "*.so" -executable -exec strip --strip-all {} \;
%check
%files
%{_libdir}/liblshelper.so.0
%{_libdir}/liblshelper.so.3.0.0
%dir %{_kf6_plugindir}/kwin
%dir %{_kf6_plugindir}/kwin/effects
%dir %{_kf6_plugindir}/kwin/effects/configs
%dir %{_kf6_plugindir}/kwin/effects/plugins
%{_kf6_plugindir}/kwin/effects/configs/kwin_lightlyshaders_blur_config.so
%{_kf6_plugindir}/kwin/effects/configs/kwin_lightlyshaders_config.so
%{_kf6_plugindir}/kwin/effects/plugins/kwin_effect_lightlyshaders.so
%{_kf6_plugindir}/kwin/effects/plugins/lightlyshaders_blur.so
# X11 files
%dir %{_kf6_plugindir}/kwin-x11
%dir %{_kf6_plugindir}/kwin-x11/effects
%dir %{_kf6_plugindir}/kwin-x11/effects/configs
%dir %{_kf6_plugindir}/kwin-x11/effects/plugins
%{_kf6_plugindir}/kwin-x11/effects/configs/kwin_lightlyshaders_blur_config.so
%{_kf6_plugindir}/kwin-x11/effects/configs/kwin_lightlyshaders_config.so
%{_kf6_plugindir}/kwin-x11/effects/plugins/kwin_effect_lightlyshaders.so
%{_kf6_plugindir}/kwin-x11/effects/plugins/lightlyshaders_blur.so