1.1, Аноним (1), 23:34, 19/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Юзаю qbs, нравится, особенно в сравнении с cmake, qmake и подобными
| |
|
|
|
4.7, Владимир (??), 06:09, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Нет, не обязательно. Я был и остаюсь Qbs-фаном (я стал его использовать в продакшене с версии 1.0.0), статьи на хабр писал для агитации. Но у Qbs остается много недостатков по сравнению с CMake.
Один из главных на мой взгляд - разработчики забивают на то что нужно пользователям.
Посмотрите сколько тикет висел на реализацию VS генератора после прохождения ревью. Три года.
Сколько висит тикет на реализацию XCode генератора? он до сих пор открыт.
Почитайте ченджлоги Qbs 1.12 и CMake 1.12
Отсутствие вменяемой совместимости как у CMake. (1-2 релиза и прощай, пересборка QtC возможна зачастую только ровно предыдущей версией его же (я о встроенной qbs поддержке)
Отсутствие коммьюнити, мейл лист достаточно тухлый (по крайней мере был год назад, сейчас я от него отписан)
Проект пилят полтора человека, не знаю почему Qt Company не выделяет больше ресурсов.
Сама по себе идея и задумка хорошая, но очень сильно отставание от уходящего поезда CMake...
ninja предоставляет ничуть не хуже скорости инкрементных сборок. Одна беда - скорость конфигурирования самого cmake (которую обычно приплюсовывают ко времени для сравнения с qbs).
Если вам надо часто что-то переконфигурировать, а скрипты тяжелые, это беда-печаль. На моем проекте это около полуминуты.
| |
|
5.11, sokoloff (??), 11:09, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
>Я был и остаюсь Qbs-фаном
Владимир, можете показать ваш проект который собирается Qbs-ом. Интересно посмотреть на реальный пример. Я сейчас использую cmake. Qbs меня в свое время заинтересовал, но по "игрушечным" примерам из документации я не понял он удобнее будет чем cmake, или нет.
| |
5.14, Аноним (14), 14:50, 20/07/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Но у Qbs остается много недостатков по сравнению с CMake.
Мой любимый недостаток - сложность запуска произвольных команд. В Qbs для запуска парочки произвольных команд нужно написать код на JavaScript, который делает следующее:
1. Создает массив из аргументов команды.
2. Создает объект Command, куда передается имя команды и массив с аргументами.
3. Создает массив из объектов типа Command.
4. Возвращает массив с объектами типа Command для присваивания Rule.prepare.
Я понимаю, это соответствует идеологии Qbs с Яваскриптом во все поля, но получается слишком навороченно и не очень-то читабельно.
add_custom_command в CMake смотрится гораздо проще и чище.
| |
|
6.15, Владимир (??), 18:01, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Навороченно - да, на счет читабельно там 50/50, в случае мало-мальски сложного скрипта CMake начинает отставать.
Когда прикручиваешь какой-то сраный def парсер или подобное, да, вымораживает.
Зато блин в cmake для некоторых кастомных таргетов приходится конфигурить вспомогательные скрипты, а в qbs о таком можно забыть.
Ну и да, не для "произвольного" когда все-таки, никто не мешает файлы прочитать просто в проперти той же) я так какое-то автоконфигурирование делал безо всяких Probe-ов, они тогда сырые были еще, не слежу как у них сегодня ситуация.
ну и еще плюс к CMake - в нем просто ОХРЕНИТЕЛЬНАЯ стандартная библиотека. Написано скриптов поддержки фич на кучу разных платформ на все случаи жизни. Мне кажется в текущем виде CppModule.qbs очень плохо будет горизонтально масштабироваться.
| |
|
|
|
|
|
3.8, Владимир (??), 06:10, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
qbs скрипты для QtC есть с версии 2.6, что ли. Так что ответ да - можно. Более того, я свой кастомный плагин только им и собираю, выходит намного быстрее, чем с qmakе собрать только одну цель.
| |
|
4.9, Tantrido (?), 06:14, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
> qbs скрипты для QtC есть с версии 2.6, что ли.
Скрипты то есть, но говорят собрать ими QtC нельзя до сих пор.
| |
|
5.16, Владимир (??), 18:01, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Блин, ну раз нельзя, пойду удалю свою сборку тогда, и коллегам скажу чтобы не использовали мои бинарники...
| |
|
6.19, Tantrido (?), 21:37, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
> В блоге кьюта как раз сообщают об обратном
Не знаю, у меня не собиралось и кютешники говорили, что не собирается. Это не разработчик ответил.
| |
|
|
|
|
|
1.10, anonymous (??), 09:00, 20/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
>В отличие от qmake, Qbs не привязан к Qt
В каждой новости копипастят одно и то же. Автор похоже не в курсе, что Qbs требует qtbase и qtdeclarative. А вот qmake можно и без qt собрать. Было бы желание
| |
1.12, Sauron (??), 11:39, 20/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Научили бы его качать модули из внешнего репозитория таким образом, чтобы он работал на манер cargo, цены бы ему не было. Да и вроде кажется, что это не так уж сложно сделать было бы, но почему-то нет такой задачи, что огорчает.
| |
|
2.13, Вареник (?), 12:58, 20/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
deb и rpm - по сути и есть репозитории для C/C++ проектов. Мультиплатформенный реп для С++ все равно неподъемная задача.
Это для других языков самостоятельные мультиплатформенные репы - когда язык обеспечивает должную изоляцию от платформы.
| |
2.17, Владимир (??), 18:03, 20/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Ага, а еще распределённую сборку туда впихнуть. И возможность собирать по SSH. И блокчейн.
p.s. простите за яд, это все правда клёво, но к сожалению там разработчики не справляются и с реализацией того что и так минимум нужно (точнее справляюсь, но крайне со скрипом)
| |
|
1.21, Аноним (21), 13:12, 22/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А как у него с кроссплатформенностью?
В частности, можно ли собрать Android APK?
| |
1.22, username (??), 23:36, 22/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Не понимаю я пользователей этой штуки. Обратной совместимости толком нет, разработка живет в отдельной вселенной. Выше писали про необходимость городить на js банальные вещи.
Зачем вы пользуетесь этим?
| |
|