Compare commits
2 Commits
6bc1a3e3fb
...
0f58dcad03
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f58dcad03 | |||
| 6325fb51cc |
@@ -68,8 +68,9 @@ then restart `dde-shell` (it discovers applets by scanning the install dir for
|
|||||||
├── CMakeLists.txt # Build configuration
|
├── CMakeLists.txt # Build configuration
|
||||||
├── install.sh # Install script
|
├── install.sh # Install script
|
||||||
├── build-deb.sh # Deb packaging script
|
├── build-deb.sh # Deb packaging script
|
||||||
├── networkmonitorapplet.h # C++ backend header
|
├── src/
|
||||||
├── networkmonitorapplet.cpp # C++ backend implementation
|
│ ├── networkmonitorapplet.h # C++ backend header
|
||||||
|
│ └── networkmonitorapplet.cpp # C++ backend implementation
|
||||||
├── package/
|
├── package/
|
||||||
│ ├── metadata.json.in # Plugin metadata 模板(由 CMake 生成 metadata.json)
|
│ ├── metadata.json.in # Plugin metadata 模板(由 CMake 生成 metadata.json)
|
||||||
│ └── networkview.qml # QML UI
|
│ └── networkview.qml # QML UI
|
||||||
|
|||||||
+4
-3
@@ -14,14 +14,15 @@ find_package(DDEShell REQUIRED)
|
|||||||
set(PLUGIN_ID "space.jokul.JNetApplet")
|
set(PLUGIN_ID "space.jokul.JNetApplet")
|
||||||
|
|
||||||
add_library(space.jokul.JNetApplet SHARED
|
add_library(space.jokul.JNetApplet SHARED
|
||||||
networkmonitorapplet.h
|
src/networkmonitorapplet.h
|
||||||
networkmonitorapplet.cpp
|
src/networkmonitorapplet.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(space.jokul.JNetApplet PROPERTIES PREFIX "")
|
set_target_properties(space.jokul.JNetApplet PROPERTIES PREFIX "")
|
||||||
|
|
||||||
|
# 头文件搜索路径指向 src/,使 #include "networkmonitorapplet.h" 可被外部解析
|
||||||
target_include_directories(space.jokul.JNetApplet PRIVATE
|
target_include_directories(space.jokul.JNetApplet PRIVATE
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
/usr/include/dde-shell
|
/usr/include/dde-shell
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -65,8 +65,9 @@ bash build-deb.sh
|
|||||||
├── CMakeLists.txt # 构建配置
|
├── CMakeLists.txt # 构建配置
|
||||||
├── install.sh # 安装脚本
|
├── install.sh # 安装脚本
|
||||||
├── build-deb.sh # deb 一键打包脚本
|
├── build-deb.sh # deb 一键打包脚本
|
||||||
├── networkmonitorapplet.h # C++ 后端头文件
|
├── src/
|
||||||
├── networkmonitorapplet.cpp # C++ 后端实现
|
│ ├── networkmonitorapplet.h # C++ 后端头文件
|
||||||
|
│ └── networkmonitorapplet.cpp # C++ 后端实现
|
||||||
├── package/
|
├── package/
|
||||||
│ ├── metadata.json.in # 插件元数据模板(由 CMake 生成 metadata.json)
|
│ ├── metadata.json.in # 插件元数据模板(由 CMake 生成 metadata.json)
|
||||||
│ └── networkview.qml # QML 界面
|
│ └── networkview.qml # QML 界面
|
||||||
|
|||||||
+38
-12
@@ -4,23 +4,49 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo "Building JNetApplet..."
|
INSTALL_DIR="/usr/share/dde-shell/space.jokul.JNetApplet"
|
||||||
|
SO_DIR="/usr/lib/x86_64-linux-gnu/dde-shell"
|
||||||
|
|
||||||
# 清理旧的构建目录
|
echo "=== JNetApplet 安装脚本 ==="
|
||||||
|
|
||||||
|
# 1. 清理旧的构建目录
|
||||||
|
echo "[1/6] 清理构建目录..."
|
||||||
rm -rf build
|
rm -rf build
|
||||||
|
|
||||||
# 配置CMake
|
# 2. 配置 + 构建
|
||||||
cmake -Bbuild
|
echo "[2/6] 配置 CMake 并构建..."
|
||||||
|
cmake -B build
|
||||||
# 构建
|
|
||||||
cmake --build build
|
cmake --build build
|
||||||
|
|
||||||
echo "Installing JNetApplet (requires sudo)..."
|
# 3. 清理安装目录中残留的旧文件(包括之前重构产生的多余 QML 文件)
|
||||||
|
echo "[3/6] 清理安装目录中的旧文件..."
|
||||||
|
if [ -d "$INSTALL_DIR" ]; then
|
||||||
|
sudo rm -f "$INSTALL_DIR"/*.qml "$INSTALL_DIR"/*.qmlc
|
||||||
|
fi
|
||||||
|
|
||||||
# 安装
|
# 4. 清理 Qt QML 磁盘缓存(关键!否则 dde-shell 可能使用旧的编译缓存)
|
||||||
|
echo "[4/6] 清理 QML 磁盘缓存..."
|
||||||
|
rm -rf ~/.cache/preloader/qmlcache/ 2>/dev/null || true
|
||||||
|
find ~/.cache -path "*/dde-shell*" -name "*.qmlc" -delete 2>/dev/null || true
|
||||||
|
|
||||||
|
# 5. 安装
|
||||||
|
echo "[5/6] 安装插件(需要 sudo)..."
|
||||||
sudo cmake --install build
|
sudo cmake --install build
|
||||||
|
|
||||||
echo "Installation complete!"
|
# 验证安装结果
|
||||||
echo "Restarting dde-shell..."
|
echo ""
|
||||||
systemctl --user restart dde-shell@DDE
|
echo "=== 安装验证 ==="
|
||||||
echo "Done! Plugin loaded."
|
echo "QML 文件:"
|
||||||
|
ls -la "$INSTALL_DIR"/*.qml 2>/dev/null || echo " [警告] 未找到 QML 文件!"
|
||||||
|
echo "动态库:"
|
||||||
|
ls -la "$SO_DIR"/space.jokul.JNetApplet.so 2>/dev/null || echo " [警告] 未找到 .so 文件!"
|
||||||
|
echo "metadata.json 版本:"
|
||||||
|
grep '"Version"' "$INSTALL_DIR/metadata.json" 2>/dev/null || echo " [警告] 未找到 metadata.json!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 6. 重启 dde-shell
|
||||||
|
echo "[6/6] 重启 dde-shell..."
|
||||||
|
systemctl --user stop dde-shell@DDE 2>/dev/null || true
|
||||||
|
sleep 1
|
||||||
|
systemctl --user start dde-shell@DDE
|
||||||
|
echo "完成!插件已加载。"
|
||||||
|
|||||||
Reference in New Issue
Block a user