Пакетирование приложения Qt
Пакетирование приложения Qt
Содержание |
Пакетирование приложения Qt для Maemo
Главная статья: [Пакетирование]
Пакетирование приложения Qt для Maemo очень схоже с пакетированием любого другого приложения, поэтому в данном документе содержится информация по вопросам, связанным исключительно с Qt пакетированием.
Создание пакета Maemo из проекта qmake
Чтобы создать новый пакет для Maemo из проекта qmake, понадобится выполнить следующее:
- Переименуйте исходный каталог в
Package-Version
(например myapp-0.1 для приложения myapp с версией 0.1) - Создайте каталог src в
Package-Version/
- Скопируйте все файлы в каталог
src/
- Переименуйте
src/appname.pro
вsrc/src.pro
$mv myapp myapp-0.1 $cd myapp-0.1 $mkdir src $cp * src $mv src/appname.pro src/src.pro
Добавьте следующее данные в конец src/src.pro
. Они добавляют раздел инсталляции в файл qmake.
unix { #VARIABLES isEmpty(PREFIX) { PREFIX = /usr/local } BINDIR = $$PREFIX/bin DATADIR =$$PREFIX/share DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\" #MAKE INSTALL INSTALLS += target desktop iconxpm icon26 icon48 icon64 target.path =$$BINDIR desktop.path = $$DATADIR/applications/hildon desktop.files += $${TARGET}.desktop iconxpm.path = $$DATADIR/pixmap iconxpm.files += ../data/maemo/$${TARGET}.xpm icon26.path = $$DATADIR/icons/hicolor/26x26/apps icon26.files += ../data/26x26/$${TARGET}.png icon48.path = $$DATADIR/icons/hicolor/48x48/apps icon48.files += ../data/48x48/$${TARGET}.png icon64.path = $$DATADIR/icons/hicolor/64x64/apps icon64.files += ../data/64x64/$${TARGET}.png }
- Создайте файл
myapp-0.1/myapp.pro
следующим образом:
QMAKEVERSION = $$[QMAKE_VERSION] ISQT4 = $$find(QMAKEVERSION, ^[2-9]) isEmpty( ISQT4 ) { error("Use the qmake include with Qt4.4 or greater, on Debian that is qmake-qt4"); } TEMPLATE = subdirs SUBDIRS = src
- Выполните dh_make, чтобы перевести в операционную систему Debian архив с исходным кодом. Будут созданы:
- Архив с неизмененным апстрим исходным кодом (orig.tar.gz)
- Некоторые основные файлы в каталоге debian
- Некоторые файлы-образцы (*.EX *.ex)
export DEBFULLNAME="maintainer first name and last name" dh_make --createorig --single -e maintainer@email.org -c gpl
Редактирование файла с правилами
Файл с правилами, созданный при помощи dh_make
и находящийся в debian/rules
, будет изменен, чтобы выглядеть следующим образом. Используется qmake, поэтому нет никакого сценария configure
, который можно было бы выполнить. При копировании и вставке следующего файла обратите внимание, что пропуски в начале строк – символы табуляции, а не многочисленные символы пробела. При копировании и вставке следующих данных, скорее всего, будут получены пробелы вместо символов табуляции и файл не будет работать.
#!/usr/bin/make -f APPNAME := my_app_name builddir: mkdir -p builddir builddir/Makefile: builddir cd builddir && qmake-qt4 PREFIX=/usr ../$(APPNAME).pro build: build-stamp build-stamp: builddir/Makefile dh_testdir # Add here commands to compile the package. cd builddir && $(MAKE) touch $@ clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. rm -rf builddir dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/your_appname cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installdocs dh_installexamples dh_installman dh_link dh_strip --dbg-package=my-application-dbg dh_compress dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install configure
Пример
Пакет с исходным кодом примера Qt для Maemo можно загрузить из репозитория extras-devel следующим образом, если пакеты с исходными кодами активированы в файле /etc/apt/sources.list
:
apt-get source qt-maemo-example
В результате использования данной команды будут загружены:
- неизмененный исходный текст программы (.orig.tar.gz)
- файл debian dsc (.dsc)
- файл diff (.diff)
и затем будет автоматически запущен dpkg -x file.dsc
, чтобы распаковать orig.tar.gz и выполнить изменения.