GGBuildTools v 0.2.0 Copyright © 2007-20012 Gipat Group http://svn.gipat.org/trac/GGBuildTools http://www.gipatgroup.org Программа распространяется на условиях Modified LGPL v2.1 см. файл COPYING.modifiedLGPL.txt ___________________________________________________ GGBuildTools - набор утилит для сборки других проектов Gipat Group. В частности они предназначены для определения номера ревизии svn (и использования её в номере версии проекта, в именах файлов итд), для автоматической генерации *.iss - скриптов, для сборки рабочих копий модов к EI-Starter-у из файлов содержащихся в svn, для синхронизации мода с svn итд итп... ___________________________________________________ Инструкция по сборке из исходников. Для сборки вам потребуется наличие: 1. Установленного Lazarus v. 1.0. Более новые версии Lazarus предположительно тоже подойдут. Тестировалось под WindowsXP Pro SP2, Windows7 64bit. Под другими win32\64 системами сборка весьма вероятна. Возможность сборки под linux и другими системами, с которыми совместим Lazarus - лишь теоретическая. Если еще не - то необходимо внести корневой каталог с установленным lazarus в переменную окружения PATH. В WindowsXP это можно сделать зайдя в свойства "Мой компьютер" (свойства системы), открыв вкладку "Дополнительно", нажав кнопку "Переменные среды". Добавить путь в PATH можно как для всей системы, так и для текущего пользователя - для GGBuildTools это непринципиально. 2. Установленные GGBuildTools версии не ниже 0.2.0.176a (желательно не ниже 0.2.0.184a т.к. возможны проблемы с subversion на более старых версиях) - скачать можно с http://svn.gipat.org/trac/GGBuildTools - просто запустите инсталлятор и следуйте инструкциям 3. Установленный svn. Скачать win32 бинарник можно с http://subversion.apache.org - распаковать в любое место на жестком диске, путь к папке bin программы внести в переменную PATH среды. Убедиться что из консоли (Пуск->Выполнить->cmd) утилита svn доступна с любого текущего пути. Обязательно следите за тем чтобы версия svn была той же самой что и версия svn внутри той утилиты, которой вы пользуетесь для работы с репозиториями - иначе одна из версий может не понять файлы в рабочей копии, сделанной другой версией - обычно более новая версия понимает старую но не наоборот. Удобная альтернатива - установить TortoiseSVN - http://tortoisesvn.net - последние версии, насколько знаю, включают в себя консольную версию svn и прописывают её в PATH при инсталляции. 4. Установленный Inno Setup 5 - скачать можно с http://www.jrsoftware.org/isinfo.php - просто запустите инсталлятор и следуйте инструкциям. В принципе, он требуется для правильной работы GGBuildTools - для автоматической сборки инсталляций. Обратите внимание - нужен именно Inno Setup 5 - именно одна из 5-х версий. С Inno Setup 4 совместимости нет, с версией 6 и выше - неизвестно. Как собирать из исходника - если все зависимости удовлетворены - программы и библиотеки установлены, настроены, прописаны - заходите в директорию с исходником и запускайте файлик build_all.bat - это нужно сделать после первого скачивания исходника, ну и возможно после обновлений svn оно тоже может потребоваться. После чего - можно открывать нужный проект в Lazarus и работать с ним. После выполнения build_all.bat в папке Packages_unofficial появятся неоффициальные сборки пакетов - исходник и инсталляха. Собрать оффициальную сборку можно батником official_build_all.bat - отличие в том что собранное попадет в папку Packages, а также в том что в ggbt\iss_cache будет записана информация о собранной версии (*.flist и основной *.iss-файлы после этого надо закоммитить если вы разработчик и действительно готовите оффициальный релиз), которая в дальнейшем будет использоваться для сборок апдейтов-патчей с версии на версию (меньшего размера чем полный релиз). При компилляции из IDE - бинарники собираются только в папку .\generated\build. Чтобы заново собрать дистрибутив (например бинарный) - надо опять запустить build_all.bat. ВНИМАНИЕ! Часть утилит будет ругаться на отсутствие sqlite3.dll при запуске из IDE - просто скопируйте библиотеку (брать файлик в папке 2bin) в WINDOWS\System32 (или аналогичную папку) вашей операционной системы, либо закиньте его к исполнимому файлу в .\generated\build\ИмяПрограммы\ __________________________________________________ Этакий Code Guidelines. 1. За венгерскую нотацию можно получить по ухам %). Пользуйтесь принятой в VCL нотации - классы обозначаются большой первой буквой T (TObject например), если идентификатор состоит из нескольких слов - слова разделяются заглавными буквами (TheExampleIdentificator). 2. Вложенные блоки выделяются отступами - по 2 пробела. 3. Используется ООП - не надо особо налегать на структурный программинг. 4. Не надо стараться напихать как можно больше классов в один файл, больше 1 класса в файле - только если это необходимо или если дополнительные классы - мелкие, вспомогательные. 5. Комментарии - каждую функцию или метод - прокомментировать в той же строчке где её объявление. В реализации функции\метода - продублировать комментарий, во второй строчке - под строчкой описывающей имя функции и параметры. Реализацию функций\методов - следует располагать в том же порядке, в котором они объявлялись в интерфейсе - если это классы или "подразделы" классов, то в реализации надо эти разделы разделить комментами, указав что за раздел. 6. Обработка екзепшнов. Если это необходимо - т.е. вызывается функция, которая в принципе небезопасна и может вернуть экзепшн - то надо пользоваться try-except-finally. Но не надо передавать екзепшоны до самого верха - желательно чтобы функция могла "в штатном режиме" справиться с ошибкой, если же это невозможно - вернуть ошибку - например через булевый результат функции или код ошибки. 7. Не забывайте в шапке измененного вами файла оставлять свой ник с мылом, для новых файлов - добавлять стандартную шапку с отсылкой на лицензию и прочим. ___________________________________________________ О локализации. Для локализации программы вы, в принципе, можете использовать любые утилиты - особенно если вы просто редактируете уже существующие po-файлы - здесь подойдет любой редактор po-файлов. Но все-же настоятельно рекомендуется пользоваться теми утилитами, которыми пользуются авторы программы - а именно dxgettext для парсинга исходника и poedit в качестве GUI переводчика, poedit-же вызывает dxgettext для парсинга исходника. Для локализации строк применяется класс TMOExtractor и его метод _(AOrig: String) : String; Этот метод возвращает перевод строки. Для того, чтобы правильно генерировать po и mo-файлы из исходника - нужно установить dxgettext (скачать можно с http://dybdahl.dk/dxgettext/), обязательно при установке указав необходимость встраивания в переменную PATH (после чего нужно перезагрузить компьютер либо обновить окружение если знаете как :)). Затем нужно установить poedit, который можно скачать с http://www.poedit.net/. После установки - нужно настроить парсер паскаля в настройках poedit. За основу возьмите парсер с именем Delphi (dxgettext), но его опции нужно изменить, т.к. с настройками по умолчанию оно не работает. Названия языка имеет смысл поменять на Pascal (dxgettext), список расширений изменить на следующий: "*.pas;*.pp;*.inc;*.dpr;*.lpr;*.xfm;*.dfm" (без кавычек). После этого можно добавить в менеджер каталогов проект GGBuildTools (укажите там путь к trunk), затем добавьте файлы нужных вам языков, в настройках каталога убедитесь что "путь к базе" прописан как ..\.. а в пути добавлен один элемент со значением "." - точка (т.е. без кавычек). После этого можете нажимать кнопку обновления каталога - программа должна проверить исходник, удалить более ненужные строки из po-файла и добавить новые. ВНИМАНИЕ! В настройках poedit должна быть включена опция автоматического компиллирования mo-файлов при сохранении po-файлов. Либо вы должны самостоятельно компиллировать mo-файлы, ибо GGBuildTools при чтении строк через TMOExtractor работает с файлами *.mo а не с *.po. ___________________________________________________ Сообщения о багах, предложения по улучшению, патчи - принимаются на трекере проекта - http://svn.gipat.org/trac/GGBuildTools - нажно зайти на трекер, авторизоваться (при необходимости зарегистрировать аккаунт - обращаю внимание что база аккаунтов на всех трекерах у нас общая и зарегистрироваться достаточно 1 раз на 1 из трекеров), создать новый ticket, не забыв указать тип тикета (баг\предложение\патч) и номер версии, которой вы пользовались. Желательно также сообщить о создании тикета на форуме http://www.gipatgroup.org/ в теме, посвященной данному проекту.