Skip to content

Latest commit

 

History

History
81 lines (57 loc) · 8.71 KB

README_RUS.md

File metadata and controls

81 lines (57 loc) · 8.71 KB

Инструкция по сборке программы из исходников

Программа имеет 2 режима сборки ZCAD и ZCADELECTROTECH, в первом только базовые CAD функции, во втором плюсом чуток электрической специфики. Советую пробовать собрать ZCADELECTROTECH, т.к. я его сам всегда использую, соответственно он более стабилен.

Простая компиляция исходников даст вам только файл zcad.exe, но для для работы нужны некоторые другие файлы, без которых программа не работает (не говоря о allgeneratedfiles.inc, zcadversion.inc и buildmode.inc без которых даже не скомпилируется)

Для автоматизации процесса сборки был написан скрипт на основе сисемы сборки make. Опишу его использование применительно к тридцатидвух битным Lazarus2.2 и fpc3.2.2 под управлением ОС Windows

Итак:

1 Установка Lazarus

Устанавливаем последний релизный Lazarus (2.2 на момент написания текста). Гарантированно зкад компилится в транковом Lazarus транковым fpc, с релизами бывают нюансы, но они решаемы.

Запускаем, проверяем работоспособность Lazarus - собираем тестовый пустой проект. тут проблем быть не должно.

Ищем идущую в комплекте fpc утилиту make, она скорее всего лежит тут lazarus\fpc\3.2.2\bin\i386-win32\make.exe но, мало ли. В дальнейшем я считаю что Lazarus установлен на диск C, и путь для запуска make соответственно C:\lazarus\fpc\3.2.2\bin\i386-win32\make.exe если что - уточнить по месту)).

Также еще понадобятся такие пути:

  • путь к Lazarus C:\lazarus
  • путь к первичному файлу настроек Lazarus, по умолчанию он C:\Users\<ИМЯПОЛЬЗОВАТЕЛЯ>\AppData\Local\lazarus

Если имя пользователя у вас на кириллице, примите мои поздравления! Требуются дополнительные действия, пользователи с нормальными именами спокойно переходят к пункту 2.

Кириллица в путях не поддерживается утилитой make, или я с этим не разобрался. Придется "перенастроить" Lazarus чтоб настройки хранились по 'нормальным' путям. Для этого в папке C:\lazarus создаем файл runlazarus.bat следующего содержания:

startlazarus.exe --pcp=C:\lazarus\mylazcfg

и далее всегда используем его для запуска Lazarus IDE, все что написано ниже вам следует отредактировать из расчета что путь к настройкам Lazarus будет C:\lazarus\mylazcfg

2 Получение ZCAD

Клонируем исходники зкада (или скачиваем архивом, но это плохо, лучше клонировать gitом). Некоторые части исходников оформлены субмодулями git, поэтому субмодули zcad нужно инициализировать и обновить. По описаным выше причинам путь до папки zcad не должен содержать нелатинские символы Тут будет много файлов\папок, но основные:

  • zcad\cad_source - папка с исходниками зкад
  • zcad\environment - папка с файлами окружения программы и исходник небольшой програмки typeexporter настраивающей исходники зкад для компиляции
  • zcad\Makefile - файл с скриптами установки
  • zcad\cad - данной папки изначально нет, будет создана в пункте 4 и содержит скомпилированный дистрибутив zcad со всеми нужными файлами

3 Установка пакетов от которых зависит ZCAD

Для облегчения я приложил пакеты от которых зависит ZCAD в дистрибутив исходников (за исключением идущих в составе Lazarus). Открываем командную строку в папке zcad, там где лежит файл Makefile.

Нужно установить в Lazarus пакеты требуемые для компиляции зкад, пункт выполняется только один раз, для свеже установленного Lazarus, если пакеты установлены, пропускаем данный пункт (но если что, то повторное выполнение ничего страшного не несет). Выполняем:

C:\lazarus\fpc\3.2.2\bin\i386-win32\make installpkgstolaz LP=C:\lazarus PCP=C:\Users\<ИМЯПОЛЬЗОВАТЕЛЯ>\AppData\Local\lazarus

installpkgstolaz это пропишет в конфигах Lazarus требуемые пакеты из zcad\cad_source\other и zcad\cad_source\components и пересоберет Lazarus. По неясным причинам пересборка в данном пункте иногда завершается ошибкой, но ничего страшного, просто идем дальше, Lazarus докомпилирует все нужное в 4.

4 Компиляция ZCAD

Собственно запускаем компиляцию зкад, запустив следующее:

C:\lazarus\fpc\3.2.2\bin\i386-win32\make cleanzcadelectrotech LP=C:\lazarus PCP=C:\Users\<ИМЯПОЛЬЗОВАТЕЛЯ>\AppData\Local\lazarus

cleanzcadelectrotech - данная цель выполнит сборку программы в режиме ZCADELECTROTECH, замените на cleanzcad - если желаете режим ZCAD

Скрипт выполнит следующее:

  • СОТРЕТ папки zcad\cad и zcad\cad_source\autogenerated если они присутствует СО ВСЕМ ИХ СОДЕРЖИМЫМ ничего не спрашивая
  • создаст папки zcad\cad и zcad\cad_source\autogenerated
  • скопирует нужные для работы файлы из zcad\environment\runtimefiles в zcad\cad
  • создаст файл zcad\cad_source\zcadversion.inc
  • создаст файл zcad\cad_source\autogenerated\buildmode.inc
  • скомпилирует zcad\cad_source\cad_source\utils\typeexporter.lpi и запустит его с нужными параметрами, typeexporter в свою очередь наполнит zcad\cad_source\autogenerated в том числе создаст zcad\cad_source\autogenerated\allgeneratedfiles.inc (только после этого шага зкад может быть собран)
  • скомпилирует zcad

Если все прошло нормально, имеем наполненную как надо папку zcad\cad, в том числе свежесозданный запускаемый бинарник zcad\cad\bin\i386-win32\zcad.exe В дальнейшем можно просто открыть в Lazarus файл zcad\cad_source\zcad.lpi и смотреть-собирать исходники как обычно в IDE

PS. Lazarus, FPC и ZCAD развивающиеся проекты, инфа устаревает и бывают нюансы. В частности на данный момент из-за бага FPC https://gitlab.com/freepascal.org/fpc/source/-/issues/39387 в IDE работает только полная пересборка зкада, т.е. в Lazarus если просто нажать F9 зкад не соберется с вылетом компилятора, при любых изменениях надо всегда выполнять полную пересборку shift-F9