Разработка В Qtcreator Для Maemo Sdk

Некоторое время назад для Maemo был выпущен Qt4.6.2. Под катом вы найдете инструкцию по установке SDK на Linux Debian и настройке среды разработки на Qt (на базе QtCreator).



Монтаж

Итак, в первую очередь нам необходимо скачать скрипты для установки SDK. Это делается с помощью команд:
 wget  http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh  
 wget  http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh  
Мы предоставляем им право на исполнение:
 chmod +x .

/maemo-scratchbox-install_5.0.sh .

/maemo-sdk-install_5.0.sh

И первый запускаем от имени root, указав пользователя, которому будет предоставлен доступ к песочнице с SDK:
 sudo .

/maemo-scratchbox-install_5.0.sh -u tass

Скрипт установит песочницу через apt и установит ее в /scratchbox. Меня такое положение дел немного не устраивало и я сделал эту директорию ссылкой на /home/scratchbox (из-за постоянной нехватки места на корневом разделе).

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

сбокс , но для того, чтобы он был виден в этой группе, необходимо либо авторизоваться, либо просто указать системе, что мы в ней находимся:

 newgrp sbox
Теперь запустим второй скрипт:
 .

/maemo-sdk-install_5.0.sh

Теперь нам нужно зайти в песочницу и установить на эмулятор необходимые пакеты.

Вход прост:

 /scratchbox/login
Чтобы загрузить пакеты, нам сначала необходимо подтвердить ваше согласие с Лицензионное соглашение .

После подтверждения сайт выдаст нам строку, похожую на

 deb  http://repository.maemo.org/  fremantle/0123456789abcdef0123456789abcdef nokia-binaries
В песочнице нам нужно файл /etc/apt/sources.list добавьте его и еще одну строку
 deb  http://repository.maemo.org/extras-devel/  fremantle free non-free
Теперь мы готовы установить пакеты:
 apt-get update
 fakeroot apt-get install nokia-binaries nokia-apps libqt4-maemo5*
По завершении мы имеем эмулятор Maemo, полностью готовый к разработке.



Запуск

Для запуска нам понадобится Xephyr:
 apt-get install xserver-xephyr
Теперь давайте запустим его
 Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &
На экране появится черное окно размером 800x480. Теперь вам нужно запустить среду Maemo; для этого войдите в песочницу и выполните скрипт запуска:
 /scratchbox/login
 export DISPLAY=:2
 af-sb-init.sh start
Рабочий стол n900 появится в черном окне Xephyr (английский язык советую оставить, так как русский перевод почему-то неполный и многие надписи будут отображаться по своим идентификаторам).

Также есть определенная проблема с цветами (там, где должен быть синий цвет, иногда появляется оранжевый, у иконок сверху «шлейф» и прочие подобные артефакты.

Но на общую работу это не влияет и тестирование приложений может пройти вполне сносно) .



QtCreator

Сразу уточню, вся разработка должна вестись в домашней папке пользователя в «песочнице», чтобы необходимые файлы были доступны изнутри «песочницы».

Афаик, полная поддержка Maemo (и MADDE) доступна только в самособранных редерах, но я использую снапшоты, в которых есть меню выбора устройства Maemo, но больше ничего с ним сделать нельзя.

Ну это не проблема, сборку и запуск проекта всегда можно полностью перенастроить кастомными шагами.

Вот что мы сделаем.

Во-первых, нам понадобится скрипт в нашем домашнем каталоге в песочнице, который позволит нам запускать приложения в песочнице.

Создадим файл sbox-run следующего содержания:

 #!/bin/sh -l
 # go to directory given as first arg and execute rest of the args there
 cd $1
 shift
 # export here environment variables required by the command to execute
 export DISPLAY=:2
 $*
Этот скрипт принимает в качестве первого аргумента каталог, в котором должна быть выполнена команда, а остальные параметры — это то, что необходимо выполнить (то есть, например, имя бинарника с параметрами этого бинарника).

Нам также нужен механизм для запуска этого сценария вне песочницы.

Скрипт называется sbox-command и входит в небольшой набор утилит sbox-utils, ссылка на который есть в конце статьи.

Скрипт принимает те же параметры, что и выше.

Запустите QtCreator и создайте новый проект. Нам нужно изменить все шаги сборки, очистки и запуска на вызовы прокси через команду sbox. Делать это каждый раз немного утомительно, поэтому был написан еще один скрипт create-qtc-project-file, который тоже есть в sbox-utils. Его необходимо запустить в папке проекта без параметров, и он создаст файл .

pro.user с минимальными настройками для QtCreator. Теперь вы можете смело использовать QtCreator в качестве инструмента разработки для Maemo (не забудьте предварительно запустить Xephyr и среду Maemo с помощью команд, указанных выше).

Единственное, на что не распространяется эта настройка, — это отладка, но я просто пока не копал в этом направлении.



Тестовое приложение на Qt в среде рабочего стола и среде Maemo

Также было быстро написано тестовое приложение без всякой логики (использовался только дизайнер) для сравнения отображения приложений на десктопе и в Maemo. Ниже приведены его скриншоты.

Само приложение:

Разработка в QtCreator для Maemo SDK



Разработка в QtCreator для Maemo SDK

Открыть меню приложения:

Разработка в QtCreator для Maemo SDK



Разработка в QtCreator для Maemo SDK



Ссылки

sbox-utils тестовые источники приложения Теги: #maemo #Maemo 5 #scratchbox #Qt #qt4 #qtcreator #linux #Debian #Nokia #Qt
Вместе с данным постом часто просматривают: