73 lines
2.5 KiB
Makefile
73 lines
2.5 KiB
Makefile
# kde-ollie top-level Makefile
|
|
# Build order: libollie.so (Go) → ollie-kde daemon (C++/CMake)
|
|
|
|
BUILD_DIR := build-cmake
|
|
LIB_DIR := build
|
|
|
|
.PHONY: all lib daemon clean run
|
|
|
|
all: daemon
|
|
|
|
# Step 1: Build libollie.so from Go
|
|
lib: $(LIB_DIR)/libollie.so
|
|
|
|
$(LIB_DIR)/libollie.so: lib/capi.go lib/go.mod
|
|
cd lib && go build -buildmode=c-shared -o ../$(LIB_DIR)/libollie.so
|
|
|
|
# Step 2: Build the C++ daemon against libollie.so
|
|
daemon: lib
|
|
cmake -B $(BUILD_DIR) -S .
|
|
cmake --build $(BUILD_DIR)
|
|
|
|
# Run the daemon (useful for testing)
|
|
run: daemon
|
|
LD_LIBRARY_PATH=$(LIB_DIR):$$LD_LIBRARY_PATH ./$(BUILD_DIR)/ollie-kde
|
|
|
|
# Run the system tray (daemon must be running)
|
|
tray: daemon
|
|
./$(BUILD_DIR)/ollie-tray
|
|
|
|
# Install KRunner plugin
|
|
krunner-install: daemon
|
|
sudo cp $(BUILD_DIR)/lib/kf6/krunner/krunner_ollie.so \
|
|
/usr/lib64/qt6/plugins/kf6/krunner/
|
|
kquitapp6 krunner 2>/dev/null; true
|
|
@echo "KRunner plugin installed. Restart krunner or re-login."
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
rm -f $(LIB_DIR)/libollie.so $(LIB_DIR)/libollie.h
|
|
|
|
# Install Dolphin service menus
|
|
dolphin-install:
|
|
mkdir -p ~/.local/share/kio/servicemenus
|
|
cp dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/
|
|
sudo cp dolphin/ollie-ask /usr/local/bin/
|
|
@echo "Dolphin menus installed. Restart Dolphin or re-open context menu."
|
|
|
|
# Install plasmoid to user's local plasma directory
|
|
plasmoid-install: daemon
|
|
kpackagetool6 -t Plasma/Applet -u plasmoid/ 2>/dev/null || \
|
|
kpackagetool6 -t Plasma/Applet -i plasmoid/
|
|
sudo mkdir -p /usr/lib64/qt6/qml/org/ollie/private
|
|
sudo cp $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-pluginplugin.so \
|
|
/usr/lib64/qt6/qml/org/ollie/private/libollie-plasmoid-pluginplugin.so
|
|
sudo cp $(BUILD_DIR)/org/ollie/private/ollie-plasmoid-plugin.qmltypes \
|
|
/usr/lib64/qt6/qml/org/ollie/private/
|
|
sudo cp $(BUILD_DIR)/libollie-plasmoid-plugin.so /usr/lib64/
|
|
printf 'module org.ollie.private\nplugin ollie-plasmoid-pluginplugin\ntypeinfo ollie-plasmoid-plugin.qmltypes\ndepends QtQuick\n' | \
|
|
sudo tee /usr/lib64/qt6/qml/org/ollie/private/qmldir > /dev/null
|
|
sudo ldconfig
|
|
@echo "Plasmoid installed. Restart plasmashell or add widget."
|
|
|
|
plasmoid-uninstall:
|
|
kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null || true
|
|
sudo rm -rf /usr/lib64/qt6/qml/org/ollie
|
|
sudo rm -f /usr/lib64/libollie-plasmoid-plugin.so
|
|
sudo ldconfig
|
|
@echo "Plasmoid uninstalled."
|
|
|
|
install: daemon
|
|
install -Dm755 $(BUILD_DIR)/ollie-kde $(DESTDIR)/usr/bin/ollie-kde
|
|
install -Dm644 $(LIB_DIR)/libollie.so $(DESTDIR)/usr/lib/libollie.so
|