Russian Qt Forum
Ноябрь 24, 2024, 21:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: qbs как начать  (Прочитано 28292 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #15 : Декабрь 26, 2016, 15:47 »

Так же как и в qmake - никак.
Сам не пробовал, но, вроде, "как".
Цитировать
Adding Qwt as qmake feature

When using the qmake feature mechanism you can bind a special version of qmake to a special installation of Qwt without having to add this dependency to the application project. How to add Qwt as feature is documented in the qmake docs.

After adding Qwt as a feature f.e on Linux as a persistent property ....

qmake -set QMAKEFEATURES ${QWT_ROOT}/features
.. the following line can be added to the application project file:

CONFIG += qwt

PS: Мы, например, таскаем qwt в проекте (под виндой), сделав QBS-ную обертку для его сборки.
Тоже рассматривал этот вариант. Как там со временем сборки проекта и ребилдами?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #16 : Декабрь 26, 2016, 16:55 »

Цитировать
Как там со временем сборки проекта и ребилдами?

Нормуль, один раз собрал и все... Улыбающийся
Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #17 : Декабрь 26, 2016, 17:20 »

Цитировать
Как там со временем сборки проекта и ребилдами?

Нормуль, один раз собрал и все... Улыбающийся
Перфекционизм не даёт покоя Улыбающийся
При ребилдах же будет заново пересобираться qwt, верно? Или в qbs предусмотрено правило (возможность реализации) не тратить время на пересборку сторонних либ?
И если вдруг я имею 3 проекта с qwt, то собирай трижды?
Дело в том, что у меня мелкие проектики, которые требуют qwt. Я заколебусь билдить либу Улыбающийся
А эти Probe, что они из себя представляют? Документация мне не дала ответов. Почему их не используете?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #18 : Декабрь 26, 2016, 19:28 »

Цитировать
При ребилдах же будет заново пересобираться qwt, верно?

Смотря как настроить проект. Там можно продукту установить свойство builtByDefault чтобы он не пересобирался автоматически, а пересобирался только тогда, когда по нему принудительно кликнуть в дереве проекта QtC.

Цитировать
Или в qbs предусмотрено правило (возможность реализации) не тратить время на пересборку сторонних либ?

Эммм.. тут я не понял... Можно таскать бинарик библиотеки вместе с проектом, обернув его так, чтобы можно было его указывать в Depends.

Цитировать
И если вдруг я имею 3 проекта с qwt, то собирай трижды?

Ну, тут тогда только в каждом проекте подключать qwt ручками, через cpp.dynamicLibraries/includePaths. Другого пути я не знаю.

Цитировать
А эти Probe, что они из себя представляют? Документация мне не дала ответов. Почему их не используете?

Потому что они как-бы больше ориентированы на Linux, IMHO.

Вот, если бы Qwt имела инсталлятор, который что-нибудь прописывал бы в реестре, то можно было бы накалякать модуль автоопределения библиотеки qwt и пр.
Но, т.к. в Windows нет четких требований к положению библиотек и прочего, то придется извращаться...
И, к сожалению, в QBS нету ничего похожего на:
Цитировать
qmake -set QMAKEFEATURES ${QWT_ROOT}/features
Значит оно и не нужно было... или недодумали.. можно им в список рассылки написать или в трекер.. с таким предложением..
Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #19 : Декабрь 27, 2016, 09:14 »

kuzulis, а что если создать свой модуль qwt?

Цитировать
Making Custom Modules and Items Available Across Projects

What if your modules and items are generally useful and you want to access them in several projects? In this case, it's best to add the location to your preferences. For example:

Код:
qbs config preferences.qbsSearchPaths /usr/local/share/custom-qbs-extensions
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #20 : Декабрь 27, 2016, 13:07 »

Эммм... модуль это не библиотека... это нечто иное, для других целей.
Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #21 : Декабрь 27, 2016, 13:18 »

Когда я в зависимости пишу cpp, то подключаю модуль для работы с c++. При указании в зависимостях Qt.core подключаю библиотеку и инклюды (как минимум) ядра qt. Разве нельзя сделать модуль для qwt, чтобы тот аналогично Qt.core работал? Или я чего-то не понимаю?
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #22 : Декабрь 27, 2016, 14:43 »

В qbsSearchPaths добавляются пути для поиска модулей и прочих штук именно Qbs. Можете попробовать написать модуль для Qwt, аналогично например модулю Qt.Widgets. Но основная проблема, насколько я понимаю, в том, что в этом модуле нужно указывать конкретные пути к файлам библиотеки. А где эти файлы находятся, в общем случае не известно.

Хотелось бы ещё уточнить, как мне управлять путями к сторонним библиотекам на винде? Ведь на каждой машине они могут располагаться как удобно пользователю. Как использовать prf файлы, например для подключения qwt?
Записан

Пока сам не сделаешь...
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #23 : Декабрь 27, 2016, 14:46 »

Т.е. хочешь сделать как-то так:

1. Есть где-то бинари (как dll, так и lib) уже собранной Qwt (например,  на E:\qwt\lib).
2. Есть где-то хидеры от Qwt (например,  на E:\qwt\inc).
3. Хочешь добавить туда qbs-сный модуль (например, в E:\qwt\modules\qwt). В этом модуле будут "жестко" прописаны пути к Qwt-шным либам и хидерам (для cpp.dynamicLibraries/includePaths и прочих).

4. Создаешь где-то свой проект "Hello World" и добавляешь там Depends { name: "qwt" }.
5. При настройке QBS передаешь ей путь к модулю qwt:
Цитировать
qbs config preferences.qbsSearchPaths E:\qwt

6. Пользуешься ништяками... Т.к. теперб любой созданный проект автоматом будет знать где Qwt при использовании Depends { name: "qwt" }... Хм... в этом есть смысл...

Я правильно понял?

Если ДА - то я не пробовал это. Попробуй и расскажи.. Улыбающийся
« Последнее редактирование: Декабрь 27, 2016, 14:54 от kuzulis » Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #24 : Декабрь 27, 2016, 14:53 »

Всё так и хочу Улыбающийся
А ещё для каждого компиля свои пути Улыбающийся
Пускай каждый пользователь либы на винде создаёт такой модуль со своими путями.
По сути, штатный prf в qwt занимается этим же (жёстко прописывает пути) но без учёта компиля, вроде как.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #25 : Декабрь 27, 2016, 14:58 »

Цитировать
Пускай каждый пользователь либы на винде создаёт такой модуль со своими путями.

Брр.. Ок. но я не понимаю, зачем это пользователю? Это ж только для девелопера.

В таком случае проще "пользователю" ничего не создавать, а "тупо" подправить самому в проекте пути к либам Qwt для cpp.dynamicLibraries/includePaths. Зачем ему еще заморачиваться с модулями и прочим? Улыбающийся

PS: Я бы просто таскал Qwt с собой в проекте (или как сорцы или как бинари), чтоб жмакнул - и сразу собрал Улыбающийся .
Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #26 : Декабрь 27, 2016, 15:08 »

"пользователь либы" имел в виду девелопера, который её использует

PS: Я бы просто таскал Qwt с собой в проекте (или как сорцы или как бинари), чтоб жмакнул - и сразу собрал Улыбающийся .
В принципе, можно, но мой перфекционизм не позволяет этого сделать по причине того, что я могу мобирать как mingw, так и msvc и в разных битностях. Не хочется 4 вида либы таскать да и идеологически как-то не правильно, что в репозитории какой-то бинарь либы с открытым кодом.
Записан
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #27 : Декабрь 27, 2016, 16:46 »

Вот мне тоже интересно было бы узнать про то, как "начать с qbs".

В проекте используются такие библиотеки как boost/gtest/VTK/OpenCV/Qt. Сейчас для сборки используется CMake, позволяет более или менее автоматизированно находить эти библиотеки с нужными модулями внутри них. В Linux библиотеки ставятся из репозиториев и CMake сам их находит. В Windows приходится самому собирать эти библиотеки в архив (под нужный компилятор с нужной разрядностью и нужным набором модулей в библиотеках). В CMake под Windows приходится указывать prefix (путь до места распаковки нужного архива с библиотеками), далее все нужные вещи CMake подцепляет автоматически. Файлы CMake для подключения этих библиотек предоставляются самим CMake или уже есть в самих библиотеках.

Хотелось бы понять как в qbs подключаются эти библиотеки к проекту. Важным моментом еще является то, что эти библиотеки разбиты на модули и далеко не все модули нужны приложению. В CMake при подключении библиотеки можно указывать какие именно модули нужны. Как такое разбиение подключаемых библиотек на модули реализуется в qbs?

И еще вопрос: можно ли уже сгенерировать MSVC solution из qbs проекта и заниматься разработкой в MSVC?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #28 : Декабрь 27, 2016, 18:17 »

С qwt под линуксой тоже что-то было не просто Улыбающийся В убунтах она как положено qwt именуется, а в джентах qwt6-qt5 или как-то так.
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #29 : Декабрь 28, 2016, 13:21 »

Вот мне тоже интересно было бы узнать про то, как "начать с qbs".

В проекте используются такие библиотеки как boost/gtest/VTK/OpenCV/Qt. Сейчас для сборки используется CMake, позволяет более или менее автоматизированно находить эти библиотеки с нужными модулями внутри них. В Linux библиотеки ставятся из репозиториев и CMake сам их находит. В Windows приходится самому собирать эти библиотеки в архив (под нужный компилятор с нужной разрядностью и нужным набором модулей в библиотеках). В CMake под Windows приходится указывать prefix (путь до места распаковки нужного архива с библиотеками), далее все нужные вещи CMake подцепляет автоматически. Файлы CMake для подключения этих библиотек предоставляются самим CMake или уже есть в самих библиотеках.

Хотелось бы понять как в qbs подключаются эти библиотеки к проекту. Важным моментом еще является то, что эти библиотеки разбиты на модули и далеко не все модули нужны приложению. В CMake при подключении библиотеки можно указывать какие именно модули нужны. Как такое разбиение подключаемых библиотек на модули реализуется в qbs?

Скорей всего для этих библиотек придётся писать проектные файлы Qbs, в том или ином виде. Разбиение библиотек на модули можно подсмотреть а примере модулей Qt.

И еще вопрос: можно ли уже сгенерировать MSVC solution из qbs проекта и заниматься разработкой в MSVC?

Документации по Qbs пока маловато. Для интеграции с MSVC можете посмотреть Qt Visual Studio Tools и Support for generating IDE project files.
Записан

Пока сам не сделаешь...
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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