2017-02-01 3 views
0

в qmake, есть функция system(), которая просто запускает команды, которые вы передаете во время компиляции. Вопрос в следующем: есть ли у него qbs аналог? ООК Rule/Artifact подход предназначен для различных целей и слишком многословным для простых случаев использования функцииQbs аналог команды qmake system()

ответ

3

система QMAKE (в) не командует не запустить во время компиляции, но во время конфигурации, которая отличается.

Пожалуйста, имейте в виду, что qmake и qbs представляют собой две очень разные системы сборки с принципиально разными конструкциями и возможностями, а многословность qbs отчасти объясняется ее фундаментальными архитектурными различиями, которые делают ее намного более мощной, чем qmake когда-либо будет способна из.

При этом грубый эквивалент в qbs - это служба Process, которую вы можете вызывать из OutputArtifacts правила или готовить скрипты или с правой стороны связывания свойств (хотя по соображениям производительности это не рекомендуется).

Что именно ваш прецедент? Возможно, вы ищете неправильный механизм ...

+0

Это как «У меня есть сценарий задания/оболочки, который нужно выполнить во время компиляции». Это может быть что-то вроде создания символических ссылок, запроса версии svn, сжатия приложения или чего-то еще. Для метода 'Rule' /' Artifact' требуются входные файлы, которые не всегда совпадают. Кроме того, иногда очень важно поставить эту задачу строго до/после компиляции. –

+0

Важен конкретный вариант использования. Если ваша задача должна быть запущена до или после компиляции, вы должны использовать доступные механизмы для привязки к графику сборки в нужный момент времени, указав правильные зависимости. Эквивалент системы() не является волшебной пулей, которая решает эту проблему за пределами области гораздо более способных примитивов. * Задача (правило) * всегда * имеет входные данные; если вы считаете, что это не так, вы можете использовать сам исходный файл qbs ('input: [" qbs "]'), чтобы гарантировать, что это правило вызывается. –

Смежные вопросы