首页 > 解决方案 > 在 Delphi/Lazarus 中处理项目共享库的文件夹结构

问题描述

我的项目共享许多公共库,有时一个项目应该使用不同版本的代码库。我修补了一些库以纠正错误。

如何组织文件夹结构以使初始项目设置更容易?

标签: delphienvironment-variableslazarusfreepascal

解决方案


保留代码库

要共享代码库,我们应该使用共享代码存储库,例如 VCS 存储库或只是共享文件夹。为了更好地导航创建一个树结构,使用这样的路径lib-name\lib-name-version。版本可以是版本号、版本名称、VCS 变更集 ID 或任何其他字符串以指示 lib 版本。如果您想添加您喜欢的库名称的补丁或采用的版本,lib-name-version-private并添加 PatchInfo.txt 描述您对其他开发人员所做的更改。您还可以为没有源代码的库保留已编译的库 DCU 文件。

示例库存储库结构:

+ superobject
|  |- superobject-1.1
|  +- superobject-1.2
+ synapse
|  |- synapse-1.0
|  |- synapse-r209
|  +- synapse-r209-private
+indy
   |- indy-9.0
   +- indy-10.0.0.52

访问库/库路径

为了允许任何开发人员将库保存在他想要的任何地方,请使用 OS Environment Vars。项目选项或 IDE 库路径中的 Delphi IDE/Lazarus IDE 可以在构建期间将 $(env-var-name) 宏替换为 env var 值。创建一个 env var PascalCommonLibs=D:\PascalCommonLibs,指定您的库存储库根路径,然后将您想要的库添加到库路径。

Delphi 的库路径示例:

$(PascalCommonLibs)\superobject\superobject-1.2
$(PascalCommonLibs)\synapse\synapse-r209-private

Lazarus 的库路径示例:

$Env(PascalCommonLibs)\superobject\superobject-1.2
$Env(PascalCommonLibs)\synapse\synapse-r209-private

现在您甚至可以创建一个默认库路径列表,每个开发人员都可以将其粘贴到 IDE 库路径中。

此方法还简化了自动构建配置,只需PascalCommonLibs在脚本中使用 env var 指定库或源搜索路径。


推荐阅读