Как ссылаться на внешние зависимости библиотек в qt qbs?

Скажем, я загрузил некоторую библиотеку xyz с заголовками и двоичными файлами и поместил ее где-то не в стандартные пути поиска. Для каждого продукта я могу добавить пути поиска и библиотеки для ссылки на cpp.includePaths, cpp.libraryPaths, cpp.staticLibraries и т.д.

Есть ли лучший [стандартный] способ сделать это? Если я создаю библиотеку как часть своего проекта, кажется, что я могу определить пути в элементе экспорта, а затем использовать элемент Depends в каждом продукте для автоматической установки путей. Это похоже на хороший механизм, и мне интересно, не существует ли способа использовать его для внешних зависимостей.

Документы qbs немного тонкие...

Спасибо!

1 ответ

Обычно вы создаете свой собственный модуль для xyz. Вы можете добавить местоположения, где QBS будет искать модули и импорт, установив проект qbsSearchPaths-property. Например. установив его на "qbs", QBS будет искать дополнительные модули в подкаталоге "qbs/modules" вашего проекта.

Там вы можете поместить файл с именем "xyz.qbs", который будет выглядеть так:

import qbs
Module {
 Depends { name: "cpp" }
 property string xyzPath: "the/xyz/path"
 cpp.includePaths: xyzPath + "/include"
 cpp.libraryPath: xyzPath + "/lib"
 cpp.staticLibraries: "xyz"
}

Затем вы можете использовать его, просто добавив Depend к вашему проекту:

import qbs
Project {
 qbsSearchPaths: "qbs"
 CppApplication {
 name: "myApp"
 files: "src/**"
 Depends { name: "xyz" }
 }
}

licensed under cc by-sa 3.0 with attribution.