UniOffice/Build/BuildInWindows
Сборка Unioffiсe@Etersoft в OC Windows
Инструменты необходимые для сборки Unioffice@Etersoft
1. git - программа для управления git репозиторием под ОС Windows. (Необходима, если вы хотите, автоматически обновлять исходники, в противном случае эта программа вам не нужна)
2. DevCpp - бесплатная среда разработки от Bloodshed Software, использующая компилятор mingw (компилятор имеется в дистрибутиве и не требует доп. настройки). Последняя версия 4.9, но возможно подойдет и её дальнейшая разработка WxDevCpp
Установка необходимых инструментов
Git for Windows
Последовательность установки:
- Запускаем установочный файл
в этом окне жмем дальше. Далее будет показана лицензия с которую, надо принять для продолжения установки.
- Выбираем папку для установки git
- Добавляем интеграцию в explorer и значки быстрого доступа, если это необходимо
- следующем окне выбираем первый вариант установки
- Выбираем использование OpenSSH
- На этом установка GIT завершена, далее необходимо настроить репозитории.
DevCpp
Последовательность установки:
- Запускаем установочный файл, выбираем язык установки, соглашаемся с лицензией
- Выбираем тип установки - Full
- Выбираем паку для установки среды разработки
- На этом установка GIT завершена, при первом запуске среды необходимо сделать несколько настроек.
- Выбрать язык интерфейса
- В следующем окне выбираем первый пункт. Этим говорим среде, что необходимо перечитать все заголовочные файлы - необходимо для удобства навигации и поиска определений функций.
После этого можно закрыть DevCpp. На этом установка заканчивается и можно переходить к созданию проекта и копированию репозитория
Настройка, получение и обновление Git репозитория
Настройка и получение
При первом запуске GitGUI вы увидите окно представленное на картинке.
Здесь необходимо выбрать пункт "Склонировать существующий репозиторий"
Далее необходимо ввести ссылку на удаленный репозиторий, в данном случае -
и указать каталог, где будет хранится копия репозитория. На картинке это - "C:/Unioffice_Etersoft".
После того как указаны параметры клонирования, нажимаем кнопку "Склонировать".
Операция "Клонирование" занимает некоторое время, которое зависит от скорости соединения с internet
Как только клонирование будет завершено, будет показано окно изображенное ниже. Его можно закрыть.
Теперь мы можем увидеть, что у нас имеется полная копия репозитория.
На этом получение удалённого репозитория закончено.
Обновление репозитория
Запускаем GitGUI
- Выбираем ранее созданный свой локальный репозиторий. Достаточно щелкнуть на ссылку с его именем.
- После того как будет показано главное окно, переходим к пункту "Внешние репозитории->Получение из -> Origin"
- Далее появится окно в котором будет отображен процесс обновления
- После того как обновление завершиться, можно закрыть это окно.
- Теперь необходимо обновить файлы в репозитории, т.к. пока обновления только скачены, но не применены. Для этого переходим к пункту "Репозиторий -> История всех ветвей наглядно"
- Выделить строку с надписью "Remote/origin/master" и в контекстном меню выбрать "reset master branch to here".
- В появившемся окне выбрать "Hard" (Внимание, изменения сделанные в локальном репозитории будут потеряны, что бы не потерять их следует выбирать Mixed или Soft)
- После того как данная операция будет закончена (на рисунке видно, что теперь наша ветка master совпадает с веткой mster удаленного репозитория), необходимо пересобрать проект в DevCpp. Открыть ранее созданный проект и запустить "Rebuild All"
На этом обновление репозитория завершено. О том как подготовить патчи будет рассказано в другой статье.
Настройка проекта в DevCpp
Если вы используете Git, то выше мы рассмотрели как поличить репозиторий себе на компьютер. Если же вы не хотите испоользовать Git исходники проекта можно скачать здесь.
Для генерации заголовочных файлов для описания интерфейсов из IDL, при сборке в Linux используется утилита widl, входящая в wine-tools. К сожалению использовать ее в windows не получилось. Поэтому необходимо скачать три файла находящиеся по ссылке http://ftp.etersoft.ru/pub/Etersoft/UniOffice@Etersoft/gen-source (при внесении изменний в IDL эти файлы обновляются, но не чаще). Файлы необходимо поместить в папку "unioffice_excel" входящую в репозиторий UniOffice.
- (Возможно для генерации этих файлов в windows можно использовать midl.exe входящий в Visual Studio)
- После того, как файлы будут помещены в ваш локальный репозиторий, запускаем DevCpp.
Этапы настройки проекта в DevCpp:
- Создание нового проекта.
Переходим к пункту меню "File->New->Project"
Выбираем:
- тип проекта - "Dinamic Library DLL"
- язык - "С"
- имя - "unioffice_excel"
Сохраняем проект в папке "unioffice_excel" вашего локального репозитория
С помощью пункта меню "Remove file", удаляем все файлы нового проекта, сгенерированные DevCpp, без их сохранения.
С помощью пункта меню "Add file", добавляем в проект, файлы unioffice_excel.
Можно добавить все файлы сразу за один раз.
Так должно выглядеть дерево проекта после добавления всех файлов.
Далее необходимо указать какие библиотеки использовать при линковке. Для этого переходим к пункту "Project->Project Options".
В появившемся окне переходим к вкладке "Parameters" и в окошке "Linker", второй строкой дописываем следующую строку:
-ladvapi32 -lole32 -loleaut32 -luser32 -lkernel32 -lshell32 -luuid -lshlwapi -lmsvcrt
Все. Проект сделан. Теперь осталось его собрать, для этого переходим к пункту "Execute->Rebuild All". После того как проект соберётся (в окне DevCpp появятся несколько Warnings, не обращаем на них внимания), в папке "unioffice_excel" локального репозитория появится файл unioffice_excel.dll
Для установки новой библиотеки в системе, необходимо скопировать файлы unioffice_excel.dll и unioffice_excel.tlb в папку "%WinDir%\System32\" и после этого выполнить команду
regsvr32.exe unioffice_excel.dll
После того как появится окно с надписью "DllRegisterServer в unioffice_excel.dll завершено успешно" unioffice_excel будет установлен в системе. Для тестирования можно использовать тесты находящиеся в репозитории.
О тестировании, ведение логов и сообщении об ошибках можно почитать здесь.