File debian.rules of Package kime

#!/usr/bin/make -f

export DH_VERBOSE = 1
export LIBCLANG_PATH = $(shell llvm-config --libdir)
export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

%:
	dh $@

override_dh_auto_configure:
	# Extract vendor (try multiple locations)
	if [ -f ../vendor.tar.xz ]; then tar xf ../vendor.tar.xz; \
	elif [ -f ../vendor.tar.zst ]; then tar xf ../vendor.tar.zst; \
	elif [ -f /usr/src/packages/SOURCES/vendor.tar.xz ]; then tar xf /usr/src/packages/SOURCES/vendor.tar.xz; \
	elif [ -f /usr/src/packages/SOURCES/vendor.tar.zst ]; then tar xf /usr/src/packages/SOURCES/vendor.tar.zst; \
	elif [ -d vendor ]; then echo "vendor already exists"; \
	else echo "ERROR: vendor tarball not found!" && exit 1; fi
	mkdir -p .cargo
	echo '[source.crates-io]' > .cargo/config.toml
	echo 'replace-with = "vendored-sources"' >> .cargo/config.toml
	echo '[source.vendored-sources]' >> .cargo/config.toml
	echo 'directory = "vendor"' >> .cargo/config.toml

override_dh_auto_build:
	# Build Rust components
	cargo build --release --locked -p kime-engine-capi -p kime-engine-cffi
	export LIBRARY_PATH="$(CURDIR)/target/release:$$LIBRARY_PATH" && \
	cargo build --release --locked \
		-p kime -p kime-check -p kime-indicator \
		-p kime-candidate-window -p kime-xim -p kime-wayland
	
	# Build GTK/Qt modules
	mkdir -p build && cd build && \
	cmake ../src \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
		-DENABLE_GTK3=ON -DENABLE_GTK4=ON \
		-DENABLE_QT5=ON -DENABLE_QT6=ON && \
	$(MAKE)

override_dh_auto_install:
	# Install binaries
	install -Dm755 target/release/kime debian/kime/usr/bin/kime
	install -Dm755 target/release/kime-check debian/kime/usr/bin/kime-check
	install -Dm755 target/release/kime-indicator debian/kime/usr/bin/kime-indicator
	install -Dm755 target/release/kime-candidate-window debian/kime/usr/bin/kime-candidate-window
	install -Dm755 target/release/kime-xim debian/kime/usr/bin/kime-xim
	install -Dm755 target/release/kime-wayland debian/kime/usr/bin/kime-wayland
	install -Dm755 res/kime-xdg-autostart debian/kime/usr/bin/kime-xdg-autostart
	
	# Install library
	install -Dm755 target/release/libkime_engine.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/libkime_engine.so
	
	# Install desktop files
	install -Dm644 res/kime.desktop debian/kime/usr/share/applications/kime.desktop
	install -Dm644 res/kime.desktop debian/kime/etc/xdg/autostart/kime.desktop
	install -Dm644 res/icons/64x64/*.png -t debian/kime/usr/share/icons/hicolor/64x64/apps/
	
	# Install docs
	install -Dm644 res/default_config.yaml debian/kime/usr/share/doc/kime/default_config.yaml
	
	# Install dev files (included in main package)
	install -Dm644 src/engine/cffi/kime_engine.h debian/kime/usr/include/kime_engine.h
	install -Dm644 src/engine/cffi/kime_engine.hpp debian/kime/usr/include/kime_engine.hpp
	
	# Install GTK3 module (included in main package)
	install -Dm755 build/lib/libkime-gtk3.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/gtk-3.0/3.0.0/immodules/im-kime.so
	
	# Install GTK4 module (included in main package)
	install -Dm755 build/lib/libkime-gtk4.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/gtk-4.0/4.0.0/immodules/libkime-gtk4.so
	
	# Install Qt5 module (included in main package)
	install -Dm755 build/lib/libkime-qt5.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/qt5/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so
	
	# Install Qt6 module (included in main package)
	install -Dm755 build/lib/libkime-qt6.so debian/kime/usr/lib/$(DEB_HOST_MULTIARCH)/qt6/plugins/platforminputcontexts/libkimeplatforminputcontextplugin.so

override_dh_auto_clean:
	rm -rf target build vendor .cargo

override_dh_auto_test:
	# Skip tests
openSUSE Build Service is sponsored by