GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - JackalClient/example-module: JackalClient 一个注册自定义模块的扩展示例。

BranchesTags
Open more actions menu

Latest commit

 

History

4 Commits
4 Commits

Folders and files

NameName
Last commit message
Last commit date
CMakeLists.txt
CMakeLists.txt
 
 
Dictionary.txt
Dictionary.txt
 
 
README.md
README.md
 
 
example-module-x64.dll
example-module-x64.dll
 
 
example-module-x86.dll
example-module-x86.dll
 
 
example.cpp
example.cpp
 
 
example.def
example.def
 
 
example.png
example.png
 
 
extension.json
extension.json
 
 

Repository files navigation

ExampleExtension

一个简易的 JackalClient C++ 原生模块示例,你可以参考其写法创建你自己的扩展。JackalClient 扩展不一定会注册模块,也不一定必须使用 C++ 编写扩展。想了解更多有关 「Jackal 扩展与SDK」 的相关信息,请参考此处。

对于本示例扩展模块,启用后观察 时钟 (Clock) 模块的开关和配置,布尔等配置发生变化时通知变化项名称;可选请求开启目标模块、停用本扩展时恢复原状态。每次启用还会更新本模块的 启用次数 (Activation Count),演示配置读取和异步写入。 目标名称使用原始英文名;改动目标和联动选项后重新启用本模块。

Run Command On Enable / Enable Command 在观察目标由关变开时执行;Run Command On Disable / Disable Command 在观察目标由开变关时执行,不再因启动本扩展而执行。

新增词典词条位于本扩展的 Dictionary.txt,通过清单 contributes.Dictionary 引用并随扩展一起打包;安装后补充到内存词典。公共词条优先,扩展之间同名词条按扩展 ID 排序取第一项。

在编写扩展时,请额外注意 extension.json 的书写,包括各个文件的类型与哈希等,注意格式。

构建

需要 Windows、Visual Studio C++、CMake 和 nlohmann-json。提前下载 JackalExtensionSDK,将它与本扩展目录放在同一父目录下:

workspace/
├─ JackalExtensionSDK/
│  ├─ jackal_extension.h
│  └─ jackal_extension.hpp
└─ example-module/
   ├─ CMakeLists.txt
   ├─ example.cpp
   └─ extension.json

CMake 使用 ../JackalExtensionSDK/ 作为头文件搜索路径,源码即可包含 jackal_extension.hpp。SDK 的入门说明位于同级 ../JackalExtensionSDK/README.md,完整用法见官网教程。

安装依赖:

vcpkg install nlohmann-json:x64-windows-static nlohmann-json:x86-windows-static

单独下载本示例后,在本目录执行,使用自己的 vcpkg 安装前缀:

cmake -S . -B ../build/example-module-x64 -A x64 -DCMAKE_PREFIX_PATH="$env:VCPKG_ROOT/installed/x64-windows-static"
cmake --build ../build/example-module-x64 --config Release
cmake -S . -B ../build/example-module-x86 -A Win32 -DCMAKE_PREFIX_PATH="$env:VCPKG_ROOT/installed/x86-windows-static"
cmake --build ../build/example-module-x86 --config Release

在仓库根目录执行,使用现有 vcpkg 安装前缀(按本机实际路径修改):

cmake -S extensions/example-module -B build/example-module-x64 -A x64 -DCMAKE_PREFIX_PATH="$env:VCPKG_ROOT/installed/x64-windows-static"
cmake --build build/example-module-x64 --config Release
cmake -S extensions/example-module -B build/example-module-x86 -A Win32 -DCMAKE_PREFIX_PATH="$env:VCPKG_ROOT/installed/x86-windows-static"
cmake --build build/example-module-x86 --config Release

直接在本目录生成 example-module-x86.dll 与 example-module-x64.dll;中间构建文件仍位于仓库根目录的 build/。清单同时声明两种位数,因此两者必须都存在才能导入、打包或发布。

独立下载的示例则把中间文件放在上级目录的 build/。重新构建后,应更新清单中所有已登记文件的 size、sha256;本地调试也可先移除这两个校验字段,由客户端导入时计算。检查方法及发布步骤见同级 ../JackalExtensionSDK/README.md 的“安装与发布”一节及官网教程。

使用与发布

在 扩展 (Extensions) 点击 导入本地 (Import local...) → 选择扩展文件夹,选择本目录;首次导入完成后即可在 Misc 找到 “示例扩展”模块,手动开启即可,无需重启。已加载扩展的更新、禁用和删除仍在重启后生效。也可先打包生成带校验的发布目录,再压缩导入。

About

JackalClient 一个注册自定义模块的扩展示例。

Resources

Readme
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.