add purposeplugin for kde
This commit is contained in:
69
purpose_plugin/build_plugin.sh
Executable file
69
purpose_plugin/build_plugin.sh
Executable file
@@ -0,0 +1,69 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
OUTPUT_TARGET="${1:-$SCRIPT_DIR}"
|
||||
mkdir -p "$OUTPUT_TARGET"
|
||||
OUTPUT_DIR="$(cd "$OUTPUT_TARGET" && pwd)"
|
||||
|
||||
MOC_BIN=""
|
||||
for candidate in /usr/libexec/qt6/moc /usr/lib64/qt6/libexec/moc moc-qt6 moc; do
|
||||
if command -v "$candidate" &>/dev/null; then
|
||||
MOC_BIN="$candidate"
|
||||
break
|
||||
elif [ -x "$candidate" ]; then
|
||||
MOC_BIN="$candidate"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$MOC_BIN" ]; then
|
||||
echo "Warning: Qt6 moc compiler not found. Skipping Purpose plugin compilation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Detect header search paths
|
||||
INC_ARGS=()
|
||||
if [ -d "/usr/include/KF6/Purpose" ]; then
|
||||
INC_ARGS+=("-I/usr/include/KF6/Purpose" "-I/usr/include/KF6/KCoreAddons" "-I/usr/include/KF6")
|
||||
elif [ -d "/tmp/purpose_devel/usr/include/KF6/Purpose" ]; then
|
||||
INC_ARGS+=("-I/tmp/purpose_devel/usr/include/KF6/Purpose" "-I/tmp/purpose_devel/usr/include/KF6/KCoreAddons" "-I/tmp/purpose_devel/usr/include/KF6")
|
||||
fi
|
||||
|
||||
if [ -d "/usr/include/qt6" ]; then
|
||||
INC_ARGS+=("-I/usr/include/qt6" "-I/usr/include/qt6/QtCore" "-I/usr/include/qt6/QtGui")
|
||||
fi
|
||||
|
||||
if [ ${#INC_ARGS[@]} -eq 0 ]; then
|
||||
echo "Warning: KF6 Purpose headers not found. Skipping Purpose plugin compilation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
LIB_ARGS=()
|
||||
if [ -f "/usr/lib64/libKF6Purpose.so.6" ]; then
|
||||
LIB_ARGS+=("/usr/lib64/libKF6Purpose.so.6")
|
||||
elif [ -f "/usr/lib/libKF6Purpose.so.6" ]; then
|
||||
LIB_ARGS+=("/usr/lib/libKF6Purpose.so.6")
|
||||
fi
|
||||
|
||||
if [ -f "/usr/lib64/libKF6CoreAddons.so.6" ]; then
|
||||
LIB_ARGS+=("/usr/lib64/libKF6CoreAddons.so.6")
|
||||
elif [ -f "/usr/lib/libKF6CoreAddons.so.6" ]; then
|
||||
LIB_ARGS+=("/usr/lib/libKF6CoreAddons.so.6")
|
||||
fi
|
||||
|
||||
BUILD_DIR="$(mktemp -d)"
|
||||
trap 'rm -rf "$BUILD_DIR"' EXIT
|
||||
|
||||
cp "$SCRIPT_DIR/f0ckmplugin.cpp" "$SCRIPT_DIR/f0ckmplugin.json" "$BUILD_DIR/"
|
||||
|
||||
pushd "$BUILD_DIR" >/dev/null
|
||||
"$MOC_BIN" "${INC_ARGS[@]}" f0ckmplugin.cpp -o f0ckmplugin.moc
|
||||
g++ -shared -fPIC -O2 f0ckmplugin.cpp \
|
||||
"${INC_ARGS[@]}" \
|
||||
"${LIB_ARGS[@]}" \
|
||||
-lQt6Core \
|
||||
-o "$OUTPUT_DIR/f0ckmpurposeplugin.so"
|
||||
popd >/dev/null
|
||||
|
||||
echo "Successfully built f0ckmpurposeplugin.so at $OUTPUT_DIR/f0ckmpurposeplugin.so"
|
||||
Reference in New Issue
Block a user