开发/代码总述

From The Document Foundation Wiki
Jump to: navigation, search

请在熟悉代码库后随时添加关于各代码库与目录的信息。 这篇高级文档可帮助新手大大理解并掌握 LibreOffice 的架构。

git 代码库

LibreOffice 的代码当前为嵌套式结构——尽管在 [1] git 只有一种结构——嵌套结构成了更为不同的结构,它在建设过程中使用。这里我们以某种概念上的顺序组织讨论。OpenOffice.org wiki 中的代码架构描述这篇高级文章也值得一看。更为有用的源码中高级目录的列表与描述最终也将出现在本页。还有一个使用 doxygen 根据源码自动创建的文档

build 代码库——编译的基础

'build' 是您需要 checkout 的第一个模块,因为它代表源码 checkout 的根本。它包含一组(但愿)可简化 LibreOffice 编译的编译工具与助手。build 中还有一些关键目录与文件:

  • bin/——编译所要用的关键工具都藏在这儿
  • build/——编译输出的目录。不要更改这里的源码,可以通过 rsyncmake clean 覆写。
  • configure——运行它(或更好的 autogen.sh)来配置 LibreOffice——别忘了 --with-git 参数。
  • clone/——download 存放顶级 git 代码库的地方,执行 clone/repos_changed 可强制重新同步树为 build/
  • doc/——关于代码和其他东西的随意无组织的想法。
  • download——此脚本——由 configure 根据 .in 文件生成——将 checkout 所有 git 代码库至 src/download 其他重要的先决条件。
  • Makefile.shared——在此指定顶级规则,这样可以与 Debian 规则共享
  • patches/——废弃,即将被移除——发行版特定 patch 原来藏在这儿;别进来。
  • po/——过渡用翻译存放在这儿
  • rawbuild/——这是指向 cloned/ 代码库的符号链接树(Unix 平台)——这样可以轻松重新同步入 build/
  • src/——download 最终需要的其他辅助文件与源码压缩包存放于此。
  • stamp/——储存 Makefile 所需各类操作的时间戳

ure/

Uno 运行期环境

libs-core/

framework

  • services/backingwindow.cxx: 开始中心按钮布局与相应的事件句柄

sfx2

  • appl/sfxhelp.?xx: 开始在线帮助查看器顶级窗口过程;处理帮助 URL 创建与发出

libs-extern/

libs-extern-sys/

libs-gui/

basebmp:

提供 BitmapDevice: vcl 软件渲染器——提供位图图像所需的算法与数据类型(如线条与填充多边形扫描转换,位图格式迭代器,以及兼容 SalGraphics 的软件渲染器)。用于如 wmf / svm 文件。如添加参数 -headless 使用,并且未设置 DISPLAY——它就是一款全软件后端的 LibO 图像后端。另请参阅 vcl/unx/headless。

cppcanvas

C++ 类 "canvas" 助手,另有 GDIMetaFile 至 XCanvas 的转换器。

l10ntools

svl

ucbhelper

basegfx

dtrans

o3tl

rsc

svtools

unotools

canvas

i18npool

padmin

打印机管理工具 (spadmin)

sax

toolkit

vcl

视觉组件库(Visual Components Library)负责部件(窗体、按钮、控件...)操作系统分离,包括基本渲染(如输出设备)。

comphelper

i18nutil

psprint_config

sot

tools

components/

filters/

应用程序代码库

writer/

calc/

base/

impress/

其他代码库

  • artwork
  • extensions
  • extras
  • help
  • postprocess
  • sdk
  • testing