Сборка собственных компонентов

Материал из ISPWiki
Перейти к: навигация, поиск

Вы можете собирать ваши модули любым удобным для вас способом. Но, чтобы упростить этот процесс, мы предлагаем использовать поставляемые с CORE заготовки Makefile для Unix. Эти файлы расположены в каталоге src.

UNIX

Для сборки программ с использованием наших библиотек вам понадобится компилятор, поддерживающий стандарт c++0x. Для gcc необходима версия не ниже 4.4. А чтобы использовать наши makefile, еще и GNU make.

Makefile

Для того, чтобы воспользоваться нашим makefile, вам необходимо создать каталог в каталоге src Мы рекомендуем, чтобы имя каталога совпадало с именем панели, которую вы разрабатываете. В этом случае у вас будет корректно отрабатывать загрузка. Например: mypanel. В этом каталоге необходимо создать файл Makefile со следующим содержимым:

LIB += mypanel
mypanel_SOURCES = mypanel.cpp
mypanel_LDADD = -lbase
#mypanel_LDADD = -rdynamic
#WRAPPER += some_command_line_tool
#XMLLIST += some_xml
#XMLPATH = my_xml_path

include ../isp.mk
LIB
задает список .so файлов, которые необходимо собрать.
SBIN
задает список приложений, запускаемых из командной строки, которые необходимо собрать.
WRAPPER
как и SBIN задает список приложений, запускаемых из командной строки, которые необходимо собрать.
В CORE все консольные приложения реализованы в виде .so файлов, расположенных в каталоге libexec и запускаемых программой sbin/wrapper. Все бинарные файлы в каталоге sbin - это ссылки на файл wrapper.
XMLPATH
каталог, в котором следует искать стандартные XML файлы. Это: <имя панели>.xml, <имя панели>_menu.xml и <имя панели>_msg_*.xml. По умолчанию, makefile ищет эти файлы в каталоге xml, если он существует, или в текущем каталоге, если каталога xml нет.
<имя панели>.xml должен содержить описание метаданных форм и списков.
<имя панели>_menu.xml должен содержать описание главного меню для различных уровней доступа.
файлы <имя панели>_msg_*.xml должны содержать описания языков, по одному на каждый язык.
PKGCTL
программы, запускаемые инсталятором.

Для каждого имени, добавленного в одну из вышеперечисленных переменных, вы можете задать следующие параметры:

<name>_SOURCES
список исходников
<name>_LDADD
дополнительные параметры линковки
<name>_SLIB
библиотеки, входящие в состав продукта, подключаемые статически. В отличии от библиотек заданных в LDADD, библиотеки перечисленные в этой переменной будут собраны автоматически.
<name>_DLIB
библиотеки, входящие в состав продукта, подключаемые динамически. В отличии от библиотек заданных в LDADD, библиотеки перечисленные в этой переменной будут собраны автоматически и будут включены в дистрибутив продукта.
<name>_FOLDER
каталог в дистрибутиве, где должен находиться результат
(для каждого типа имеется значение по умолчанию)
mypanel_SOURCES
описание источников для сборки библиотек (список .cpp файлов)
mypanel_LDADD
описание дополнительных параметров линковщика
include ../isp.mk
подключаем поставляемые с CORE шаблоны для Makefile. Эта строка должна присутствовать всегда и должна быть последней.
XMLLIST
список дополнительных xml файлов, содержащих метаданные описывающие интерфейс вашей панели. На эти фалы XMLPATH не влияет. Список может содержать шаблоны файлов, в которых '*' - любое количество любых символов.
SUBDIR
каталог в котором необходимо искать файлы исходного кода. Так же, в этом каталоге должен быть файл Makefile.inc, содержимое которого будет подключено в основной Makefile автоматически.

Сборка

Чтобы собрать нашу библиотеку mypanel.so, достаточно выполнить gmake в каталоге src/mypanel. Или в каталоге src, в этом случае будут собраны проекты из всех каталогов внутри src.

Установка

Чтобы установить панель перейдите в каталог с исходниками панели ([mgr5_DIR]/src/mypanel) и выполните комманду make install. Библиотека mypanel.so будет скопирована в каталог lib.

Для WRAPPER приложений файл будет скопирован в каталог libexec, а в каталоге sbin будет сделана соответствующая ссылка на wrapper.

Соответствующая панель будет автоматически перезагружена.

Удаление

Чтобы удалить все собранные файлы вы можете выполнить gmake clean

Эта команда не удаляет файлы созданные при установке.