The OpenNET Project / Index page

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

29.03.2018 17:44  Доступен сборочный инструментарий Qbs 1.11, развиваемый проектом Qt

Сформирован релиз развиваемого проектом Qt сборочного инструментария Qbs 1.11 (Qt Build Suite), который заменит qmake в Qt 6. В отличие от qmake, Qbs не привязан к Qt и изначально рассчитан на организацию сборки любых проектов. Qbs использует упрощённый вариант языка QML для определения сценариев сборки проекта, что позволяет определять достаточно гибкие правила сборки, в которых могут подключаться внешние модули, использоваться функции на JavaScript и создаваться произвольные правила сборки.

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

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

  • В дополнение к свойствам qbs.targetOS и qbs.toolchain, в которых используются списки, предложены аналогичные скалярные свойства qbs.targetPlatform и qbs.toolchainType, которые проще использовать для задания целевой платформы из командной строки и в профилях;
  • В модулях обеспечена возможность определения собственных настроек целевых платформ при помощи нового свойства filesAreTargets для элемента Group;
  • В дополнение к TextFile добавлен сервис BinaryFile для чтения и записи бинарных файлов;
  • Добавлено свойство cpp.rpathOrigin, через которое можно получить значение @loader_path в Darwin и $ORIGIN в других Unix-подобных платформах;
  • Добавлено свойство cpp.driverLinkerFlags, предоставляющее возможность определения флагов, которые будут переданы фронтэнду компилятора только при компоновке.
  • В качестве версии языка С++ (cpp.cxxLanguageVersion) теперь можно указывать значение "c++17";
  • Механизм автоопределения GCC-подобных компиляторов теперь учитывает типовые для MinGW префиксы (т.е. корректно определяет файлы типа i686-w64-mingw32-gcc);
  • Для задания имён файлов конфигурации предложен новый ключ "config" и возможность передавать аргументы в форме "ключ:значение". Например для сборки проекта для двух конфигураций debug и release можно запустить "qbs config:debug config:release";
  • Функциональность "run", используемая в одноимённой команде, теперь учитывает необходимые для заданного исполняемого файла библиотеки и добавляет пути к ним в переменные окружения (LD_LIBRARY_PATH в Unix, DYLD_LIBRARY_PATH/DYLD_FRAMEWORK_PATH в macOS и PATH в Windows).


  1. Главная ссылка к новости (http://blog.qt.io/blog/2018/03...)
  2. OpenNews: Разработчик языка XL опубликовал новую сборочную систему build
  3. OpenNews: Доступен сборочный инструментарий Qbs 1.10, развиваемый проектом Qt
  4. OpenNews: Компания Yahoo открыла код сборочной платформы Screwdriver
  5. OpenNews: Первый публичный выпуск сборочного инструментария build2
  6. OpenNews: Компания Microsoft открыла исходные тексты сборочной платформы MSBuild
Лицензия: CC-BY
Тип: Программы
Ключевые слова: qbs, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, A.Stahl, 18:16, 29/03/2018 [ответить] [смотреть все]
  • +/
    >QML, JavaScript

    Э-х-х-х... Ну и хрен с ними. Может хоть веб-программисты порадуются.

     
     
  • 2.3, Аноним, 18:35, 29/03/2018 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Все лучше, чем в cmake и эти еще CMakeShitLists txt if else endif add... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.4, Аноним, 18:39, 29/03/2018 [^] [ответить] [смотреть все]  
  • –4 +/
    Неужели QML еще и case-sensitive?!!!
    Боюсь даже выяснять!
     
     
  • 4.5, Аноним, 18:44, 29/03/2018 [^] [ответить] [смотреть все]  
  • +6 +/
    может хоть на этот-то раз тулзы для C-подобных языков сделали не любители Паскаля и Бейсика...
     
     
  • 5.42, Аноним, 11:56, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Вы все не поняли - эти все три сообщения написал я один и тот же Аноним Про c... весь текст скрыт [показать]
     
  • 5.43, Анонимный аноним, 14:14, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Поставить Паскаль в один ряд с васиками рукалицо ... весь текст скрыт [показать]
     
     
  • 6.44, Аноним, 14:19, 01/04/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    рукалицо хотя бы знает, что конъюнкция и и в один ряд - это никак не одн... весь текст скрыт [показать]
     
     
  • 7.45, Анонимный аноним, 15:11, 01/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Не очень убедительный перевод стрелок рукалицо ... весь текст скрыт [показать]
     
     
  • 8.47, Аноним, 15:23, 02/04/2018 [^] [ответить] [смотреть все]  
  • +/
    А зачем стараться и убедительно переводить, если сам вброс был неубедительным ... весь текст скрыт [показать]
     
  • 4.7, Аноним, 19:38, 29/03/2018 [^] [ответить] [смотреть все]  
  • +3 +/
    Например, если речь об этом, переменные openNet и opennet 8211 совершенно ра... весь текст скрыт [показать]
     
  • 4.9, Аноним, 20:26, 29/03/2018 [^] [ответить] [смотреть все]  
  • +4 +/
    Вы с винды что ли пришли или чему вы удивляетесь ... весь текст скрыт [показать]
     
  • 4.17, Аноним, 21:08, 29/03/2018 [^] [ответить] [смотреть все]  
  • +/
    А лучше как cmake - в одних местах case-sensitive, а в других case-insensitive ... весь текст скрыт [показать]
     
     
  • 5.35, ., 10:09, 30/03/2018 [^] [ответить] [смотреть все]  
  • +/
    канешна - чтоб только угробив пол-года, можно было разобраться в чужом творении... весь текст скрыт [показать]
     
  • 3.12, anonymous, 20:39, 29/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    А значит ещё более трудный для поддержка Потому что хз, в каком порядке он там ... весь текст скрыт [показать]
     
     
  • 4.18, Аноним, 22:36, 29/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Внезапно, make декларативный.
     
     
  • 5.19, anonymous, 23:37, 29/03/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    Внезапно, не декларативный. Порядком вызова команд можно управлять.
     
     
  • 6.50, Аноним, 09:44, 04/04/2018 [^] [ответить] [смотреть все]  
  • +/
    А можно и не управлять Это достаточное условие для декларативности Просто там ... весь текст скрыт [показать]
     
  • 5.34, ., 10:07, 30/03/2018 [^] [ответить] [смотреть все]  
  • –2 +/
    вы и make не умеете, как я погляжу...

     
  • 2.6, Аноним, 19:28, 29/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • –5 +/
    Что не так-то JavaScript на сегодня стал одним из быстрейших интерпретирумых ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.11, anonymous, 20:36, 29/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Заметно. Бедные Qt-шники даже компилятор для него запилили.


     
     
  • 4.16, Аноним, 20:54, 29/03/2018 [^] [ответить] [смотреть все]  
  • +/
    В Qt он не очень быстрый в сравнении с браузерами или нодой, но при типовом испо... весь текст скрыт [показать]
     
     
  • 5.20, anonymous, 23:40, 29/03/2018 [^] [ответить] [смотреть все]  
  • +1 +/
    Что, электрон таки быстрее О этот чудный диванный мир ... весь текст скрыт [показать]
     
     
  • 6.23, Аноним, 00:52, 30/03/2018 [^] [ответить] [смотреть все]  
  • +1 +/
    Не нужно путать В электроне обычный веб, а в QML отрисовка на плюсах и опенгл р... весь текст скрыт [показать]
     
     
  • 7.30, anonymous, 09:19, 30/03/2018 [^] [ответить] [смотреть все]  
  • +/
    А браузере отрисовка на JS что ли? Не смешно.
     
     
  • 8.46, Аноним, 06:13, 02/04/2018 [^] [ответить] [смотреть все]  
  • +/
    Как минимум, все нестандартные компоненты - это JS ... весь текст скрыт [показать]
     
  • 5.26, qooKot, 06:58, 30/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Есть инфа, что Qt использует все тот же V8, например Так что ваше не очень б... весь текст скрыт [показать]
     
     
  • 6.28, solarw, 07:34, 30/03/2018 [^] [ответить] [смотреть все]  
  • +/
    для qml используется собственный движок v4, сделан для скорости работы с qobject... весь текст скрыт [показать]
     
  • 6.38, Аноним, 14:10, 31/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Типовое использование в Qt Едрить Вы бестолочь, сударь Когда-то давно так дейс... весь текст скрыт [показать]
     
  • 2.8, Аноним, 20:25, 29/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Не путайте QML и js QML это простой и понятный декларативный язык От js он взя... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.10, anonymous, 20:35, 29/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Как ты логику без JS собрался с QML работать Чтобы тут диванные теоретики не оп... весь текст скрыт [показать]
     
     
  • 4.15, Аноним, 20:51, 29/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Так-то да, но обычно он используется на достаточно примитивном уровне и очень хо... весь текст скрыт [показать]
     
     
  • 5.21, anonymous, 23:41, 29/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Настолько примитивном, что необходимость прибивать его гвоздями вызывает недоуме... весь текст скрыт [показать]
     
     
  • 6.24, Аноним, 00:55, 30/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    А как иначе Что использовать для интерфейсной и лёгкой бизнес логики JS - идеа... весь текст скрыт [показать]
     
     
  • 7.27, qooKot, 07:02, 30/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Ну ведь неправда же Всегда есть набор ЗА и ПРОТИВ И выбрали его не потому, что... весь текст скрыт [показать]
     
     
  • 8.36, anonymous, 12:35, 30/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    Его никто выбирал. Его притащили адепты из совсем другой области.
     
  • 7.31, anonymous, 09:23, 30/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Для начала бы отделить интерфейс от бизнес-логики Декларативный подход с ошмётк... весь текст скрыт [показать]
     
     
  • 8.39, Аноним, 14:13, 31/03/2018 [^] [ответить] [смотреть все]  
  • +/
    На практике это довольно удобно Желаю успехов с интерфейсом на C Остаётся М... весь текст скрыт [показать]
     
  • 3.14, Аноним, 20:49, 29/03/2018 [^] [ответить] [смотреть все]  
  • –8 +/
    Что плохого в ноде-то Серьезно, относительно недавно использую, классная вещь, ... весь текст скрыт [показать]
     
     
  • 4.22, anonymous, 23:42, 29/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Ну вот, ещё один фрейворк с языком сравнивает. Фу таким быть.
     
     
  • 5.25, Аноним, 00:57, 30/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Где JavaScript принципиально разный бывает, поэтому корректно отдельно писать,... весь текст скрыт [показать]
     
     
  • 6.32, anonymous, 09:24, 30/03/2018 [^] [ответить] [смотреть все]  
  • –1 +/
    >JavaScript принципиально разный бывает

    После этой фразы мне стало смешно.

     
     
  • 7.40, Аноним, 14:16, 31/03/2018 [^] [ответить] [смотреть все]  
  • +/
    Соболезную Движков JS много и каждый может работать немного иначе Допустим, в ... весь текст скрыт [показать]
     
  • 1.2, Аноним, 18:30, 29/03/2018 [ответить] [смотреть все]  
  • +/
    Добавили бы что ли в список продуктов просто o , а то приходится костылить че... весь текст скрыт [показать]
     
     
  • 2.13, Аноним, 20:42, 29/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Если не секрет, что у тебя за линкер Вроде все уже давно нечувствительны к поря... весь текст скрыт [показать] [показать ветку]
     
  • 2.37, Владимир, 05:50, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    дико извиняюсь, а как у вас получается что от порядка компоновки Depends у вас что-то зависит? такое может быть только если библиотеки между собой имеют неявные зависимости? собирал под gcc проект примерно на 40 библиотек, с корректно проставленными Depends все линковалось в нужном порядке. да и пофиг на сортировку в рамках одной цели если честно.
    ну или заводите баг им в трекере)
     
  • 1.29, ембедщиккун, 09:16, 30/03/2018 [ответить] [смотреть все]  
  • –1 +/
    Qbs - это хтонический кошмар с миграцией конфигов каждую минорную версию.
    Никакущая документация, явно виден закос под смартфоно-десктопы, ни для чего другого система сборки не затачивалась, будто других тулчейнов и прочего просто не существует.
     
     
  • 2.33, anonymous, 09:25, 30/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Qbs - это хтонический кошмар с миграцией конфигов каждую минорную версию.
    > Никакущая документация, явно виден закос под смартфоно-десктопы, ни для чего другого система
    > сборки не затачивалась, будто других тулчейнов и прочего просто не существует.

    Ничего, говорят в Qt6 оно будет по дефолту. Может тогда хоть их будут бить по рукам за постоянные поломки.

     
  • 2.41, Аноним, 14:16, 31/03/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Пока развивается и не дефолт Использовать нан страх и риск, конечно же Ждем оф... весь текст скрыт [показать] [показать ветку]
     
  • 1.48, Дуплик, 21:22, 02/04/2018 [ответить] [смотреть все]  
  • –1 +/
    Gradle и CMake убьют эту поделку.
     
     
  • 2.49, Аноним, 08:29, 03/04/2018 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    CMake уже никого не yбbёт. Его самого скоро Meson закoпает.
     
  • 2.51, Led, 02:37, 05/04/2018 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    > Gradle и CMake убьют эту поделку.

    Угу. Твой мозг они уже убили.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


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