Пакетирование приложения Qt

Материал из FRUCT Maemo wiki (Russian)
Перейти к: навигация, поиск

Пакетирование приложения 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 и выполнить изменения.

Полезные ссылки

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты