SObjectizer
5.1
|
В предыдущих SObjectizer для подключения новой версии библиотеки ACE требовалось ручное создание проектных файлов для Mxx_ru (поскольку ACE использует собственный механизм генерации проектных файлов, MPC, в котором генерация проектных файлов Mxx_ru не предусмотрена). Это затрудняло переход на новые версии ACE, в которых устраняются ошибки и добавляется новая функциональность. По этой причине SObjectizer долгое время поставлялся с использованием довольно старой версии 5.4.3 библиотеки ACE.
Текущая схема использования библиотеки ACE позволяет обойтись без создания проектных файлов Mxx_ru для каждой новой версии ACE. Следовательно, добавлена возможность смены версии ACE безотностительно к версии SObjectizer.
В текущей схеме вокруг системы компиляции ACE сделана обертка из Ruby скриптов, которая позволяет инкапсулировать систему компиляции ACE в систему Mxx_ru. Идея в том, что каталог ace сейчас содержит набор скриптов-оберток и подкаталог ACE_wrappers, который содержит разархивированную копию библиотеки ACE.
В SObjectizer, подключаются Mxx_ru проектный файл ace/dll.rb, который запускает нативную систему компиляции из ACE для текущего тулсета. Так, под Visual C++ библиотека ACE компилируется с помощью devenv из состава Microsoft Visual Studio. Под MinGW C++ компиляция выполняется с помощью GNU make (аналогично с компиляцией под Linux и под Cygwin).
Такая схема позволяет легко сменить содержимое подкаталога ace/ACE_wrappers на новую версию ACE без необходимости переписывать ace/dll.rb.
Неприятным следствием из этого является необходимость встраивать в скрипты-обертки поддержку средств компиляции ACE различными тулсетами. На данный момент для ACE 6.* поддерживаются следующие тулсеты:
Другие тулсеты могут быть добавлены в поддержку библиотеки ACE по необходимости и при наличии доступа к соответствующей платформе и инструменту.
Размещать распакованный архив библиотеки ACE в подкаталог ace/ACE_wrappers можно либо вручную, либо с помощью вспомогательного проекта ace/ace_lib_unpacker.rb. Этот проект проверяет наличие каталога ace/ACE_wrappers. Если каталога нет, что в ace_lib_distrib ищется архив библиотеки ACE (в виде ACE-*.tar.bz2 файла). Если архив найден, то он распаковывается так, чтобы ACE_wrappers был размещен в подкаталоге ace.
Для того, чтобы использовать ace/ace_lib_unpacker.rb необходимо подключить его в какой-либо из своих проектных файлов. Например, в build.rb:
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 13:00:33. Создано системой 1.8.3.1 |