Структура папок для работы с общими библиотеками проектов в Delphi / Lazarus - PullRequest
0 голосов
/ 24 октября 2018

Мои проекты используют много общих библиотек, и иногда один проект должен использовать другую версию библиотеки кода.И некоторые из библиотек были исправлены мной, чтобы исправить ошибки.

Как организовать структуру папок, чтобы упростить первоначальную настройку проекта?

1 Ответ

0 голосов
/ 24 октября 2018

Сохранение библиотек кода

Для совместного использования библиотек кода мы должны использовать общий репозиторий кода, например, VCS-репозиторий или просто общую папку.Для лучшей навигации создайте древовидную структуру, используйте такие пути, как этот lib-name\lib-name-version.Версия может быть номером версии, именем версии, идентификатором набора изменений VCS или любой другой строкой, указывающей версию lib.Если вы хотите добавить исправленную или принятую вами версию имени библиотеки, например, lib-name-version-private, и добавьте PatchInfo.txt, описывающий ваши изменения для других разработчиков.Вы также можете хранить скомпилированные lib 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.Delphi IDE / Lazarus IDE в параметрах проекта или путь к библиотеке 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 в скриптах для указания библиотеки или исходного пути поиска.

...