Russian Qt Forum
Июль 18, 2019, 09:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: [QBS] baremetal: Хочу поддержку IAR, KEIL, SDCC тулчейна  (Прочитано 3674 раз)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #15 : Май 03, 2019, 15:48 »

Как я понимаю, сейчас идет работа над IAR? Или заглохло?

Хотелось бы понять, что имеет смысл прикручивать далее. Пока я занят мелкими багофиксами, но надо каких-то фич тоже добавить.
1. Поддержка clang на венде в дополнение к clang-cl?
2. Поддержка grpc, благо она один-в-один копипаста протобуф модуля?
3. Допилить генератор для XCode?
4. Ваша фича?
Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #16 : Май 05, 2019, 10:03 »

Цитировать
Как я понимаю, сейчас идет работа над IAR? Или заглохло?

Если ты имеешь в виду генератор - то пока заглохло (нет времени).

Цитировать
1. Поддержка clang на венде в дополнение к clang-cl?

А почему нет?

Цитировать
2. Поддержка grpc, благо она один-в-один копипаста протобуф модуля?

Тут я не знаю, лично я никогда это не использовал и впервые слышу.

Цитировать
3. Допилить генератор для XCode?

А оно генерит нативный проект, или так же как и с генератором MSVC - всё через QBS билдится в итоге? Просто я к тому, что, например, пилимый мною генератор для IAR генерит именно нативные проекты (где не нужны всякие QBS-ы потом чтобы работать со сгенеренным проектом).  По этому поводу я ранее писал в рассылку с тем, что "как по мне" - то есть смысл генерить только нативные проекты, т.к иначе вообще смысла я в генераторах не вижу (генерить QBS-ом проект, чтобы собирать опять его QBS-ом??? масло-масляное??)  Улыбающийся

Цитировать
4. Ваша фича?

ХЗ... можно ли запилить что-то подобное как в CMake - ExternalProject (или как оно там называется)? Или нет смысла, т.к это невозможно в принципе?
« Последнее редактирование: Май 05, 2019, 10:09 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #17 : Май 05, 2019, 13:35 »


А оно генерит нативный проект, или так же как и с генератором MSVC - всё через QBS билдится в итоге?

К сожалению (или к счастью), собирает оно через qbs. Я тебе в рассылке отвечал по большому счету на примере Xcode генератора, ибо я туда лазил и пытался доделать. а про msvc генератор не знаю вообще ничего. В целом, ничего плохого в таком подходе нет, кроме того, что можно обломаться когда не получается эмулировать поведение "родной" системы сборки. Гораздо хуже, когда нет возможности объяснить IDE как собрать твой кастомный рул=)


ХЗ... можно ли запилить что-то подобное как в CMake - ExternalProject (или как оно там называется)? Или нет смысла, т.к это невозможно в принципе?

Кажется, вот это ближайший тикет
« Последнее редактирование: Май 05, 2019, 15:07 от Авварон » Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #18 : Май 05, 2019, 21:16 »

Цитировать
Гораздо хуже, когда нет возможности объяснить IDE как собрать твой кастомный рул=)

Тут да, если есть такие рулы - то это проблемка для "нативной" генерилки. Но также для некоторых IDE есть бОльшая проблема, состоящая в невозможности интеграции туда "кастомных" правил для запуска каких-то левых тулин, типа QBS (т.е. где IDE прибиты гвоздями). В таком случае, думаю, что эти рулы должны игнорироваться... Грустный И создание проекта в QBS на совести самого разработчика, т.е. если он делает какие-то рулы то он ССЗБ.. Иначе, имхо, я не знаю как это разрулить.

PS: Интересно, а как CMake генерит проекты? Оно же вроде генерит нативные проекты? Например, что сгенерит "cmake -G "Visual Studio 10""? (я просто не в теме)
« Последнее редактирование: Май 05, 2019, 21:17 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #19 : Май 05, 2019, 22:16 »


Тут да, если есть такие рулы - то это проблемка для "нативной" генерилки. Но также для некоторых IDE есть бОльшая проблема, состоящая в невозможности интеграции туда "кастомных" правил для запуска каких-то левых тулин, типа QBS (т.е. где IDE прибиты гвоздями). В таком случае, думаю, что эти рулы должны игнорироваться... Грустный
Ты плохо понимаешь, как работает qbs=) Ты не можешь взять и выкинуть рул из графа - без этого рула граф просто не валиден и его зависимости не соберутся.
С учетом того, что даже просто "скомпилить цпп" это жаваскриптовый рул, то ты выкинешь весь граф, кроме входа и выхода (сорцы и бинарь, соответственно)

Но в теории можно попробовать хакнуть ИДЕ подсовывая ей qbs под видом компилятора - то есть Иде говорит "собери файл" а мы запускаем qbs и собираем весь граф для этого файла нужный, говорит "слинкуй бинарь", а мы запускаем qbs. Боюсь только что работать это будет оч медленно.

И создание проекта в QBS на совести самого разработчика, т.е. если он делает какие-то рулы то он ССЗБ.. Иначе, имхо, я не знаю как это разрулить.

PS: Интересно, а как CMake генерит проекты? Оно же вроде генерит нативные проекты? Например, что сгенерит "cmake -G "Visual Studio 10""? (я просто не в теме)

Симейк генерит "нативные" проекты, да. Тупо "мейкфайл" для каждой поддерживаемой платформы в котором описывает как что собирать.
Но когда я ковырял цмейк (а было это давно), всякие кастомные рулы делались вызовом симейка же который выполнял мой скрипт. Как такой кастомный таргет должен матчится в ИДЕ которая не умеет кастомные правила?)
Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #20 : Май 05, 2019, 22:31 »

Цитировать
Ты не можешь взять и выкинуть рул из графа

Хм, если говорить в части IAR генератора, то я беру из QBS проекта список сорцов/хидеров библиотек, приложений и пр. (т.е. всех продуктов) + парсю флаги компилятора/линкера для каждого продукта, чтобы "заполнить" соответствующие страницы настроек нативного IAR проекта. И в принципе, это все.  Никакие кастомные рулы я не парсю, т.к. нет смысла в них..

Цитировать
подсовывая ей qbs под видом компилятора

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

Цитировать
Тупо "мейкфайл" для каждой поддерживаемой платформы в котором описывает как что собирать.

Хмм.. именно мейкфайл? Для студии (к примеру)? Прикольно...
Записан

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #21 : Май 05, 2019, 23:03 »


Хм, если говорить в части IAR генератора, то я беру из QBS проекта список сорцов/хидеров библиотек, приложений и пр. (т.е. всех продуктов) + парсю флаги компилятора/линкера для каждого продукта, чтобы "заполнить" соответствующие страницы настроек нативного IAR проекта. И в принципе, это все.  Никакие кастомные рулы я не парсю, т.к. нет смысла в них..
Ну это и щаз возможно - qbs умеет генерить clangdb из которой ты можешь сгенерить файл настроек. Попробуй в эту сторону тогда, в целом, clangdb это такой псевдогенератор которым ничего не собрать, но можно использовать, например, при статическом анализе.


Ну, в случае IAR такое вроде как невозможно. Т.к. там нет возможности ни выбрать компилятор ни ничего другого...
Подменять PATH мы не умеем? Хотя если там пути прохардкожены то беда, конечно.

Хмм.. именно мейкфайл? Для студии (к примеру)? Прикольно...

Мейкфайл в кавычках=) Любой файл проекта - это по сути мейкфайл который описывает правила сборки.
Для студии будет солюшн.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #22 : Июль 06, 2019, 21:22 »

Я там не задолбал на ревью ещё? Смеющийся
Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #23 : Июль 06, 2019, 23:15 »

Не, погодка хреновенькая, мои все спят, а я с пивком сижу, мне хорошо.. Улыбающийся))

ЗЫ: Это я наверно задолбал... Улыбающийся))
« Последнее редактирование: Июль 06, 2019, 23:18 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #24 : Июль 06, 2019, 23:22 »

Не, погодка хреновенькая, мои все спят, а я с пивком сижу, мне хорошо.. Улыбающийся))

ЗЫ: Это я наверно задолбал... Улыбающийся))

Нет, у меня всё также - погода не очень, пивко=) Что пьешь? Улыбающийся У меня la chouffe
Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #25 : Июль 07, 2019, 09:54 »

Ой, не, я предпочитаю свеженькие разливухи. Ты там наверное и не знаешь названия. А в принципе пофиг что пить Улыбающийся.
Записан

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #26 : Июль 07, 2019, 17:16 »

А верно я понимаю, что эта штука сделана по аналогии с clang-db генератором и в итоге игнорит все кастомные рулы?
Типа чтобы полноценно юзать из ИДЕ надо сперва собрать (как и для clang-db)?
Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #27 : Июль 07, 2019, 20:11 »

Цитировать
верно я понимаю, что эта штука сделана по аналогии с clang-db генератором и в итоге игнорит все кастомные рулы?

Я не знаю как там и что clang-db генерит. Но iarew генератор генерит готовый нативный проект для IAREW IDE.
Естественно, что-то сложное он обломается генерить, т.к. в IAREW IDE вроде нет возможности запихнуть
что-то особенное, как, к примеру в MSVC генераторе (где по сути генерится не нативный проект, а юзается тот-же QBS).

Но тут нет возможности (вроде как) даже засунуть вызовы qbs, да и нет в этом особого смысла,
т.к. мне, как ембеддед программисту нужно иметь нативный проект с возможностями выбора при открытии проекта
в IAREW IDE опций компиляции, выбор MCU и прочее.. т.е. идея в том, чтобы сгенерить из QBS и забыть про QBS. Улыбающийся

Цитировать
Типа чтобы полноценно юзать из ИДЕ надо сперва собрать (как и для clang-db)?

Эмм... нераспарсил.. Генератор iarew генерит сразу готовый нативный воркспейс с под-проектами (как будто ты
создавал эти проекты сразу из IAREW IDE).  т.е. бери его и сразу открывай в IAREW IDE (по аналогии как CubeMX генерит проекты для STM32),
от QBS там в итоге ничего не остается. Улыбающийся
« Последнее редактирование: Июль 07, 2019, 20:13 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2843


Просмотр профиля
« Ответ #28 : Июль 07, 2019, 20:17 »

Ну, допустим я генерю плюсовый хедер, в котором находится номер ревизии, кастомным рулом.
Как ИДЕ узнает о его существовании? В случае clang-db никак - надо сперва собрать проект через qbs (и сгенерить все эти хедеры) и только потом можно полноценно юзать clang-db (например, натравить анализатор).
Записан
kuzulis
Джедай : наставник для всех
*******
Online Online

Сообщений: 2699


Просмотр профиля
« Ответ #29 : Июль 07, 2019, 21:57 »

Цитировать
Ну, допустим я генерю плюсовый хедер, в котором находится номер ревизии, кастомным рулом.

Ну, в таком случае - ССЗБ Улыбающийся. Пока что там такие вот ограничения. Чудес не бывает, надо чем-то жертвовать (по крайней мере на данном этапе)... Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.