# Ollie KDE integration build system
home := env_var('HOME')
bin := home / '.local/bin'

kde:
    @echo '=== Building ollie-kde (KF6) ==='
    cmake -B build-cmake -S . -DCMAKE_INSTALL_PREFIX=~/.local
    cmake --build build-cmake -j$(nproc)

kde-kf5:
    @echo '=== Building ollie-kde (KF5) ==='
    cmake -B build-kf5 -S . -DOLLIE_KF5=ON -DCMAKE_INSTALL_PREFIX=~/.local
    cmake --build build-kf5 -j$(nproc)

install-kde:
    @echo '=== Installing ollie-kde (KF6) ==='
    cmake --install build-cmake
    mkdir -p ~/.local/share/applications
    install -m644 gui/org.ollie.gui.desktop ~/.local/share/applications/
    mkdir -p ~/.local/share/icons/hicolor/scalable/apps
    install -m644 gui/ollie.svg ~/.local/share/icons/hicolor/scalable/apps/ollie.svg
    mkdir -p ~/.local/share/kio/servicemenus
    install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/
    install -m755 dolphin/ollie-ask ~/.local/bin/
    install -m755 dolphin/ollie-session-here ~/.local/bin/
    mkdir -p ~/.config/plasma-workspace/env
    install -m755 99-ollie.sh ~/.config/plasma-workspace/env/99-ollie.sh
    kbuildsycoca6 --noincremental 2>/dev/null; true
    kquitapp6 krunner 2>/dev/null; true
    @echo '=== KDE install complete. Restart Plasma to pick up plugins. ==='

install-kde-kf5:
    @echo '=== Installing ollie-kde (KF5) ==='
    cmake --install build-kf5
    mkdir -p ~/.local/share/applications
    install -m644 gui/org.ollie.gui.desktop ~/.local/share/applications/
    mkdir -p ~/.local/share/icons/hicolor/scalable/apps
    install -m644 gui/ollie.svg ~/.local/share/icons/hicolor/scalable/apps/ollie.svg
    mkdir -p ~/.local/share/kio/servicemenus
    install -m755 dolphin/ollie-actions-kf5.desktop ~/.local/share/kio/servicemenus/ollie-actions.desktop
    install -m755 dolphin/ollie-ask ~/.local/bin/
    install -m755 dolphin/ollie-session-here ~/.local/bin/
    mkdir -p ~/.config/plasma-workspace/env
    install -m755 99-ollie-kf5.sh ~/.config/plasma-workspace/env/99-ollie-kf5.sh
    kbuildsycoca5 --noincremental 2>/dev/null; true
    kquitapp5 krunner 2>/dev/null; true
    @echo '=== KDE KF5 install complete. Restart Plasma to pick up plugins. ==='

clean:
    rm -rf build-cmake build-kf5

uninstall:
    @echo '=== Uninstalling ollie-kde (KF6) ==='
    rm -f ~/.local/bin/ollie-gui
    rm -f ~/.local/bin/ollie-ask ~/.local/bin/ollie-session-here
    rm -f ~/.local/share/applications/org.ollie.gui.desktop
    rm -f ~/.local/share/icons/hicolor/scalable/apps/ollie.svg
    rm -f ~/.local/lib64/qt6/plugins/kf6/krunner/krunner_ollie.so
    rm -f ~/.local/lib64/qt6/plugins/kf6/ktexteditor/ollie_kate.so
    rm -f ~/.local/lib64/qt6/plugins/kf6/kio/kio_ollie.so
    rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
    rm -f ~/.config/plasma-workspace/env/99-ollie.sh
    kbuildsycoca6 --noincremental 2>/dev/null; true
    kquitapp6 krunner 2>/dev/null; true
    @echo '=== KDE uninstall complete ==='

uninstall-kf5:
    @echo '=== Uninstalling ollie-kde (KF5) ==='
    rm -f ~/.local/bin/ollie-gui
    rm -f ~/.local/bin/ollie-ask ~/.local/bin/ollie-session-here
    rm -f ~/.local/share/applications/org.ollie.gui.desktop
    rm -f ~/.local/share/icons/hicolor/scalable/apps/ollie.svg
    rm -f ~/.local/lib/qt5/plugins/kf5/krunner/krunner_ollie.so
    rm -f ~/.local/lib/qt5/plugins/ktexteditor/ollie_kate.so
    rm -f ~/.local/lib/qt5/plugins/kf5/kio/kio_ollie.so
    rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
    rm -f ~/.local/share/kservices5/ollie.protocol
    rm -f ~/.config/plasma-workspace/env/99-ollie-kf5.sh
    kbuildsycoca5 --noincremental 2>/dev/null; true
    kquitapp5 krunner 2>/dev/null; true
    @echo '=== KDE KF5 uninstall complete ==='