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

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

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

Сообщений: 2130



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

Попробовал создать модуль для библиотеки. Его подключение происходит успешно при указании пути к нему непосредственно в проекте
Код
Javascript
import qbs
 
Project {
   qbsSearchPaths: "C:/Development/my-qbs-extensions"
   ....
}
 
Модуль считывается из C:\Development\my-qbs-extensions\modules
При попытке убрать указанное свойство и скопировать модуль в профиль (C:\Users\username\AppData\Roaming\QtProject\qtcreator\qbs\1.7.0\profiles\qtc_Desktop__135af0bf\modules), где уже лежит Qt происходит ошибка, то есть, модуль не найден.
Быть может как-то можно через этап сборки задавать qbsSearchPaths ?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

Ой. Запутался в дирректориях.
В общем, работает всё при копировании модуля в папку с профилем.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

Остаётся неудобство в том, что при обновлении qbs придётся перекидывать модули в новые папки профилей.
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



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

При запуске qbs в параметре "--settings-dir" можно указать путь, где хранится конфигурация qbs и с которой выполняется работа. Собственно, QtCreator так и делает. Добавить общий путь qbsSearchPaths можно командой. В этом "settings-dir" есть файл qbs.conf, в котором, как я понимаю, описываются основные настройки. Чтобы не возиться с командами, его можно и руками изменить:

Код:
[org]
qt-project\qbs\preferences\qbsSearchPaths=C:/Development/my-qbs-extensions
...

И тогда собственные модули могут постоянно в одном месте храниться, никуда их копировать не придётся.
Записан

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

Сообщений: 2130



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

Добавить общий путь можно и в настройках QtCreator/вкладка qbs, значение preferences.qbsSearchPaths. Но тогда теряются модули Qt, в связи с чем в список необходимо ещё добавлять и прежнюю папку с профилем.

Кажется нельзя заставить QtCreator вызывать qbs со своим --settings-dir
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



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

Добавить общий путь можно и в настройках QtCreator/вкладка qbs, значение preferences.qbsSearchPaths. Но тогда теряются модули Qt, в связи с чем в список необходимо ещё добавлять и прежнюю папку с профилем.

Похоже в этом случае qbsSearchPaths добавляется для конкретного профиля, а не для общих настроек qbs в этом settings-dir.
Записан

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

Сообщений: 3260


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

А зачем класть модули в общее место, если можно положить прямо в проект и сделать, скажем, гит сабмодулем и шарить между проектами.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

Авварон, проблема в том, что модули содержат абсолютные пути, которые могут отличаться на 2 машинах.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


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

Авварон, проблема в том, что модули содержат абсолютные пути, которые могут отличаться на 2 машинах.

Кажется, можно сделать переменную модуля и конфигурить её извне (а-ля cpp.includePaths: [...])
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #39 : Декабрь 30, 2016, 11:44 »

Кажется, можно сделать переменную модуля и конфигурить её извне (а-ля cpp.includePaths: [...])

Можно. Но настроить библиотеку надо на одной машине для нескольких проектов. Поэтому проще один раз в qbs-модуле библиотеки пути к ней прописать, чем в каждом проекте это делать.
Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #40 : Январь 27, 2017, 08:00 »

ViTech, а зачем такое разделение h и cpp на группы? Это специально сделано для случая, когда все исходники в одной директории?
Я создал проект с папками src и include. Получил дерево
Include
->MyProject.qbs
->include
---->MyClass.h
Source
->MyProject.qbs
->src
---->MyClass.cpp
Имхо многовато листьев, либо что-то делаю не так. Хотелось бы не видеть папки include и src, а сразу их содержимое.
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #41 : Январь 27, 2017, 13:45 »

ViTech, а зачем такое разделение h и cpp на группы? Это специально сделано для случая, когда все исходники в одной директории?

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

Я создал проект с папками src и include. Получил дерево
...

Можно посмотреть, как выглядит MyProject.qbs? И лучше проект целиком показать.
Записан

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

Сообщений: 2130



Просмотр профиля
« Ответ #42 : Январь 27, 2017, 19:56 »

https://github.com/dsbabkov/MeshTranslator
Залил
Записан
ViTech
Гипер активный житель
*****
Offline Offline

Сообщений: 858



Просмотр профиля
« Ответ #43 : Январь 28, 2017, 13:15 »

Если немного отвлечься и поразмышлять, то получается такая картина: Qbs - это система сборки и существует сама по себе, без привязки к какой-либо IDE. В такой "самостоятельной" системе сборки не должно быть фишек, специфичных для IDE, даже такой "родной", как Qt Creator. Потому что потом одни разработчики захотят фишек для KDevelop, другие для Visual Studio и т.д. При таком раскладе получается, что отображение структуры проекта в IDE должно настраиваться в ней самой, на основе проектных файлов систем сборки. Соответственно храниться эти настройки будут в специфичных файлах IDE (как например *.user в QtCreator), которые индивидуальны для разработчика и не хранятся в системах контроля версий.

Qt Creator отображает файлы по группам, описанным в Qbs. По идее, должны быть расширенные настройки в IDE, позволяющие отображать файлы проекта по желаниям пользователя, но в Qt Creator я такого особо не нашёл. Поэтому остаётся довольствоваться тем, что есть Улыбающийся.

Чтобы немного уменьшить дерево файлов, можно организовать исходники в одной группе, а не в двух:
Код:
    Group {
        name: "Sources"
        prefix: "./**/"
        files: [ "*.h", "*.cpp" ]
    }

Можно ещё по другому организовать структуру файлов самого проекта, когда в папке source файлы *.h лежат рядом с *.cpp, а в include лежат "ссылки" в виде #include "../source/GeometryReader.h", но это уже от политики партии зависит Улыбающийся.
Записан

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


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