воскресенье, 25 октября 2009 г.

QMake и jom

Не так давно я писал про distcc. Меня он заинтересовал потому, что MinGW уж очень долго компилирует на моей машине под линуксом. Поэтому я и начал искать, как бы этот процесс распараллелить на две машины- локальную и сервер. В итоге нашелся distcc- бесплатный и довольно живой проект, не то что прочие инструменты в этой области.

Под виндоуз экспериментировать не очень хотелось. Во-первых, мой виндоуз компьютер довольно мощный, и время компиляции чего-либо всегда меня устраивало (кроме, конечно, пересборки всей Qt с помощью nmake). Во-вторых, машина под виндоуз у меня одна, а вникать в то, как компилировать виндоуз-проект на убунту-сервере мне не очень хотелось. К тому же, пару лет назад, я уже искал что-нибудь бесплатное для MinGW/make под виндоуз и ничего кроме того же distcc не нашел. Причиной моего интереса тогда было простое любопытство- на прошлой работе мы использовали IncrediBuild, который позволяет распараллелить компиляцию из MS Visual Studio на несколько машин, где эта самая студия установлена. Решение это вовсе не бесплатное, но для компаний вполне приемлимое.

Хорошая новость в том, что Qt Creator с версии 1.2.90 под Windows использует jom вместо nmake. Этот инстумент позволяет задействовать все ядра процессора, а не только одно, как nmake. Что, как выяснилось, для меня самое то- мой старый пень- двуядерный. Выигрыш в скорости сборки плагина HelloWorld со всеми библиотеками- 2 мин (25%). Я надеялся на большее, но и 6 минут вместо 8 совсем неплохо.

Также стоит упомянуть и то, что тролли задумались над будущим QMake- или продолжать его развивать и добавить несколько нужных функций, в том числе и распределенную компиляцию, пытаясь при этом сохранить обратную совместимость, или же перейти на какой-то другой билд-инструмент. См. вот этот и этот посты.

воскресенье, 18 октября 2009 г.

Qt Creator 1.3 beta (1.2.92)- первые впечатления

14 октября Trolltech, извините, Qt Software (update: Qt Nokia, что они никак название не придумают?), выпустил бету 1.3 Qt Creator. Список изменений в версии 1.3. можно посмотреть здесь.

Замечу, что также вышла и бета версии 4.6 Qt. Ее я пока не смотрел.

Я, конечно, скачал новый Qt Creator и под Линукс, и под Виндовз. Интересно, что на обеих платформах Qt Creator по умолчанию предлагается поставить в директорию qtcreator-1.2.92. Возможно будут и другие беты, выход 1.3 назначен на четвертый квартал этого года, так что время для еще одной беты есть.

Сразу скажу, что в новой версии мне хотелось посмотреть изменения в поддержке Perforce. Однако под Линуксом пункта меню Tools->Perforce (как и Tools->Subversion) нет вообще, есть только Tools->Git. Зато под Виндовз нашлись все, включая новый плагин для CVS.

Вторая вещь, которую мне хотелось бы видеть, это создание Makefile в самом Qt Creator. К сожалению, в 1.3 улучшили создание проектов из уже готовых Makefile'ов, а вот создание Makefile'ов оставили за бортом. А как же написание простых консольных приложений из-под Qt Creator с нуля? Тем более, что использвание обоих make и qmake становится гибче с каждой новой версией IDE...

Зато под Виндовз появилась поддержка CDB, его предлалается установить с сайта Майкрософт: MS Debugging Tools for Windows 32-bit. Если придется что-нибудь отлаживать под Виндовз с компилятором от VS, буду пользоваться.

На следующей неделе буду разбираться, как поддерживается Perforce. Судя по постам в мэйл листе, плагин нужен, но вот сил на него у Qt Software, похоже, нет, сама компания использует git. Хотя, с другой стороны, плагин для CVS?

суббота, 17 октября 2009 г.

Дорвался...

По ряду причин с августа на несколько месяцев забил на фотографию, QtCreator, домашний сервер и блоги. Нехорошо, конечно.

С целью исправиться включил сегодня комп и обнаружил, что из альбомов в Picasa пропали несколько фоток. Уж не знаю зачем, но предлагают обновить базу на своей локальной машине. Учитывая, что Пикасу я не запускал те же несколько месяцев, смысла в этом не вижу, и, похоже, "обновление базы" сведется к простому аплоаду пропавших фоток. Первый раз Google меня подвел...

Из хороших новостей... Я, конечно, краем глаза поглядывал, что там в Qt Software поделывают с Qt Cretor, хотя мне и было не до него. Похоже, что за эти месяцы исправили много багов, а вот до версии 1.2.2 официально его так и не обновили. Зато вчера вот я прочел, что вышла 1.3.0 beta, сейчас качаю.

К домашнему серверу надо прикрутить FTP, хотя это тема для другого блога. А еще, надо похоже git устанавливать, Qt Creator не очень-то хочет работать с моим любимым Perforce. Хотя, 1.3, может, и захочет...

Qt Creator и Perforce

Этот пост я готовил в конце августа, да так его и не закончил. Публикую как есть, во-первых, чтобы не потерялся, во-вторых, потому что Qt Creator обновился до 1.3.0 beta, так что надо срочно завязывать с 1.2.1.

-----------------

Давно я в этот блог не постил, все с сервером ковырялся, Perforce устанавливал. В общем, выяснилось, что Qt Creator работать с Perforce может, но особо не хочет. Т.е. иногда работает, а иногда- нет.

Например, сразу после установки Perforce, Qt Creator категорически не мог его найти (Options->Version Control->Perforce), то писал, что "timeout after 5000 ms", то выдавал вот это:


Я уж чего только не делал. И переменные объявлял, чтобы по отдельности их Qt Creator скормить, и конфигурационный файл переносил- ничего не помогало. В конце концов, я решил, что напишу ругательный пост про версию 1.2.1, и скажу, что, мол, надо подождать следующей версии Qt Creator. Тем более, что в mail list Qt Creator обсуждался Perforce плагин, и писали, что кое-что пофиксили.

Но вдруг сегодня, после перезагрузки и клиента, и сервера, Qt Creator сказал "Test succeeded." Видимо, испугался Ж-). Поэтому, я сразу побежал проверять, как Hello World запишется на сервер.

Ну, это интересный процесс. Makefile записать не удастся- Qt Creator не позволяет сделать add file для него. Более того, даже если его добавить "ручками", изменить его позже тоже не получится- Qt Creator его не запишет, даже если он находится в том же change list, что и исходник. Но это, может и правильно, часто их менять не надо, да когда много разработчиков его держат открытым, обновлять его на сервере втихую не следует.

А вот то, что множественные change lists вообще не поддерживаются, это плохо. Т.е. если изменить несколько файлов, то привязать их к разным change lists не удастся. Предлагается, похоже, работать надо всеми изменениями сразу.