Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Программирование с использованием gtkmm 3. Работа с исходным кодом gtkmm

Оригинал: Programming with gtkmm 3
Авторы: Murray Cumming, Bernhard Rieder, Jonathon Jongsma, Ole Laursen, Marko Anastasov, Daniel Elstner, Chris Vine, David King, Pedro Ferreira, Kjell Ahlstedt
Дата публикации: 15 Октября 2013 г.
Перевод: А.Панин
Дата перевода: 25 Апреля 2014 г.

Приложение F. Работа с исходным кодом gtkmm

Если вы захотите оказать помощь в разработке gtkmm или исправить ошибку в gtkmm, вы, скорее всего, столкнетесь с необходимостью сборки разрабатываемой версии gtkmm. Однако, вы не должны устанавливать разрабатываемую версию поверх имеющейся у вас стабильной версии. Вместо этого вам следует установить ее независимо от уже существующей в системе версии gtkmm в отдельную директорию.

Самый простой способ выполнения описанных действий связан с использованием инструмента jhbuild. jhbuild является программой, которая значительно упрощает сборку программного обеспечения проекта GNOME путем разрешения зависимостей между программными компонентами и их сборки в корректном порядке. В данном приложении будет приведено краткое описание методики настройки jhbuild для последующей сборки, а также получения исходного кода gtkmm из репозитория исходного кода (git). Для получения актуальной информации об инструменте jhbuild следует обращаться в руководству jhbuild. В том случае, если вы столкнетесь с трудностями в ходе работы с jhbuild, вы можете попросить помощи в списке рассылки gnome-love.

Помните о том, что для сборки версии gtkmm из репозитория исходного кода git обычно также приходится осуществлять сборку множества программных компонентов, от которых зависит корректная работа gtkmm. jhbuild упрощает процесс сборки по сравнению с процессом ручной сборки, но на сборку и установку всех необходимых программных компонентов обычно уходит достаточно много времени. В процессе сборки вы, скорее всего, столкнетесь с проблемами, но эти проблемы быстро решатся в том случае, если вы сообщите о них.

F.1. Настройка jhbuild

В процессе настройки инструмента jhbuild вы должны следовать простым инструкциям из руководства jhbuild. После установки jhbuild вы должны скопировать пример конфигурационного файла jhbuild в свою домашнюю директорию, выполнив следующую команду в директории jhbuild:
$ cp examples/sample.jhbuildrc ~/.jhbuildrc
Модуль gtkmm описан в наборе модулей gnome-suites-core-deps-3.x.modules, поэтому следует отредактировать ваш файл конфигурации .jhbuildrc, использовав последнюю версию gtkmm в качестве идентификатора набора модулей, например, следующим образом:
moduleset = 'gnome-suites-core-deps-3.12'
После описания корректного набора модулей вам придется проинформировать jhbuild о том, какой модуль или какие модули необходимо собрать. Для сборки gtkmm со всеми необходимыми программными компонентами следует установить следующее значение переменной modules:
modules = [ 'gtkmm' ]

Вы можете собрать несколько модулей, использовав в качестве значения переменной modules название мета-пакета, к примеру, meta-gnome-core или перечислив несколько названий модулей. Переменная modules используется для указания модулей для сборки в том случае, если вы не указали имена модулей непосредственно в командной строке. Впоследствии вы всегда сможете собрать другие модули, указав их имена в командной строке (например, следующим образом: jhbuild build gtkmm).

Установка префикса
При использовании стандартной конфигурации jhbuild все собранное с помощью jhbuild программное обеспечение будет уставлено в директорию с префиксом /opt/gnome. Вы можете выбрать другой префикс для установки, причем рекомендуется использовать префикс, отличный от префикса уже имеющегося в системе программного обеспечения (не устанавливайте префикс /usr!) В том случае, если вы следовали приведенным инструкциям по настройке jhbuild, префикс будет соответствовать вашей домашней директории, поэтому вам не потребуется прав пользователя root для использования jhbuild.

После того, как вы скачаете версию jhbuild из репозитория исходного кода git, у вас появится набор файлов с расширениями .modules, описывающих зависимости между модулями. По умолчанию jhbuild не использует сохраненные версии этих файлов, а читает актуальные версии из репозитория исходного кода git. Обычно этот вариант подходит для работы. Если же вы не хотите работать с версиями файлов из репозитория исходного кода, используйте переменную use_local_modulesets в файле .jhbuildrc.

F.2. Установка и использование версии gtkmm из репозитория исходного кода git

После того, как вы сконфигурировали jhbuild в соответствии с приведенными выше инструкциями, сборка должна выполняться достаточно очевидным образом. При первом запуске jhbuild следует выполнить следующую последовательность команд для того, чтобы удостовериться в доступности для jhbuild необходимых инструментов сборки и проверить корректность выполненных настроек:
$ jhbuild bootstrap
$ jhbuild sanitycheck

F.2.1. Установка gtkmm с помощью jhbuild

В том случае, если все механизмы сработали корректно, у вас должна появиться возможность сборки gtkmm в всех необходимых программных компонентов из репозитория исходного кода git с помощью команды jhbuild build (или в том случае, если вы не указали gtkmm в качестве значения переменной modules, с помощью команды jhbuild build gtkmm).

Данная команда позволяет собрать и установить наборы модулей, причем в первый раз ее выполнение, скорее всего, займет много времени. Однако, после первой сборки процесс значительно ускорится, так как придется повторно осуществлять сборку исключительно подвергнувшихся модификациям с момента последней сборки файлов исходного кода. Альтернативным вариантом повторной сборки является сборка исключительно gtkmm (в ходе которой не осуществляется сборка необходимых для работы сторонних программных компонентов), которая может осуществляться после первой полной сборки gtkmm с помощью команды jhbuild buildone gtkmm.

F.2.2. Использование версии gtkmm из репозитория исходного кода git

После того, как вы установили версию gtkmm из репозитория исходного кода git, вы готовы к работе, а также к различным экспериментам с ней. Для того, чтобы использовать новую версию gtkmm, которую вы только что установили, необходимо установить значения некоторых переменных окружения для того, чтобы ваш сценарий конфигурации configure знал о том, где следует искать новые библиотеки. К счастью, jhbuild предоставляет простое решение для этой задачи. Команда jhbuild shell позволяет открыть новую командную оболочку с выставленными корректными значениями всех необходимых переменных окружения. Теперь в том случае, если вы обычным образом повторно сконфигурируете и соберете ваш проект, исполняемые файлы будут связаны с новыми, недавно установленными библиотеками. Для перехода к вашему предыдущему окружению просто выйдите из командной оболочки, открытой с помощью jhbuild.

После того, как вы собрали ваше программное обеспечение, вы должны запустить исполняемый файл также в созданном с помощью jhbuild окружении. Для этого вы можете снова использовать команду jhbuild shell с целью создания новой командной оболочки с установленным набором переменных окружения. Альтернативным решением является выполнение одиночной команды в окружении jhbuild с помощью следующей команды jhbuild: jhbuild run <имя команды>. В этом случае команда будет выполнена в окружении с установленными корректными значениями необходимых переменных, но после выхода из программы будет осуществлен возврат в ваше предыдущее окружение.


Следующий раздел : Приложение G.1. Структура директорий для сборки.