The OpenNET Project / Index page

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

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

"Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от opennews on 28-Апр-15, 19:44 
Увидел свет (http://blog.qt.io/blog/2015/04/28/qbs-1-4-0-released/) релиз развиваемого проектом Qt сборочного инструментария qbs 1.4.0 (http://qt-project.org/wiki/qbs) (Qt Build Suite). Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки. В отличие от qmake, qbs не привязан к Qt и изначально рассчитан на организацию сборки любых проектов.

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

В новой версии:


-  Добавлена (https://doc.qt.io/qbs/android-sdk-module.html) экспериментальная поддержка платформы Android, в том числе для сборки проектов, содержащих нативный код (https://doc.qt.io/qbs/android-ndk-module.html). Специальная поддержка Qt и интеграция с Qt Creator  пока отсутствует;
-  Добавлен модуль archiver (https://doc.qt.io/qbs/archiver-module.html) для создания сжатых архивов. Данный модуль используется для организации работы компонента InstallPackage (https://doc.qt.io/qbs/installpackage-item.html);

-  Добавлено новое свойство builtByDefault, позволяющее определить продукты подлежащие сборке по умолчанию и  продукты собираемые только при явном запросе. В качестве примера подготовлено приложение AutotestRunner (http://doc.qt.io/qbs/autotestrunner-item.html), предоставляющее функции похожие на "make check";
-  Файлы теперь устанавливаются в рамках процесса сборки, что позволяет создавать продукты, работающие с содержимым установочной директории.


URL: http://blog.qt.io/blog/2015/04/28/qbs-1-4-0-released/
Новость: http://www.opennet.ru/opennews/art.shtml?num=42122

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

Оглавление

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


1. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +1 +/
Сообщение от rob pike on 28-Апр-15, 19:44 
Тут кстати хорошая (правда хорошая!) про make вышла - http://www.nostarch.com/gnumake
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от Аноним (??) on 28-Апр-15, 20:19 
Да, полезная книга. Автору вполне можно доверять - он с make уже долгое время работает.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +1 +/
Сообщение от anon2 on 28-Апр-15, 20:22 
>> производительность повторной пересборки с использованием qbs может опережать make в разы

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

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

4. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +1 +/
Сообщение от anonymous (??) on 28-Апр-15, 20:34 
>В отличие от qmake, qbs не привязан к Qt

Враньё. Для сборки нужен qmake. Пока qtbase не вытянешь, хрен соберёшь.

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

5. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от RazrFalcon email(ok) on 28-Апр-15, 20:38 
Не нужно путать привязку и зависимости.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +1 +/
Сообщение от Аноним (??) on 28-Апр-15, 21:47 
> Не нужно путать привязку и зависимости.

А в чём в данном случае разница?

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

17. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от BSA on 29-Апр-15, 22:44 
Отличия в том, что проект не обязан использовать Qt. Например, я успешно перевожу на qbs свои embedded проекты под ARM. А там не только Qt,  но и операционки даже нет.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

6. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +1 +/
Сообщение от dismine on 28-Апр-15, 21:10 
Им кто то вообще пользуется? В интернете информации ноль. Уже 1.4, а по ощущениях 0.4 только.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от АнонимЪ on 28-Апр-15, 22:20 
Мы в продакшене используем. Впечатления положительные.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от анонн on 28-Апр-15, 22:52 
Мы юзали его, до того как перешли на Gradle :) После CMake впечатления были очень положительные но до Gradle ему ооочень далеко, а учитывая темпы развития Gradle не догонит он его никогда...
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от Аноним (??) on 29-Апр-15, 01:09 
Подождите подождите. Gradle? на каком языке программирования написан ваш проект?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

15. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от D on 29-Апр-15, 13:10 
Gradle по барабану какой язык проекта. Хоть асм съест. Сам gradle конечно = jvm + groovy
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

11. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  –1 +/
Сообщение от Аноним (??) on 29-Апр-15, 01:10 
Учитывая темпы развития груви, гредл скоро сдохнет за ненадобностью.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от Аноним (??) on 29-Апр-15, 01:29 
> Им кто то вообще пользуется? В интернете информации ноль. Уже 1.4, а
> по ощущениях 0.4 только.

Полностью согласен. Документация такая что лучше бы ее не было. Описаны абсолютно базовые вещи. При нокии такого не было, как понабежали хипстеры в Qt and Co. лютый пистец.

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

13. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +1 +/
Сообщение от Аноним (??) on 29-Апр-15, 07:38 
Больше сборочных инструментов для сборки сборочных инструментов!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от user (??) on 29-Апр-15, 12:38 
Кстати, какие сборочные инструменты нормально понимают генерацию сразу нескольких файлов?

Все реализации make в этом месте сделаны через задницу, хотя стандарт не запрещает сделать правильно.

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

16. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от anon2 on 29-Апр-15, 19:50 
> Кстати, какие сборочные инструменты нормально понимают генерацию сразу нескольких файлов?
> Все реализации make в этом месте сделаны через задницу, хотя стандарт не
> запрещает сделать правильно.

реализация генерации сразу нескольких файлов на gnu make:

empty :=
define newline
$(empty)
$(empty)
endef

# processed multi-target rules
MULTI_TARGETS:=

# to count each call of $(MULTI_TARGET)
MULTI_TARGET_NUM:=

# when some tool generates many files, call the tool only once
# $1 - list of generated files
# $2 - prerequisites
# $3 - rule
define MULTI_TARGET_RULE
$1: $2;\
  $$(if $$(filter $(words $(MULTI_TARGET_NUM)),$$(MULTI_TARGETS)),,$$(eval MULTI_TARGETS += $(words \
  $(MULTI_TARGET_NUM)))$$(info generating: $$@)$$(subst $$$$(newline),$$(newline),$(subst \
  $$(newline),$$$$(newline),$3$(foreach x,$1,$$(newline)touch $x))))
MULTI_TARGET_NUM += 1
endef

MULTI_TARGET_SEQ = $(if $(word 2,$1),$(word 2,$1): $(firstword $1)$(newline)$(call MULTI_TARGET_SEQ,$(wordlist 2,999999,$1)))

# NOTE: don't use $@ in rule because it may have different values,
#       don't use $(lastword $^) - tail of list of prerequisites may have different values
MULTI_TARGET_CHECK = $(if $(filter-out $(words x$3x),$(words x$(subst $$@, ,$3)x)),$(info Warning: don't use $$@ in rule:$(newline)$3))$(if \
  $(filter-out $(words x$(strip $3)x),$(words x$(subst $$(lastword $$^), 1 ,$(strip $3))x)),$(info Warning: don't use $$(lastword $$^) in rule:$(newline)$3))

# when some tool generates many files, call the tool only once
# $1 - list of generated files
# $2 - prerequisites
# $3 - rule
MULTI_TARGET = $(MULTI_TARGET_CHECK)$(eval $(MULTI_TARGET_SEQ)$(MULTI_TARGET_RULE))

$(call MULTI_TARGET,a1 a2 a3 a4 a5,dep1 dep2 dep3,echo 1 > a1; echo 2 > a2; echo 3 > a3; echo 4 > a4; echo 5 > a5)

dep1 dep2 dep3:; touch $@

all: a1 a2 a3 a4 a5

clean:; rm -f dep1 dep2 dep3 a1 a2 a3 a4 a5

Проверка:
$ make -f multi.mk -j5

touch dep1
touch dep2
touch dep3
generating: a1
echo 1 > a1; echo 2 > a2; echo 3 > a3; echo 4 > a4; echo 5 > a5
touch a1
touch a2
touch a3
touch a4
touch a5


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

18. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от zxc (??) on 30-Апр-15, 18:12 
> Больше сборочных инструментов для сборки сборочных инструментов!

И книжек, книжек хороших побольше по 300 страниц про то как ими просто и быстро все собирать.

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

19. "Выпуск сборочного инструментария qbs 1.4.0, развиваемого про..."  +/
Сообщение от Аноним (??) on 03-Май-15, 19:13 
Увы, мeртворожденное пoделие. Лучше cmake пока ничего нет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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