SASGIS

Веб-картография и навигация

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

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

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

Сообщение DJ VK » 29 авг 2017, 18:28

Для начала разберем сборку программы без репозитория.

Подготовка
скрытый текст: показать
1. Создаем папку проекта.
Код: Выделить всё
g:\_SAS_\


2. В папку кладем исходники, например
Код: Выделить всё
g:\_SAS_\sas.planet.src\


3. В другую папку кладем библиотеки
Код: Выделить всё
g:\_SAS_\sas.libs\alcinoe-code\
g:\_SAS_\sas.libs\ccr-exif\
g:\_SAS_\sas.libs\embeddedWB\
g:\_SAS_\sas.libs\graphics32\
g:\_SAS_\sas.libs\mormot\
g:\_SAS_\sas.libs\pascalscript\
g:\_SAS_\sas.libs\synedit\
g:\_SAS_\sas.libs\tb2k\
g:\_SAS_\sas.libs\tbx\
g:\_SAS_\sas.libs\vsagps\


4. Создаем папку для сборки компонентов.
Код: Выделить всё
g:\_SAS_\sas.packages\


5. Открываем студию Берлин(Токио) и открываем окно опций программы
Tools-Options-

6. В разделе Environment Options-Environment Variables создаем новую переменную (Кнопка New...)
Код: Выделить всё
Variable Name = SASPATH
Variable Value = g:\_SAS_


7. Pедактируем там же в user overrides переменную Path (по кнопке Edit), добавляя в конец папку сборки компонентов, чтобы они видели друг друга.
Код: Выделить всё
$(Path);(пользовательские пути....);g:\_SAS_\sas.packages;


Внимание. Папку с программой _SAS_ можно переносить и переименовывать. При этом в user overrides надо будет поправить переменные SASPATH и Path .

8. Теперь пропишем пути для поиска. Откроем раздел Environment Options-Delphi Options-Library и допишем в Library Path (Сверху должна быть выбрана Windows 32) пути к папке сборки и исходникам компонентов
Код: Выделить всё
$(SASPATH)\sas.packages
$(SASPATH)\sas.libs\tb2k\Source
$(SASPATH)\sas.libs\tbx
$(SASPATH)\sas.libs\graphics32\Source\
$(SASPATH)\sas.libs\embeddedWB\Source\


9. Прописываем туда же (в Library Path) пути к библиотекам для сборки программы...
Код: Выделить всё
$(SASPATH)\sas.libs\alcinoe-code\source\
$(SASPATH)\sas.libs\ccr-exif\
$(SASPATH)\sas.libs\mormot\
$(SASPATH)\sas.libs\mormot\SQLite3\
$(SASPATH)\sas.libs\pascalscript\Source\
$(SASPATH)\sas.libs\synedit\Source\
$(SASPATH)\sas.libs\vsagps\PUBLIC\
$(SASPATH)\sas.libs\vsagps\RUNTIME\

Собираем пакедж tb2k
скрытый текст: показать
1. открываем группу проектов
Код: Выделить всё
g:\_SAS_\sas.libs\tb2k\Packages\tb2kdsgn_d24_berlin_install.groupproj

И идем в окошко ProjectManager.

2. Вызываем опции проекта tb2k_d24_berlin (Options из контекстного меню) и в разделе Delphi Compiler опций прописываем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages


3. Вызываем опции проекта tb2kdsgn_d24_berlin (Options из контекстного меню) и в разделе Delphi Compiler опций прописываем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages

Если второй проект не увидит предыдущий, надо будет прописать еще путь поиска: Search Path = $(SASPATH)\sas.packages

4. Собираем оба проекта (Build All из контекстного меню группы проектов tb2kdsgn_d24_berlin_install)

5. Затем устанавливаем компонент (Install в контекстном меню второго проекта)

6. сохраняем изменения в проектах и закрываем всё (File-Close All)

Собираем пакедж tbx
скрытый текст: показать
1. открываем групповой проект
Код: Выделить всё
g:\_SAS_\sas.libs\tbx\Packages\TBX_DX_BERLIN_Design_Install.groupproj

И идем в окошко ProjectManager.

2. Вызываем опции проекта tbx_d24_berlin (Options из контекстного меню) и в разделе Delphi Compiler пишем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages

Если проект при сборке выдает ошибку File Not Found: TB2Ver.inc надо прописать в его опциях пути к исходникам tb2k: Search Path = $(SASPATH)\sas.libs\tb2k\Source

3. Вызываем опции проекта tbxdsgn_d24_berlin (Options из контекстного меню) и в разделе Delphi Compiler пишем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages

Если проект при сборке выдает ошибку File Not Found: TBX.inc надо прописать свой собственный путь: Search Path = $(SASPATH)\sas.libs\tbx

4. Собираем оба проекта (Build All из контекстного меню группы проектов tb2kdsgn_d24_berlin_install)

5. Затем устанавливаем компонент (Install в контекстном меню второго проекта)

6. сохраняем изменения в проектах и закрываем всё (File-Close All)

Собираем пакедж graphic32
скрытый текст: показать
1. открываем групповой проект
Код: Выделить всё
g:\_SAS_\graphics32\Source\Packages\GR32_DSGN_RSX_BERLIN_INSTALL.groupproj

И идем в окошко ProjectManager.

2. Вызываем опции проекта GR32_RSX_BERLIN (Options из контекстного меню) и в разделе Delphi Compiler пишем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages


3. Вызываем опции проекта GR32_DSGN_RSX_BERLIN (Options из контекстного меню) и в разделе Delphi Compiler пишем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages


4. Собираем оба проекта (Build All из контекстного меню группы проектов GR32_DSGN_RSX_BERLIN_INSTALL)

5. Затем устанавливаем компонент (Install в контекстном меню второго проекта)

6. сохраняем изменения в проектах и закрываем всё (File-Close All)

Собираем пакедж embeddedWB
скрытый текст: показать
1. открываем проект
Код: Выделить всё
G:\_SAS_\sas.libs\embeddedWB\Packages\EmbeddedWebBrowser_XE2.dproj

И идем в окошко ProjectManager.

2. Вызываем опции проекта(Options из контекстного меню) и в разделе Delphi Compiler пишем пути
Код: Выделить всё
DCP Output Directory = $(SASPATH)\sas.packages
Package Output Directory = $(SASPATH)\sas.packages


3. Исходники устаревшие, поэтому при сборке выходит ошибка Undeclared Indentifier: RegisterActions
В файле G:\_SAS_\sas.libs\embeddedWB\Source\EwbReg.pas модифицируем код в строке 57
Код: Выделить всё
uses
  SysUtils, ActnList
  {$IFDEF DELPHIX_SEATTLE_UP}
    , Actions
  {$ENDIF}
;


4. Собираем проект (Build из контекстного меню)

5. Затем устанавливаем компонент (Install в контекстном меню )

6. сохраняем изменения в проекте и закрываем всё (File-Close All)

Собираем программу
скрытый текст: показать
1. Открываем проект программы
Код: Выделить всё
g:\_SAS_\sas.planet.src\SASPlanet.Berlin.dproj

И идем в окошко ProjectManager.

2. Собираем проект (Build из его контекстного меню).
Типичная ошибка на этом этапе: Unit ... not found. Говорит отом, что не был установлен какой либо компонент, или прописаны пути, см пункт 9 подготовки и установку компонентов.

3. После удачной сборки получаем файлы программы
Код: Выделить всё
g:\_SAS_\sas.planet.src\.bin\SASPlanet.drc
g:\_SAS_\sas.planet.src\.bin\SASPlanet.exe
g:\_SAS_\sas.planet.src\.bin\SASPlanet.map

Запускаем программу
скрытый текст: показать
Перед запуском надо скопировать из свежего дистрибутива программы всё, кроме SASPlanet.exe, и положить в папку с собранной программой.
в нашем случае
Код: Выделить всё
g:\_SAS_\sas.planet.src\.bin\


Программа готова. Можно запускать программу, в том числе под отладкой из RAD Studio.
Последний раз редактировалось DJ VK 07 сен 2017, 15:49, всего редактировалось 2 раз(а).
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

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

Сообщение DJ VK » 07 сен 2017, 14:09

Сборка программы с использованием репозитория.

Импортируем исходники

скрытый текст: показать
1. Создаем аккаунт (atlassian.com) для
Код: Выделить всё
https://bitbucket.org


2. Заходим в аккаунт. Открываем исходники программы
Код: Выделить всё
https://bitbucket.org/sas_team/sas.planet.src

Кнопка (+)Create, затем (<>)Fork This Repository
ничего не трогая жмем Fork Repository

3.Открываем библиотеки.
Код: Выделить всё
https://bitbucket.org/djvk/sas.requires

Кнопка (+)Create, затем (<>)Fork This Repository
ничего не трогая жмем Fork Repository

Клонируем исходники на компьютер
Написано на примере SourceTree. Возможно использование других программ. ;)

скрытый текст: показать
1. Устанавливаем SourceTree 2.x.x

2.На новой вкладке программы жмем кнопку Remote и добавляем свою учетную запись Bitbucket

3. Инструменты - настройки - общие
SSH клиент PuTTY. Запускать автоматически при старте программы.
Инструменты. Запустить клиент SSH.

4. Инструменты - Создать или импортировать ключи SSH.
Выбираем SSH-2 RSA 2048, поля с passphrase оставляем чистыми
и жмем Generate. Сохраняем ключ Save Private Key. Не закрываем окно.

5. Открываем аккаунт на сайте в браузере.
Settings - Access Key - Add Key
Код: Выделить всё
Label: MyKey
Key: Копируем ключ из генератора.

Добавляем и закрываем генератор.

6. В панели задач Windows справа находим PuTTY и в его контекстном меню выбираем Add Key. Добавляем сохраненный в 4м пункте ключ.

7. В программе Source Tree открываем Remote и видим два репозитория. Клонируем их (жмем надпись Clone).
Прописываем корректно целевые пути (2я строка), в нашем случае: g:\_SAS_\sas.planet.src\ и g:\_SAS_\sas.libs\


Сборка программы.

После клонирования обоих репозиториев все готово к сборке.
Дальнейшая сборка уже описана в первом сообщении, не будем повторяться.
Последний раз редактировалось DJ VK 07 сен 2017, 15:01, всего редактировалось 4 раз(а).
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

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

Сообщение vdemidov » 07 сен 2017, 14:21

DJ VK писал(а):Импортируем исходники

2. Заходим в аккаунт и импортируем исходники программы
Кнопка (+)Create, затем (<>)Repository
кликаем Import Repository
Код: Выделить всё
настройки Old Repository:
- Source: Mercurial
- URL: https://bitbucket.org/sas_team/sas.planet.src
настройки New Repository:
- Repository Name: sas.planet.src
- Access Level: убрать галку Private

Жмем на кнопку Import Repository и ждем.

Не надо так делать. Теряется информация о том что это форк оригинального репозитория и, следовательно, будут проблемы с отправкой пул реквестов. Нужно зайти в оригинальный репозиторий и нажать Fork this repository

DJ VK писал(а):1. Устанавливаем SourceTree 2.x.x

Лично я и все остальные разработчики САС, насколько я знаю, пользуются TortoiseHG
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

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

Сообщение DJ VK » 07 сен 2017, 14:26

vdemidov писал(а):
DJ VK писал(а):Импортируем исходники

2. Заходим в аккаунт и импортируем исходники программы
Кнопка (+)Create, затем (<>)Repository
кликаем Import Repository
Код: Выделить всё
настройки Old Repository:
- Source: Mercurial
- URL: https://bitbucket.org/sas_team/sas.planet.src
настройки New Repository:
- Repository Name: sas.planet.src
- Access Level: убрать галку Private

Жмем на кнопку Import Repository и ждем.

Не надо так делать. Теряется информация о том что это форк оригинального репозитория и, следовательно, будут проблемы с отправкой пул реквестов. Нужно зайти в оригинальный репозиторий и нажать Fork this repository

Сейчас попробуем и поправим описание. Ах да. Не было кнопки форк , я искал-искал и не нашел ее совсем. Потому так и сделал. Можно только почитать другие форки.

Вряд ли Битбукет пиарить будет плохой клиент.. Хотя на вкус и цвет, как говорится, ...
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

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

Сообщение vdemidov » 07 сен 2017, 14:31

Еще, если не планируется справлять что-то в библиотеках, делать их форки не обязательно. А если и делать, то с большой вероятностью форканья только sas.requires будет мало, ибо большая часть библиотек лежит в отдельных репозиториях.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

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

Сообщение DJ VK » 07 сен 2017, 14:34

vdemidov писал(а):Еще, если не планируется справлять что-то в библиотеках, делать их форки не обязательно. А если и делать, то с большой вероятностью форканья только sas.requires будет мало, ибо большая часть библиотек лежит в отдельных репозиториях.

Мой клиент забил на это ИМХО болт. Он скачал все требуемые сам.
Так где конпка форка???
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

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

Сообщение vdemidov » 07 сен 2017, 14:35

DJ VK писал(а):Вряд ли Битбукет пиарить будет плохой клиент.. Хотя на вкус и цвет, как говорится, ...

Не обязательно плохой, но если возникнут вопросы, то никто не сможет дать совет. Да и термины могут слегка отличаться.
Еще клонить репозитории не обязательно по SSH с ключем. Можно и анонимно по https.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

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

Сообщение vdemidov » 07 сен 2017, 14:37

DJ VK писал(а):
vdemidov писал(а):Еще, если не планируется справлять что-то в библиотеках, делать их форки не обязательно. А если и делать, то с большой вероятностью форканья только sas.requires будет мало, ибо большая часть библиотек лежит в отдельных репозиториях.

Мой клиент забил на это ИМХО болт. Он скачал все требуемые сам.

Скачать то он скачал, но вот изменения вложенных репо залить никуда не сможет, поэтому и говорю, что бесполезно. А просто скачать можно и оригинальные.
DJ VK писал(а):Так где конпка форка???

Там же где и создание нового репозитория.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

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

Сообщение DJ VK » 07 сен 2017, 14:40

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

Симпатичная программка. На русском. И все в 1й оболочке, не требуется разные этапы разными командами контекстного меню делать, да утилиты всякие запускать, чтобы скажем откатиться назад.

upd сделал с форком.
Последний раз редактировалось DJ VK 07 сен 2017, 14:49, всего редактировалось 1 раз.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

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

Сообщение vdemidov » 07 сен 2017, 14:49

DJ VK писал(а):
vdemidov писал(а):Не обязательно плохой, но если возникнут вопросы, то никто не сможет дать совет. Да и термины могут слегка отличаться.

Симпатичная программка. На русском. И все в 1й оболочке, не требуется разные этапы разными командами контекстного меню делать, да утилиты всякие запускать, чтобы скажем откатиться назад.

Какие утилиты? Никогда необходимости не было. Это при работе с гитом часто в консоль лезть нужно. Я там гуишкой только для создания коммитов. А вот с меркуриалом тортуаза всегда хватало.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3