Программа имеет 2 режима сборки ZCAD и ZCADELECTROTECH, в первом только базовые CAD функции, во втором плюсом чуток электрической специфики. Советую пробовать собрать ZCADELECTROTECH, т.к. я его сам всегда использую, соответственно он более стабилен.
Простая компиляция исходников даст вам только файл zcad.exe
, но для для работы нужны некоторые другие файлы, без которых программа не работает
(не говоря о allgeneratedfiles.inc
, zcadversion.inc
и buildmode.inc
без которых даже не скомпилируется)
Для автоматизации процесса сборки был написан скрипт на основе сисемы сборки make. Опишу его использование применительно к тридцатидвух битным Lazarus2.2 и fpc3.2.2 под управлением ОС Windows
Итак:
Устанавливаем последний релизный 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
Клонируем исходники зкада (или скачиваем архивом, но это плохо, лучше клонировать gitом). Некоторые части исходников оформлены субмодулями git, поэтому субмодули zcad нужно инициализировать и обновить. По описаным выше причинам путь до папки zcad
не должен содержать нелатинские символы
Тут будет много файлов\папок, но основные:
zcad\cad_source
- папка с исходниками зкадzcad\environment
- папка с файлами окружения программы и исходник небольшой програмкиtypeexporter
настраивающей исходники зкад для компиляцииzcad\Makefile
- файл с скриптами установкиzcad\cad
- данной папки изначально нет, будет создана в пункте 4 и содержит скомпилированный дистрибутив 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.
Собственно запускаем компиляцию зкад, запустив следующее:
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