Как скомпилировать QtDeclarative без QtXmlPatterns, QtSvg и QtSql - PullRequest
3 голосов
/ 15 июня 2011

Я хочу уменьшить свою заявку (снова).QtDeclarative зависит от QtXmlPatterns, QtSvg и QtSql, которые я вообще не использую, поэтому я хотел бы скомпилировать библиотеку без них.

Кто-то изменил исходный файл для QtDeclarative (или подсказку, как это сделатьэто)?

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Вы сможете настроить Qt следующим образом:

./configure -no-xmlpatterns -no-svg

Части в QtDeclarative, которые зависят от этих модулей, будут автоматически отключены. Удаление QtXmlPatterns, например, просто приведет к недоступности XmlListModel, поскольку он основан на XQuery.

Это не будет модификацией Qt в смысле LGPL, поэтому нет необходимости обходиться и самостоятельно распространять исходный код Qt.

К сожалению, в настоящее время не существует логики препроцессора для опции -no-sql, которая, таким образом, кажется жесткой зависимостью от QtDeclarative. Тем не менее, я могу представить, что патч, который делает это необязательным, будет принят. Если вы хотите получить представление о том, как это можно сделать, проверьте использование #ifdef QT_NO_XMLPATTERNS в src/declarative и обратите внимание на условное включение qdeclarativexmllistmodel.cpp в src/declarative/util/util.pri.

1 голос
/ 15 июня 2011

Вероятно, это приведет к проблемам с удалением зависимостей, но вы можете попробовать QT -= sql и т. Д. В своем профессиональном файле и посмотреть, какие ошибки вы получите. В противном случае вы можете попытаться изменить источник для QtDeclarative и перекомпилировать QT, но, поскольку он использует макеты QML, я думаю, что может быть очень трудно удалить зависимость от QtXmlPatterns.

Это один из известных недостатков QT, вы получаете тонны функциональности с этой платформой, но в то же время вы получаете значительное раздувание. Также имейте в виду, что LGPL требует, чтобы вы отправляли источник, который вы изменяете, в самом QT, если вы делаете больше, чем просто ссылки на существующие библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...