2 Commits
Author SHA1 Message Date
Stephan Bergmann 6d12a896d6 Clean the artifacts that rust_uno/CustomTarget_* put in $(SRCDIR)
This is a temporary measure.  The right fix will be to not have those
CustomTargets put anything into $(SRCDIR) in the first place.

Change-Id: Ib211b5bc5e0059c8c8206c044e28443265d69353
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194517
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Code-Style: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-11-25 14:59:18 +01:00
Mohamed Ali 3d75577640 Rust Bindings: Add extension-based UNO integration with FFI architecture
Implements LibreOffice extension providing Rust language binding for UNO API
using opaque pointer FFI architecture with type-safe handles.

Extension Features:
- User-controlled execution via "Rust UNO → Example" menu
- Optional installation/removal through LibreOffice extension system
- Complete Writer document manipulation example

Technical Implementation:
- Generated Rust wrappers for all UNO types via rustmaker
- C++ extern "C" bridges with proper UNO integration
- Type-safe opaque handles (XTextDocumentHandle, etc.)
- Extension architecture following LibreOffice standards
- Menu integration via Addons.xcu and ProtocolHandler.xcu

Architecture:
- Rust RAII Wrappers ↔ C++ extern "C" Bridges ↔ LibreOffice UNO
- Extension packaging with rust_uno-example.oxt
- Integrated build system with CustomTarget and Library makefiles

Build Commands:
./configure --enable-rust-uno

Extension Structure:
- rust_uno/example/ - Extension source files
- workdir/Extension/rust_uno-example.oxt - Packaged extension
- Automatic installation during LibreOffice build

Runtime Validation:
Successfully demonstrates complete UNO integration:
- Desktop service creation and XComponentLoader interface
- Writer document loading via loadComponentFromURL
- Text manipulation through XTextDocument and XSimpleText
- Proper interface querying and method invocation

GSoC 2025: Rust UNO Language Binding

Change-Id: I5cecb8ebd05aab396f444488c0ee2a9d483a9f62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186425
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2025-09-11 21:39:08 +02:00