mirror of
https://github.com/flectar/mail.git
synced 2026-11-11 17:57:54 +00:00
Tier-3 community port (maintainer: springmin), rebased onto the merged document-provider abstraction (#84) and the opener seam (#80). - platform/ohos: Slint backend (XComponent window adapter, software renderer with the experimental femtovg/wgpu path, input/IME, clipboard, system fonts), the NAPI cdylib that builds a PlatformContext (app-private paths, DocumentProvider over the ArkTS pickers, Asset Store credential store, loopback OAuth broker, external URL opener, notification publisher) and calls flectar_mail::run, the demo crate, the ArkTS shell and the build and packaging scripts (bundle name configurable, defaults to com.flectar.mail_ohos). - src/platform/ohos.rs: PDFium directory, renderer name, thread priority, preview lifecycle, email font directory; OpenHarmony stays under the mobile capability alias. - patches/fontique + crates/fontique: the Fontconfig opt-out as a patch queue applied by the platform/ohos workspace, verified from quality.yml. - .github/workflows/ohos.yml: manually dispatched tier-3 workflow, unsigned by default, signing material only from the FLECTAR_OHOS_* secrets. - src/documents.rs: run_request blocks the calling thread on mobile hosts; the picker covers the window, and keeping the presentation thread idle is what OpenHarmony needs (verified on device; desktop keeps the runtime request for the native dialog). - The email renderer and the compose editor load platform::email_font_dir() and the Han fallback, so CJK mail bodies and composed text render with the platform fonts. - New-mail notifications: a publisher seam fed by CoreEvent::MailNew; the host publishes through @kit.NotificationKit.
35 lines
1.3 KiB
Bash
Executable File
35 lines
1.3 KiB
Bash
Executable File
# Environment for building the OHOS platform bits natively on this machine.
|
|
#
|
|
# Usage:
|
|
# . platform/ohos/scripts/env.sh
|
|
# cd platform/ohos && cargo build --release -p slint-ohos-demo
|
|
#
|
|
# NOTE: the login environment already exports `OHOS_SDK` (pointing at an SDK
|
|
# *native* subdirectory), so this script deliberately uses OHOS_SDK_ROOT for
|
|
# the full SDK root and OHOS_SDK_NATIVE for the native SDK.
|
|
#
|
|
# The lld from the OHOS SDK needs the SDK's own libxml2: the harmonybrew copy
|
|
# lacks the symbols lld imports, so it must not shadow the SDK one.
|
|
|
|
OHOS_SDK_ROOT="${OHOS_SDK_ROOT:-$HOME/.harmonybrew/opt/ohos-sdk}"
|
|
OHOS_SDK_ROOT="${OHOS_SDK_ROOT%/}"
|
|
OHOS_SDK_NATIVE="${OHOS_SDK_NATIVE:-$HOME/.harmonybrew/opt/ohos-sdk-native}"
|
|
export OHOS_SDK_ROOT OHOS_SDK_NATIVE
|
|
|
|
case ":$LD_LIBRARY_PATH:" in
|
|
*":$OHOS_SDK_ROOT/native/llvm/lib:"*) ;;
|
|
*) LD_LIBRARY_PATH="$OHOS_SDK_ROOT/native/llvm/lib:$LD_LIBRARY_PATH" ;;
|
|
esac
|
|
export LD_LIBRARY_PATH
|
|
|
|
export HDC="${HDC:-$OHOS_SDK_ROOT/toolchains/hdc}"
|
|
export HAP_SIGN_TOOL="${HAP_SIGN_TOOL:-$OHOS_SDK_ROOT/toolchains/lib/hap-sign-tool}"
|
|
export HDC_TARGET="${HDC_TARGET:-127.0.0.1:36823}"
|
|
|
|
# hdc, hap-sign-tool etc. convenience PATH (optional).
|
|
case ":$PATH:" in
|
|
*":$OHOS_SDK_ROOT/toolchains:"*) ;;
|
|
*) PATH="$OHOS_SDK_ROOT/toolchains:$PATH" ;;
|
|
esac
|
|
export PATH
|