суббота, 18 июля 2009 г.

среда, 15 июля 2009 г.

как подружить CMake и ccache

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

в /usr/local/bin сделать симлинки на /usr/bin/ccache с названиями: "сс","gcc", "g++"
lrwxrwxrwx 1 root root 15 2009-07-15 00:45 cc -> /usr/bin/ccache
lrwxrwxrwx 1 root root 15 2009-07-15 00:45 g++ -> /usr/bin/ccache
lrwxrwxrwx 1 root root 15 2009-07-15 00:45 gcc -> /usr/bin/ccache

а теперь для cmake нужно указать 2 дополнительных аргумента:
-DCMAKE_C_COMPILER='/usr/local/bin/gcc'
-DCMAKE_CXX_COMPILER='/usr/local/bin/g++'

cmake -DCMAKE_C_COMPILER='/usr/local/bin/gcc' -DCMAKE_CXX_COMPILER='/usr/local/bin/g++' -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull .. && make

ура, теперь cmake дружит с ccache

понедельник, 13 июля 2009 г.

Qt creator 1.0 и построчный дебаг амарока

Qt creator отличная сифтина для проектов на C++

Удобный интерфейс и редактор, встроенный дебагер и все работает без бубна..

Единственное - у него странно работает управление проектом..в проекте нет возможности создать папку :) все файлики рядом и никаких суб-дирректорий, серьезно просто нет такого пункта меню, файлы создавать можно а папки нет. это как я понял какие то религиозные убеждения разработчика..

Я уже думал выбросить его из за этого..но..поставил я его что бы покапатся в коде амарока, и в поисках решения как же импортировать исходники(а там много вложенных папок) я наткнулся на решение.

Решение это очень не очевидное но работающее безотказно:
Нужно через File -> Open открыть CMakeLists.txt. для qt creator это что-то типа файла проекта. потом откроется неведомо откуда окно с предложением сделать билд исходников..туда нужно скормить команду типа:
cmake -DCMAKE_INSTALL_PREFIX=`/usr` -DCMAKE_BUILD_TYPE=debugfull .. && make

жмем Build и ура у нас нормальный проект с вложенной структурой папок..только папочки видно не все, только те в которых есть cpp файлы..что является еще одной странностью qtcreator`а..

что мне очень понравилось - дебагер работает из коробки и без всяких настроек, я просто открыл main.cpp и поставил на строчку

int main( int argc, char *argv[] )

брейкпоинт..запускаю дебагер и он работает..класс


есть еще одна фишка, амарак при старте форкается из main в другой процесс

KUniqueApplication::start( startFlag )

по этому на этой строке дебаг слетает и запускается обычный амарок...что бы можно было дебажить недра амарока нужно пнуть кнопку Projects слева, перейти на вкладку Run settings и там в выпадающем меню выбрать custom exacutable. Там прописать путь кк свеже-скомпиленому бинарнику амарока, у меня например

/home/alex/amarokprg/qtcreator-build/src/amarok

и ниже добавить аргумент --nofork.

воскресенье, 12 июля 2009 г.

amarok QSystemTrayIcon::setVisible: No Icon set

поставил амарок 2.1
пропали все картинки/иконки в плеере

в консоли вижу

Object::connect: No such signal KLineEdit::downPressed() in /build/buildd/amarok-2.1mysql5.1.30/amarok-2.1/src/widgets/ProgressiveSearchWidget.cpp:57
QSystemTrayIcon::setVisible: No Icon set


решение: sudo apt-get install kde-icons-oxygen

суббота, 11 июля 2009 г.

Компилирую амарок 2.1 в убунту

пробую собрать амарок из исходников...система всё просит и просит различные пакеты
sudo apt-get install cmake
sudo apt-get install lsb-cxx
sudo apt-get install libtag1-dev
sudo apt-get install libtag-extras-dev
пришлось поставить apt-file что бы найти пакет которому принадлежит файл FindKDE4Internal.cmake
sudo apt-get install kdelibs5-dev
sudo apt-get install liblastfm-ocaml-dev либа для ластфм 30мб...афигеть...
sudo apt-get install libmysqlclient16-dev
sudo apt-get install libstreamanalyzer-dev
libqtscriptbindings1_0.1.0-0ubuntu1~jaunty1_i386.deb
libstrigiqtdbusclient-dev

если говорит что не установлен пакет, который точно установлен - нужно удалить в текущей папке CMakeCache.txt

все у меня пошёл собирать...и собрался, но чёрт, я думал сборка из свн починит отсутствие всех иконок..ан нет

Gnome panel applet и php-gtk

Сегодня занимался поисками возможности написания апплетов для гном панели на php. Не нашёл ничего вменяемого...

в 2006 году парень предлагал биндинг gnome-php как задачу на Google Summer of Code...заявка не прошла

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