The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проект Qt представил сборочный инструментарий qbs 1.0.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от opennews (ok) on 31-Май-13, 21:30 
Развиваемый проектом Qt сборочный инструментарий qbs (http://qt-project.org/wiki/qbs) (Qt Build Suite) достиг (http://blog.qt.digia.com/blog/2013/05/31/qbs-1-release/) того состояния, при котором возможна удобная сборка проектов сложности уровня Qt Creator. Таким образом, проект заслуживает той версии, которая бы отражала его полезность. Для стимулирования использования qbs в других проектах, разработчики решили присвоит новому выпуску qbs знаковый номер версии 1.0.0.


Примечательной особенностью qbs является использование упрощённого варианта языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки. При этом язык адаптирован для автоматизации генерации и разбора сценариев сборки интегрированными средами разработки. В отличии от qmake, qbs не привязан к Qt и изначально рассчитан на организацию сборки любых проектов.


Кроме того,  qbs не генерирует make-файлы, а сам без посредников, таких как утилита make, контролирует запуск компиляторов и компоновщиков, оптимизируя процесс сборки на основе детального графа всех зависимостей. Наличие изначальных данных о структуре и зависимостях в проекте позволяет эффективно распараллеливать выполнение операций в несколько потоков. Для крупных проектов, состоящих из большого числа файлов и поддиректорий,  производительность повторной пересборки с использованием qbs может опережать make в разы - пересборка выполняется почти мгновенно и не заставляет разработчика тратить время на ожидание.

Особенности qbs:


-  Позволяет собирать проекты для разных платформ в той же командной оболочке (shell);
-  Позволяет параллельно собирать множество конфигураций одного проекта;
-  Предоставляет быстрые инкрементальные сборки (оценки производительноти (https://blog.qt.digia.com/blog/2013/04/16/qbs-reached-mile-s.../));
-  Использует QML-подобный язык;
-  Поддерживается в Qt Creator 2.8;
-  Не привязан к версии Qt, т.е. смена используемой версии Qt не заставляет менять версию инструментария сборки.


В анонсе отмечено, что не смотря на то, что замена основанной на qmake системы сборки Qt в принципе возможна, сборка Qt всё ещё будет требовать скрипт configure и небезызвестный syncqt. Разработчики смотрят дальше и ставят целью замену configure и syncqt на qbs, а это то место, где qbs всё ещё отстаёт.


URL: http://blog.qt.digia.com/blog/2013/05/31/qbs-1-release/
Новость: http://www.opennet.dev/opennews/art.shtml?num=37069

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –14 +/
Сообщение от iZEN (ok) on 31-Май-13, 21:30 
Чем это лучше Apache Maven?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –2 +/
Сообщение от Аноним (??) on 31-Май-13, 21:32 
Ждём похороникс или они таким не занимаются?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +4 +/
Сообщение от Аноним (??) on 31-Май-13, 21:32 
Хотя бы тем что не на жаве. Но вместе они не нужны, потому что есть cmake.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

19. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Аноним (??) on 01-Июн-13, 01:47 
cmake то еще дерьмецо! CMakeList выглядит ужасно
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

22. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от Аноним (??) on 01-Июн-13, 04:58 
Да это еще куда ни шло. А вот определение либ на платформе, свойств платформы и прочая - глюкастое донельзя. В этом плане его спокойно зарулят даже древние автотулсы.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

56. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Лентяй (??) on 05-Июн-13, 18:41 
> Да это еще куда ни шло. А вот определение либ на платформе,
> свойств платформы и прочая - глюкастое донельзя. В этом плане его
> спокойно зарулят даже древние автотулсы.

Зарулят? Ну-ну. В CMake изначально решены проблемы (ну или сильно затрднены пути создания таковых) с неправильным порядком ключей -I и -L, например. Немало проектов на autotools, особенно крупных, не собирается правильно при наличии уже установленной в системе копии. В CMake такого добиться ещё надо постараться (в OpenCV 2.4, например, умудрились).

Плюс, язык CMake куда очевиднее, чем m4 или шелл.

Насчёт же определения свойств платформы - patches are welcome, разработчики весьма отзывчивы. Всё-таки проект заметно моложе autotools, поэтому не удивительно, что количество поддерживаемых платформ (и то, относительно экзотических) меньше.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

58. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от arisu (ok) on 06-Июн-13, 04:38 
> Немало проектов на autotools, особенно крупных, не собирается правильно при наличии уже
> установленной в системе копии.

их авторов надо бить молотками по головам. фиче «сначала ищем несисемный инклюд в каталоге собираемого исходника» сто лет в обед. если проект при сборке инклюдит свои файлы как системные… это уже даже не прискорбно, это неоперабельно. исходники-то пропатчить можно, а как мозги авторам починить?

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

59. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Лентяй (??) on 06-Июн-13, 04:53 
>> Немало проектов на autotools, особенно крупных, не собирается правильно при наличии уже
>> установленной в системе копии.
> их авторов надо бить молотками по головам. фиче «сначала ищем несисемный инклюд
> в каталоге собираемого исходника» сто лет в обед. если проект при
> сборке инклюдит свои файлы как системные… это уже даже не прискорбно,
> это неоперабельно. исходники-то пропатчить можно, а как мозги авторам починить?

Хотите - верьте, хотите - нет, но вот лично я недавно получил ответ в духе "сам дурак, убери старые либы из системы и всё соберётся как надо", когда запостил в багтрекер Samba4 жалобу на такую проблему. Там, правда, сильно переделанный WAF, а не autotools, но суть та же, и очень уж пример яркий.

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

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

63. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от arisu (ok) on 06-Июн-13, 05:16 
да я так, «в общем негодую». я тоже подобное встречал, и вроде бы у людей вполне нормальных.

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

Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

64. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Лентяй (??) on 07-Июн-13, 01:26 
Дык что самое-то обидное - предлагаешь патч, который решает эту проблему, а его даже смотреть не хотят. :(
Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

65. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от arisu (ok) on 07-Июн-13, 03:19 
> Дык что самое-то обидное - предлагаешь патч, который решает эту проблему, а
> его даже смотреть не хотят. :(

а вот это уже странно.

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

14. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +3 +/
Сообщение от kurokaze (ok) on 31-Май-13, 23:11 
Изень, не позорь программистов на джаве
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

15. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Карбофос (ok) on 01-Июн-13, 00:08 
да какой он на хрен программист?
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

23. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от Аноним (??) on 01-Июн-13, 04:59 
> да какой он на хрен программист?

Ну как какой? Быдлокодер обыкновенный, одна штука.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

28. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +8 +/
Сообщение от Fyjybv on 01-Июн-13, 10:23 
Кто тебе сказал, что он вообще кодер?
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

30. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Dmitry77 email(ok) on 01-Июн-13, 12:16 
http://accelconf.web.cern.ch/accelconf/icalepcs2011/papers/w...
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

32. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –2 +/
Сообщение от BayaN (ok) on 01-Июн-13, 15:23 
О..еть, по этому бреду даже статьи пишут. CERN научились бюджеты пилить, молодцы.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Dmitry77 email(ok) on 01-Июн-13, 15:38 
Что мне нравится в maven - перед компиляцией он может сам скачивать всё дерево  зависимостей, причём это кроссплатформенно: под любым линуксом, виндой, макосью.

Я на С++ не пишу, но как я понимаю для с++ такое нельзя:
все зависимости управляются менеджером пакетов дистрибутива,  у каждого дистрибутива менеджер пакетов свой, пакеты называются по разному.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

34. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Карбофос (ok) on 01-Июн-13, 19:34 
>у каждого дистрибутива менеджер пакетов свой

не всё так печально, все дебиан-базированные (Ubuntu и т.п.) на dpkg, Fedora, OpenSuse - rpm, ну и плюс пару дистров, базированных на Slackware и подобных. зависимости пакетов вытягиваются командами, в самих пакетах есть эта инфа, если пакет не содержит только статически собранные программы и конфиги. такое тоже бывает. так что написать что-то в этом духе для большинства дистрибутивов - не шибко сложно. и это не является свойством какого-то языка программирования. большинство проектов просто выдают ошибку, если какой-то devel пакет доустановить надо.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

57. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Лентяй (??) on 05-Июн-13, 18:45 
> Что мне нравится в maven - перед компиляцией он может сам скачивать
> всё дерево  зависимостей, причём это кроссплатформенно: под любым линуксом, виндой,
> макосью.
> Я на С++ не пишу, но как я понимаю для с++ такое
> нельзя:
>  все зависимости управляются менеджером пакетов дистрибутива,  у каждого дистрибутива менеджер
> пакетов свой, пакеты называются по разному.

Оборотная сторона - Maven усложняет сторонний контроль процесса сборки и поэтому хорош для машины разработчика, на начальном и основном этапах разработки. Как только речь заходит о подготовке релиза - "умность" Maven, WAF, Ruby bundler и тому подобных приходится выключать, чтобы полностью контролировать среду сборки и благодаря этому иметь возможность получать стабильные результаты сборки.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

40. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –2 +/
Сообщение от Аноним (??) on 02-Июн-13, 13:04 
авторы статьи - скорее всего просто студенты, проходившие практику в ЦЕРНе и написавшие курсач по этой теме. Очень плохо себе представляю специалиста, занятого гибридизацией мейка и мавена вместо реализации алгоритмов из вычислительной физики и математики, ну или чем они там занимаются))
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

26. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от arisu (ok) on 01-Июн-13, 08:53 
> Чем это лучше Apache Maven?

любая система сборки, которая не требует ставить говножабу, уже лучше. даже sh.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

29. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Dmitry email(??) on 01-Июн-13, 10:41 
iZEN, а ты с плюсами используешь мавен?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +3 +/
Сообщение от попо on 31-Май-13, 21:32 
Чем это лучше cmake?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –3 +/
Сообщение от Аноним (??) on 31-Май-13, 21:33 
> Чем это лучше cmake?

Ничем, разумеется. Но наверняка лучше кривого qmake.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –3 +/
Сообщение от попо on 31-Май-13, 21:34 
Хотя я прочитал статью, cmake делает makefile, а это чудо нет. Стоит его попробывать
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

11. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +13 +/
Сообщение от Аноним (??) on 31-Май-13, 22:15 
И почитать учебник русского языка тоже не забудь.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

13. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +3 +/
Сообщение от неанонимус on 31-Май-13, 23:10 
Как ниже заметили, нет вызовов промежуточных тулзов (будь то make или что ещё), как следствие, сборка идет гораздо быстрее (все помним, что рекурсивные мейкфайлы - зло?).
Ну и возможность писать ф-ии на джаваскрипте в разы лучше синтаксиса симейка. Работа со строками в симейке - это та еще попоболь.
Вообще синтаксис симейка ужасен для системы сборки, имхо.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

21. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от ffirefox on 01-Июн-13, 04:55 
>все помним, что рекурсивные мейкфайлы - зло?

Не помню. Почему?

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

31. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от anon2 on 01-Июн-13, 14:52 
>>все помним, что рекурсивные мейкфайлы - зло?
> Не помню. Почему?

Потому что не позволяют построить полное и единственное дерево зависимостей на весь проект, а без такого дерева невозможно эффективно распараллелить сборку.
Сам сделал такую систему сборки, основанную на gnu make - рекурсивно зачитываются все Makefile'лы через директивы include, сроится полное дерево зависимостей и выполняется сборка: сначала параллельно собираются все исходники, потом параллельно линкуются все либы, затем также параллельно линкуются все исполняемые файлы. Достигается идеальная масштабируемость на любое количество cpu - когда при сборке все cpu загружены на 100%.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

35. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от arisu (ok) on 01-Июн-13, 19:46 
и ты посмотри в сторону jam. может понравится.
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

36. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Ytch (ok) on 01-Июн-13, 23:58 
>и ты посмотри в сторону jam. может понравится.

jam штука хорошая. Кстати, спасибо что в свое время "навёл" на него. Когда дерево представляет собой один проект - удобен сильно (даже при наличии богатой фантазии в части вариантов сборки). Когда дерево - это несколько проектов с пересекающимися общими частями, но которые надо собирать частично по-разному в зависимости от текущего собираемого проекта, добавляется немного трюкачества, впрочем, в конечном итоге все решаемо оказалось. Правда Jamfiles слегка потеряли свою простоту и "прозрачность", но в любом случае сложней Makefile'ов для тех же проектов все равно не стали. ))

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

37. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от arisu (ok) on 02-Июн-13, 00:42 
> Кстати, спасибо что в свое время «навёл» на него.

рад, что кому-то помогло.

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

38. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от anon2 on 02-Июн-13, 07:51 
> и ты посмотри в сторону jam. может понравится.

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

кстати, пример моего Makefile'а

include $(TOP)/make/make_header.mk
DLL     := eventmgr
DEFINES += THREAD_COUNT=10 $(if $(filter TARGET_GATE%,$(DEFINES)),THREAD_COUNT_EXTEND=10)
INCLUDE += $(TOP)/common/sdiag
SRC     := sk_pool.cpp th_pool.cpp timeserv.cpp eventmgr.cpp
DLLS    := diagnose
DEFINES_WINXX := USE_WINSOCK2
USE_LINUX := pthread
USE_WINXX := ws2
USE_SOLARIS := socket
include $(TOP)/make/make_default.mk

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

41. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от arisu (ok) on 02-Июн-13, 20:12 
> только вызывает сомнение автоматическое построение зависимостей
> через рекурсивный скан хедеров.

пока что, за кучу лет использования в проектах разных размеров, проблем не было. разве что может лишнюю зависимость посчитать — но это не так уж страшно.

> во-первых, теряется время сборки

даже в стандартном варианте jam делает всё это *очень* быстро. но для тех, кому всё-таки медленно — есть патчик (гуглится несложно), который кэширует выхлоп сканера.

> У себя пока зависимости от хедеров не вычисляю — мне важна скорость
> сборки с нуля

мне, честно говоря, важна скорость сборки всегда. но важнее скорости — адекватность языка сборщика. jam мне показался намного более нормальным, нежели make. и, конечно, поддержка подкаталогов из коробки.

впрочем, я вдобавок использую сильно модифицированый Jambase. ну, то там правило добавил, то там правило поправил — так и выросло.

> кстати, пример моего Makefile'а

тоже неплохо. если постараться, make можно превратить в «почти jam». :3

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

60. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Лентяй (??) on 06-Июн-13, 04:57 
>> только вызывает сомнение автоматическое построение зависимостей
>> через рекурсивный скан хедеров.
> пока что, за кучу лет использования в проектах разных размеров, проблем не
> было. разве что может лишнюю зависимость посчитать — но это не
> так уж страшно.

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

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

61. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Лентяй (??) on 06-Июн-13, 04:58 
>>> только вызывает сомнение автоматическое построение зависимостей
>>> через рекурсивный скан хедеров.
>> пока что, за кучу лет использования в проектах разных размеров, проблем не
>> было. разве что может лишнюю зависимость посчитать — но это не
>> так уж страшно.
> Это, например, страшно при пакетной сборке, когда пакет, являющийся псевдо-зависимостью,
> удаляется во время сборки искомого. Всё-таки потребности разработчика и мэйнтейнера пакетов
> сильно различны, хорошая система сборки как раз та, которая пытается быть
> удобной в обоих случаях.

Кстати, как раз из-за "нечестного" сканера зависимостей очень хочется как раз попинать CMake, а ещё более того - automoc...

Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

62. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от arisu (ok) on 06-Июн-13, 05:12 
при чём тут «пакеты» и откуда это вообще взялось в обсуждении?

хинт: у слова «зависимость» много значений. в данном случае речь идёт про аналог 'make depend'. никакие «пакеты» тут не при чём.

а уж cmake вообще мимо кассы. полностью.

пожалуйста, разберись сначала с тем, что такое jam. потому как ты сейчас ворвался с шашкой наголо громить проблемы, которые вообще не относятся к обсуждению.

Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

66. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Лентяй (??) on 08-Июн-13, 00:05 
> при чём тут «пакеты» и откуда это вообще взялось в обсуждении?

Очень даже причём. Подразумевалась массовая сборка пакетов, которые используют в этом увлекательном процессе самые разные системы сборки. Это не когда ручками заходишь и делаешь "./configure && make && make install". И даже не когда просишь emerge firefox. Это когда собираешь дистр ОС, например. То есть, повторюсь, задача сильно отличная от той, которую решает обычный разработчик на своём месте - но решаемая при использовании тех же самых систем сборки.

> хинт: у слова «зависимость» много значений. в данном случае речь идёт про
> аналог 'make depend'. никакие «пакеты» тут не при чём.

Да, я это прекрасно понял. Ответный hint: зависимости при автоматическом их выстраивании делаются не только по отношению к файлам самого проекта, и даже -MMD не панацея.

> а уж cmake вообще мимо кассы. полностью.
> пожалуйста, разберись сначала с тем, что такое jam. потому как ты сейчас
> ворвался с шашкой наголо громить проблемы, которые вообще не относятся к
> обсуждению.

Громить проблемы? Эх, если бы их было так легко разгромить...

Объясняю: массовая одновременная сборка пакетов чревата разными интересными ситуациями. Если собирается пакет посредством системы сборки, которая использует альтернативный способ определения зависимостей между файлами, то у нас возможны, например, следующие ситуации:

1) Заголовочный файл находит компилятор, но не находит система сборки. Результат - пропущенная зависимость. Не особо смертельно, но пережить можно, зачастую - указав зависимость принудительно.

2а) Система сборки игнорирует заголовочные файлы вне каталога сборки. Топорно, нельзя использовать, если надо что-то вроде automoc, накладывает ограничения по использованию симлинков. Кажется, такой режим есть у WAF и/или SCons, но проверять - см. ник. :)

2б) Заголовочный файл не используется компилятором, но его находит система сборки. А вот это уже конкретное западло. Потому что если заголовочный файл найден за пределами системы сборки (правила поиска путей никто не отменял), и в процессе сборки исчезает (пакет, его содержащий, удалён), то сборка рискует обломаться. Именно это происходит в случае с CMake или automoc (звучит особенно забавно в свете, что в последних версиях CMake появилась встроенная реализация automoc). И так же будет вести себя любая другая систем с "нечестным" сканированием зависимостей. А ситуация с исчезновением параллельного пакета в ходе сборки - обычное дело при массовой сборке пакетов.

Именно об этом и был мой комментарий.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

67. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Лентяй (??) on 08-Июн-13, 00:06 
> Очень даже причём. Подразумевалась массовая сборка пакетов, которые используют в этом увлекательном

"которая использует", конечно же. Прошу прощения за эту и другие возможные описки, сильно спать хочется.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

68. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от arisu (ok) on 08-Июн-13, 09:33 
>> при чём тут «пакеты» и откуда это вообще взялось в обсуждении?
> Очень даже причём. Подразумевалась массовая сборка пакетов, которые используют в этом увлекательном
> процессе самые разные системы сборки.

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

> Да, я это прекрасно понял. Ответный hint: зависимости при автоматическом их выстраивании
> делаются не только по отношению к файлам самого проекта, и даже
> -MMD не панацея.

в *данной* дискуссии это вообще не обсуждалось.

> Именно об этом и был мой комментарий.

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

ещё намекаю: лично мне проблемы маинтайнеров вообще побоку. если у них там какая-то запара потому, что они не могут в jam — меня это не волнует совершенно. я зато в jam могу, он мне нравится, он мне удобен. потому что сборщик сношается со сборкой пакета гораздо реже, нежели я со сборкой проекта в процессе разработки. поэтому для меня приоритеты сборщиков где-то далеко внизу.

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

42. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от arisu (ok) on 02-Июн-13, 20:14 
p.s. главное — boost-jam не бери. это ужас, летящий на крыльях ночи. у бустовцев серьёзное ООП гойловного моска: они пихают недоООП даже туда, где это нафиг не надо.

а вот всякие патчи к перфорсовскому оригиналу посмотреть стоит.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

7. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от попо on 31-Май-13, 21:40 
Пример qbs файла для простого проекта http://qt-project.org/wiki/Qbs-Example

Краткое введение в qbs https://blog.qt.digia.com/blog/2012/02/15/introducing-qbs/

Справка http://qt-project.org/wiki/Qbs-Quick-Reference

Инструкция по сборке http://qt-project.org/wiki/qbs

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Аноним (??) on 31-Май-13, 21:47 
>> Пример qbs файла для простого проекта http://qt-project.org/wiki/Qbs-Example

YAML уже не в моде ?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от попо on 31-Май-13, 21:50 
Ну видать решили не парится и взяли основу языка от QML. Зачем там другие языки? Да и в qbs называют, что отдельный язык для qmake был его фатальным недостатком.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Аноним (??) on 31-Май-13, 22:17 
YAML плохой. JSON лучше, поэтому он используется в qbs.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от попо on 31-Май-13, 22:03 
Введение устарело....
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

16. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от хрюкотающий зелюк on 01-Июн-13, 00:24 
Вопрос: про Qt что оно "требовать скрипт configure и небезызвестный syncqt", это относится к сборки самого Qt как такового?

А свои программы собирай-конпеляй при помощи QBS? И ничего более?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Аноним (??) on 01-Июн-13, 00:26 
Ага. Именно так.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от попо on 01-Июн-13, 00:30 
Там писали, что если сейчас использовать qbs для сборки Qt, то без configure & syncqt не обойтись. А авторы qbs этого не хотят, и они планируют расширить функционал qbs, чтобы можно было обойтись без других инструментов.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Аноним (??) on 01-Июн-13, 04:25 
Очень удобная система, конфигурационные скрипты писать и поддерживать одно удовольствие. Собирает шустрее других систем.
Свои проекты внутренние перевел на нее, из QtC пока не собираю еще (использую qmake), но когда нужно сделать полную сборку всех проектов для деплоя, использую qbs.

Так же написал для него скрипты сборки старых дельфевых проектов. Что очень экономит время на запуск ide =)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Аноним (??) on 01-Июн-13, 05:00 
> старых дельфевых проектов.

Necromancy is a forbidden art.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

25. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от Аноним (??) on 01-Июн-13, 07:44 
я уже боюсь представить что вы скажете, узнав про проекты на фортране =)
наследие примерно четверть века тянется, не все вот так сразу можно переписать на плюсах и qt.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

45. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –2 +/
Сообщение от Аноним (??) on 03-Июн-13, 11:45 
> я уже боюсь представить что вы скажете, узнав про проекты на фортране =)

"Вы неплохо сохранились" :)

> наследие примерно четверть века тянется, не все вот так сразу можно переписать
> на плюсах и qt.

Наследие некроманов - куда ни шло, а вот разучивать дельфей в 2013 году - вот это странное начинание, да.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

46. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от arisu (ok) on 03-Июн-13, 11:53 
> а вот разучивать дельфей в 2013 году — вот это странное начинание, да.

с чего бы? язык весьма неплохой.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

39. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –3 +/
Сообщение от maximnik0 on 02-Июн-13, 13:03 
> Necromancy is a forbidden art.

Какая некромантия -2012 год это некромантия ? Видел на диске к хакеру за 12 год , версия для студентов шла за 35 уе ,начальная базовая 90-120 уе ,ентерпрайз 1200 -5000 уе , так что не погоже что труп . Хотя от старого делфи там очень мало -портировали все что могли на платформу NET (во внутренястях не разберался -просто просмотрел и удалил ,Qt и кросплатформенного движка уже нет :-( )

.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

44. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от Аноним (??) on 03-Июн-13, 11:44 
> Какая некромантия -2012 год это некромантия ?

Какая, какая.... дельфи нынче пользуются только убежденные некроманы. Остальные это давно выбросили. Хуже дельфистов быдлoкодят только одинэсники, и то не факт.

> Видел на диске к хакеру за 12 год ,

Там еще и не такому научат.

> версия для студентов шла за 35 уе ,начальная базовая 90-120 уе ,ентерпрайз 1200 -5000 уе ,

И что? Легионов желающих этим пользоваться нынче чего-то не заметно. Дельфисты в массе своей вымирают, что к лучшему.

> так что не погоже что труп .

Трупозность софта определяется отнюдь не тем кто и сколько за разные версии просит.

> Хотя от старого делфи там очень мало -портировали все что могли на платформу
> NET (во внутренястях не разберался -просто просмотрел и удалил ,
> Qt и кросплатформенного движка уже нет :-( )

А он там был когда-то? А так что куть, что дотнет - потомки и наследники си-подобных языков, по поводу чего паскaлеобразному дельфи оно не друг и не товарищ. Ни то ни другое. Как-то конечно на проволоку и скотч можно к паскалю и это прикрутить. Но получится весьма предсказуемый результат.

> .

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

47. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –2 +/
Сообщение от maximnik0 on 03-Июн-13, 12:26 
> А он там был когда-то? А так что куть, что дотнет -

Да когдато QT был в делфи 7 -работал через кросc платформенный библиотеку CLX , был даже делфи портирован под линукс (Kulix 3 ),1 и 2 версия работала через wine .
//Насколько я знаю библиотеку CLX перенесли на Лазариус ,и этой библиотеке пофиг что там за графические либы (win32 ,QT (2-3-4) ,GTK ,FTL ) ,приложение скомпилируется с любой из библиотек ,жаль что CLX забросили .

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

48. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +2 +/
Сообщение от arisu (ok) on 03-Июн-13, 12:29 
это ж надо уметь и так неграмотно писать, и так задорно смешивать факты с фантазией… даже немного завидую.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

49. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от хрюкотающий зелюк on 03-Июн-13, 15:29 
А он и не наврал - раньше "дельфи для линукс" именно что базировался поверх Qt, просто совместимость между ОС. Сейчас, в свете LGPLного Qt это никому не нужно, и CLX в том числе.
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

50. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от arisu (ok) on 03-Июн-13, 15:40 
> А он и не наврал

ещё как наврал. QuickTime там вообще не при чём. это раз. никто никуда CLX не «портировал», потому что оно проприетарное и заточено на конкретную сборку Qt. это два. не работал Kylix «через wine», только ide кое-как пыталась вайнлиб использовать (хреново, да). это три. я не знаю, что такое «FTL», но всё равно фрипаскалевсий аналог VCL *это* не поддерживал. четыре.

всё, хватит.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

54. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от maximnik0 on 03-Июн-13, 22:59 
>никто никуда CLX не «портировал»

Проект лазариус портировал библиотеку еще в 2005-2006 годах ,но в стандартную комплитацию не входил из-за лецензионных проблем (вроде фирма борланд не возрожала на перенос но из-за чего то передумала ) ,не потдерживается сейчас в актуальном состояние .Вдобавок сама фирма разработчик портировала CLX под макось .FTL  извеняюсь не допечатал правильно FPTL или  FPGUI (что с названиями не знаю в доках разночтение )-  графический  движок ,на стадии сырой альфы ,типа будет родной.

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

55. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +1 +/
Сообщение от arisu (ok) on 04-Июн-13, 00:27 
ты извини за наезд, просто очень пост провоцирующий. я-то понял, что ты сказать хотел.
Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

27. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –3 +/
Сообщение от arisu (ok) on 01-Июн-13, 08:56 
чем это лучше jam и зачем было изобретать очередной велосипед?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –2 +/
Сообщение от Loooooker (ok) on 02-Июн-13, 20:35 
Если я захочу перевести свои наработки на это, мне все cmake-скрипты на qml переписывать что ли?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

51. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  +/
Сообщение от Аноним (??) on 03-Июн-13, 16:36 
если ты захочешь перенести на любую другую систему сборки, тебе переписывать придется. если эти велосипеды понадобятся, конечно.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

52. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Аноним (??) on 03-Июн-13, 19:45 
для cmake есть ninja
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

53. "Проект Qt представил сборочный инструментарий qbs 1.0.0"  –1 +/
Сообщение от Аноним email(??) on 03-Июн-13, 20:10 
Переходите на .Net framework и Windows 8.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру