All streams
Search
Write a publication
Pull to refresh
60
0
Смирнов Владимир @mapron

Программист C++

Send message
Надо было сделать, чтобы после трех ударов головой об стену, к примеру, человечек погибал. Тогда было бы интереснее.
PS. это решение похоже на моё =).
т.е. к системе сборки. я имел ввиду. пойду спать пожалуй…
Прошу прощения, был невнимателен (у меня конец рабочего дня). Код Embox к вашему проекту конечно не имеет отношения.
Но в остальном моя позиция та же — я хочу понятный, уже известный, максимально прозрачный язык для написания конфигов. QML под это определение попадает.
Знаете, честно — синтаксис языка «Ни Ява, ни мясо».
Почему я скорее всего не буду пользоваться такой системой?
Я не хочу разбираться в еще одном языке. Поэтому лично я не люблю make и qmake.
Именно за понятный, интуитивный язык, не велосипедный, я полюбил QBS.
Сейчас все руки не доходят написать продолжение статьи, воюю с разработчиками насчёт патчей…

Еще одна проблема — исходники. С qbs я скачал, и в течение пары часов разобрался как внедрить нужные фичи. Код превосходно структурирован, как QtCreator например. Читать одно удовольствие.
Такого же удовольствия от чтения, например
int ramdisk_create(void *mkfs_params) {
        node_t *ramdisk_node;
        mkfs_params_t *p_mkfs_params;
        ramdisk_params_t *ramd_params;

        p_mkfs_params = (mkfs_params_t *)mkfs_params;

        if (NULL == (ramdisk_node = vfs_add_path(p_mkfs_params->path, NULL))) {
                return -EBUSY;/*file already exist*/
        }

        ramd_params = ramdisk_info_alloc();
        ramdisk_node->attr = (void *) ramd_params;

        if(NULL == (ramd_params->p_start_addr =
                        page_alloc(p_mkfs_params->blocks))) {
                return -ENOMEM;
        }

        strcpy ((void *)&ramd_params->path, (const void *)p_mkfs_params->path);
        ramd_params->size = p_mkfs_params->blocks * CONFIG_PAGE_SIZE;
        ramd_params->blocks = p_mkfs_params->blocks;

        strcpy ((void *)&ramd_params->fs_name,
                        (const void *)p_mkfs_params->fs_name);

        return 0;
}


уже не получишь. Такой код хорошо отлаживать только его автор, наверное. Я вот например, в ядро навряд ли патч смогу оформить.
Вы правильно все сделали. Нам, любителям, интересно.
Ну так как люди ходят на курсы «вождения» так пусть и ходят на «базовое скриптование». Им это и сейчас никто не запретит.
Вы всё правильно сделали. Я поддерживаю и вашу точку зрения, и по мне так пост не раздутый. Со словом «купить» переборщили местами, но мелочи.
Оффтопик: сегодня сон мне снился, как будто я в каком-то обсуждении на Хабре учавствую, ну сон же, что программистам не снится, но единственное что в память врезалось, комментарии можно было редактировать (до первого голоса кажется). Вот уж действительно, фантастика.
PS надеюсь что вещий.
Всего 6? Казалось бы читаю хабр 4,5 года всего, но кажется чуть ли не с детства!
И мои поздравления, и ресурсу, и сообществу!
Да статья хороша, новинки хабра дают плодотворные плоды (ожидаем всплеск качественных статей).
Продолжайте!
Все как было раньше, так и осталось, просто 2 начальные НЕИЗМЕННЫЕ ЦИФРЫ «2.6» заменили на «3», ничего более.
Кстати, вот сравнение, возможно вас заинтересует:
qt-project.org/wiki/Qbs_Quick_Reference
Depends для этого сделали. И нужно version.h добавить в список файлов проекта. Тогда ок будет. у меня похожая фигня была) вроде работает, но я наматюгался пока все настроил)
ну я прикрутил dumcpp он генерирует h и cpp. Работает вроде. Может я конкретную вашу цель не понял.
Спасибо, хоть кто-то в теме. Кстати, могу добавить что в правила для сборки можно написать свой небольшой парсер текстовых файлов (например, для кодогенерации), для небольших проверок на JavaScript. Например для автоматической замены версий или копирайтов.
из «коробки» уже сейчас:
-С/с++, .h файлы
-генерация и сборка moc (автоматом)
-qrc файлы
-rc файлы для msvc
-генерация pch, внедрение манифестов для msvc
-почти полная поддержка всех qt модулей.
qbs именно так и сделан. Он не привязан ни к чему. Можно свои парсеры для поддержки pas файлов сделать к примеру.
как я уже писал, мне удалось модуль сборки для DELPHI 2007 написать. при этом без правки исходников.
для поддержки парсинга зависимостей правда пришлось еще плагин написать.
Еще довольно просто пишется модуль для кодогенератора dumpcpp.
Т.е. в теории — может всё собирать.
Кстати, хочу добавить, что если вы собираетесь присоединиться к уже существующему проекту, то мотивация остается той же самой, что в статье. Единственное, ответственности поменьше.
И кроме конфигурирования, в дизайне предусмотрена процедура для сборки пакетов и деплоя. Тоже будет в модулях. Просто пока нет реализации.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity