ONLYOFFICE Desktop Editors 向 HarmonyOS(OHOS arm64)的移植源码仓库:收录上游 ONLYOFFICE Desktop Editors 源码树与本平台适配改动,许可证以仓库内收录的上游许可文本为准
当前访问频次受限,请登录后继续访问
Harmony-ONLYOFFICE
下载与交流
- 华为应用市场:AirOffice
- 交流群:1105698553
ONLYOFFICE Desktop Editors 原生内核向 HarmonyOS(OHOS arm64) 的移植 —— x2t 文档转换器与编辑器内核交叉构建为一组 .so。
移植方式
- 交叉编译:宿主机 qmake(Qt 6,仅作为 Makefile 生成器,工程本身
QT -= core gui)+ 自定义 specmkspecs/linux-ohos-clang+ OHOS NDK clang(--sysroot、-D__MUSL__、libc++、lld)。 - 构建产物:
core/build/lib/linux_arm64/下 30 个左右模块库,x2t以libx2t.so+ 运行时dlopen按需加载的方式工作(清单见scripts/build_core_all.sh与scripts/deploy_converter.sh)。 - 关键适配:
doctrenderer以 stub 方式移植(DesktopEditor/doctrenderer/stub/),native 层不依赖 V8;编辑器 UI 由 Web 层(sdkjs / web-apps)承载。DEFINES+=NOT_USE_PTHREAD_CANCEL(musl 无该取消语义)、CONFIG+=no_heif。- harfbuzz
src/hb-ft.cc打了符号字体 charmap 回退补丁(见scripts/patches/harfbuzz-8.3.0-ohos.patch)。 - 中文字体别名映射(宋体/微软雅黑 → HarmonyOS Sans SC 等)由
scripts/gen_allfonts.py生成AllFonts.js。
仓库结构
| 目录 | 说明 |
|---|---|
desktopeditors-src/ |
上游 DesktopEditors 超级项目快照(core / desktop-sdk / sdkjs / web-apps),叠加各模块 OHOS 移植改动(Makefile.ohos 等) |
scripts/ |
OHOS 交叉编译、部署与字体脚本(从工程 native 层整理而来,路径已可迁移) |
mkspecs/linux-ohos-clang/ |
qmake 交叉编译 spec(工具链取自 ohos_env.sh 导出的环境变量) |
scripts/patches/ |
相对上游第三方库的本地补丁 |
构建
前置条件:
- OHOS SDK command-line-tools(默认路径
~/Library/command-line-tools/sdk/default/openharmony/native,可由OHOS_NDK覆盖) - 宿主机 Qt 6(
brew install qt,qmake 位于/opt/homebrew/opt/qt/bin/qmake)、make、python3
步骤:
# 1. 交叉编译全部 core 模块(约 30 个 .pro,逐个 qmake -> Makefile.ohos -> make)
scripts/build_core_all.sh
# 产物: desktopeditors-src/core/build/lib/linux_arm64/*.so
# 2. 部署转换器 .so 集合 + icudt74l.dat + 空文档模板到 HAP 目录
# (期望本仓库位于 App 工程内,与 entry 模块同级;独立检出时按需手改)
scripts/deploy_converter.sh
# 3. 生成 AllFonts.js(参数:<字体目录> <输出路径>)
python3 scripts/gen_allfonts.py <rawfile/fonts> <sdkjs/common/AllFonts.js>
单独重编某个模块:scripts/build_core_one.sh <相对 core 的 .pro 路径> [额外 CONFIG+= ...]。
仓库内已提交的 Makefile.ohos 均为 qmake 生成物,其中可能残留原始构建机的绝对路径,重新生成即被覆盖。
如需重编 boost:scripts/build_boost_ohos.sh(源码树需自行放置,见下表)。
第三方依赖
| 组件 | 版本 / 上游提交 | 是否入库 | 位置 / 说明 |
|---|---|---|---|
| boost | 1.72.0(789155d) |
头文件 + OHOS 静态库 | core/Common/3dParty/boost/build/linux_arm64/;完整源码未入库(上游无改动),需重编时自行获取 boost_1_72_0 |
| ICU | release-74-2(2d02932) |
头文件 + OHOS 静态库 | core/Common/3dParty/icu/linux_arm64/build/;源码未入库(上游无改动) |
| harfbuzz | 8.3.0(894a1f7) |
完整源码 | 含 hb-ft.cc 本地补丁,独立补丁文件见 scripts/patches/ |
| openssl | 随 core 快照 | 完整源码 | core/Common/3dParty/openssl/openssl-src/ |
| brotli / cryptopp / katana / gumbo 等 | 随 core 快照 | 完整源码 | 以源码方式编入相应模块 |
仓库范围
- 本仓库收录 ONLYOFFICE DesktopEditors 源码快照(
core/desktop-sdk/sdkjs/web-apps)、各模块 HarmonyOS 交叉构建配置(Makefile.ohos)、构建与部署脚本(scripts/、mkspecs/); - boost 与 ICU 以面向 OHOS arm64 的头文件与静态库形式收录(见上表路径),对应完整源码树可按表内版本与提交号自上游官方渠道获取;
- 构建产物、本地工具链与缓存目录不纳入版本库(见
.gitignore); scripts/中脚本的路径定位基于仓库所在目录推导,便于在不同检出位置使用。
许可证
本项目继承 ONLYOFFICE 上游许可证 GNU AGPL v3(见 LICENSE)。上游组件:
harfbuzz(MIT)、ICU(ICU License)、boost(Boost License)、OpenSSL(Apache-2.0)等以各自许可证发布。
项目介绍
ONLYOFFICE Desktop Editors 向 HarmonyOS(OHOS arm64)的移植源码仓库:收录上游 ONLYOFFICE Desktop Editors 源码树与本平台适配改动,许可证以仓库内收录的上游许可文本为准
定制我的领域