мир тесен))
для начала нужно склонировать репо Qt
git clone git://gitorious.org/qt/qt.git
(там будет много - не пугайтесь) )
создать себе ветку для экспериментов и перейти на неё
cd qt && git checkout -b 4.8-qnx origin/4.8
наложить патчики из вложения
patch -Np1 -i ../qtqnx65_javascriptcore.diff
patch -Np1 -i ../qtqnx65_webkit.dif
(патчи тестировались на 4.7.х, но должны подойти и сюда)
кросс-сборка под вендой - дело неблагодарное;
для кросс-сборки под лялихом я себе сделал скриптик примерно такой:
export HOST_PLATFORM = linux-g++
export TARGET_PLATFORM = unsupported/qws/qnx-armv7-g++ # qnx-armv7-g++ / qnx-arm-g++ / qnx-ppc-g++ / qnx-i386-g++
export EMBEDDED = armv6 # armv6 / arm / ppc / x86
export ENDIAN = little # little / big
export QTDIR=`pwd`
export QMAKESPEC=$QTDIR/$HOST_PLATFORM
./configure -platform $HOST_PLATFORM -xplatform $TARGET_PLATFORM -embedded $EMBEDDED -$ENDIAN-endian \
-opensource -confirm-license \
-no-gfx-linuxfb -no-mouse-linuxtp -no-kbd-tty -qt-gfx-qnx -qt-mouse-qnx -qt-kbd-qnx -depths 16,24,32,generic \
-freetype -webkit -xmlpatterns -plugin-sql-sqlite -no-qt3support -exceptions && \
make
(но лучше, конечно, делать теневую сборку - дабы не загаживать дерево)
и устанавливаем (нужен SDP в PATH и привилегии рута):
sudo /bin/sh
export PATH=$PATH:/opt/qnx650/host/linux/x86/usr/bin:/opt/qnx650/host/linux/armle-v7/usr/bin
make install
(пути заменить на свои
)
если есть возможность собрать прямо на железке, то даже проще - HOST==TARGET и добавить ключик -developer-build - тогда можно кьют не устанавливать каждый раз, но пользовать её прямо из дерева сборки.
для запуска пользую скриптик runqtdemo:
#!/bin/sh
export QT_ROOT=/usr/local/Trolltech/QtEmbedded-4.8.0
export PATH=$PATH:$QT_ROOT/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QT_ROOT/lib
export XDG_CONFIG_HOME=/var/qt-config
export QWS_DISPLAY=qnx
export QWS_KEYBOARD=qnx
export QWS_MOUSE_PROTO=qnx
/usr/photon/bin/devi-hid -Pr kbd mouse
qtdemo -qws -no-adapt -fullscreen
slay -f -9 devi-hid
sleep 1
/usr/photon/bin/devi-hid kbd mouse
если есть возможность, соберите в дэбаг_и_релиз на arm/armv7 - мне потом может понадобиться вменяемый бэктрейс, если патч не поможет
вроде бы, всё...
для полноты картины опишу наиболее важные изменения в порте:
* добавлена поддержка процессов (QProcess)
* поддержка IPC (QSystemSemaphore/QSharedMemory) и связанных с ними фич
* сильно переработан драйвер экрана - клиент-серверный режим QWS, улучшена поддержка настроек WxHxD экрана (в т.ч. исправлены и проблемы, описанные
в посте на qnx.org.ru), базовая поддержка DPMS и т.д.
* сильно переработан драйвер указателя - работает быстрее, лагает меньше, кнопки не забывает, поддерживает тачскрины
* чуть ли не полностью переписан драйвер клавиатуры - поддерживаются все коды из 6.5, по идее должны корректно обрабатываться не-латинские раскладки (не тестировалось)
(более полный список можно найти в истории коммитов ветки 4.