Para ports que fazem parte do Qt, veja Seção 17.76, “qt-dist”.
A coleção de ports fornece suporte para o Qt 5 com USES+=qt:5. Configure o USE_QT para a lista de componentes obrigatórios do Qt (bibliotecas, ferramentas, plugins).
O framework Qt exporta um número de variáveis que podem ser usadas por ports, algumas delas listadas abaixo:
QMAKE | Caminho completo para o binário qmake. |
LRELEASE | Caminho completo para utilitário Irelease. |
MOC | Caminho completo para moc. |
RCC | Caminho completo para rcc. |
UIC | Caminho completo para uic. |
QT_INCDIR | Diretório include Qt. |
QT_LIBDIR | Caminho das bibliotecas Qt. |
QT_PLUGINDIR | Caminho de plugins do Qt. |
As dependências individuais das ferramentas e da biblioteca Qt devem ser especificadas em USE_QT. Todo componente pode ser sufixado com _build ou _run, o sufixo indica se a dependência no componente está no tempo de compilação ou no tempo de execução. Se um sufixo não for usado, a dependência do componente será tanto em tempo de compilação quanto em tempo de execução. Geralmente, os componentes da biblioteca são especificados como unsuffixed, os componentes das ferramentas são especificados com o sufixo _build e os componentes dos plugins são especificados com o sufixo _run. Os componentes mais comumente usados estão listados abaixo (todos os componentes disponíveis estão listados em _USE_QT_ALL e _USE_QT5_ONLY em /usr/ports/Mk/Uses/qt.mk):
| Nome | Descrição |
|---|---|
3d | Módulo Qt3D |
assistant | Navegador de documentação do Qt 5 |
canvas3d | Módulo Qt canvas3d |
charts | Módulo de gráficos Qt 5 |
concurrent | Módulo multi-threading Qt |
connectivity | Módulo de conectividade Qt (Bluetooth/NFC) |
core | Módulo não-gráfico do núcleo Qt |
datavis3d | Módulo de visualização de dados 3D Qt 5 |
dbus | Módulo de comunicação entre processos Qt D-Bus |
declarative | Framework declarativo Qt para interfaces dinâmicas de usuário |
designer | Designer gráfico de interface de usuário do Qt 5 |
diag | Ferramenta para relatar informações de diagnóstico sobre o Qt e seu ambiente |
doc | Documentação do Qt 5 |
examples | Código-fonte dos exemplos do Qt 5 |
gamepad | Módulo de Gamepad Qt 5 |
graphicaleffects | Efeitos gráficos rápidos do Qt |
gui | Módulo de interface gráfica do usuário do Qt |
help | Módulo de integração de ajuda on-line do Qt |
l10n | Mensagens localizadas do Qt |
linguist | Ferramenta de tradução do Qt 5 |
location | Módulo de localização do Qt |
multimedia | Módulo de suporte de áudio, vídeo, rádio e câmera do Qt |
network | Módulo de rede do Qt |
networkauth | Módulo de autenticação de rede do Qt |
opengl | Módulo de suporte OpenGL compatível com o Qt 5 |
paths | Cliente de linha de comando para QStandardPaths |
phonon4 | Framework de multimídia do KDE |
pixeltool | Lupa de tela do Qt 5 |
plugininfo | Dumper de metadados do plugin Qt5 |
printsupport | Módulo de suporte de impressão do Qt |
qdbus | Interface de linha de comando do Qt para o D-Bus |
qdbusviewer | Interface gráfica do Qt 5 para o D-Bus |
qdoc | Gerador de documentação do Qt |
qdoc-data | Arquivos de configuração do QDoc |
qev | Ferramenta de introspecção de eventos Qt QWidget |
qmake | Gerador de Makefile do Qt |
quickcontrols | Conjunto de controles para construir interfaces completas no Qt Quick |
quickcontrols2 | Conjunto de controles para construir interfaces completas no Qt Quick |
remoteobjects | Módulo SXCML Qt5 |
script | Módulo de script compatível com Qt 4 |
scripttools | Componentes adicionais do Qt Script |
scxml | Módulo SXCML Qt5 |
sensors | Módulo de sensores do Qt |
serialbus | Funções do Qt para acessar sistemas de bus industriais |
serialport | Funções do Qt para acessar portas seriais |
speech | Recursos de acessibilidade para o Qt5 |
sql | Módulo de integração a banco de dados SQL do Qt |
sql-ibase | Plugin de banco de dados InterBase/Firebird do Qt |
sql-mysql | Plugin de banco de dados MySQL do Qt |
sql-odbc | Plugin Qt para conectividade Open Database |
sql-pgsql | Plugin de banco de dados do PostgreSQL do Qt |
sql-sqlite2 | Plugin de banco de dados SQLite 2 do Qt |
sql-sqlite3 | Plugin de banco de dados SQLite 3 do Qt |
sql-tds | Plugin de conectividade ao banco de dados TDS do Qt |
svg | Módulo de suporte SVT do Qt |
testlib | Módulo de teste unitário do Qt |
uiplugin | Interface de plug-in do Qt widget personalizado para o Qt Designer |
uitools | Módulo de suporte a formulários de interface de usuário do Qt Designer |
virtualkeyboard | Módulo de teclado virtual do Qt 5 |
wayland | Qt5 wrapper para o Wayland |
webchannel | Biblioteca Qt 5 para integração de C++/QML com clientes HTML/js |
webengine | Biblioteca Qt 5 para renderizar conteúdo da web |
webkit | QtWebKit com uma base de código WebKit mais moderna |
websockets | Implementação do protocolo WebSocket do Qt |
websockets-qml | Implementação do protocolo WebSocket do Qt (QML bindings) |
webview | Componente do Qt para exibir o conteúdo da web |
widgets | Módulo de widgets C++ do Qt |
x11extras | Recursos específicos da plataforma Qt para sistemas baseados em X11 |
xml | Implementações SAX e DOM do Qt |
xmlpatterns | Suporte do Qt para XPath, XQuery, XSLT e XML Schema |
Para determinar as bibliotecas das quais um aplicativo depende, execute o ldd no executável principal após uma compilação bem sucedida.
| Nome | Descrição |
|---|---|
buildtools | Ferramentas de compilação (moc, rcc), necessária para quase todas as aplicações do Qt. |
linguisttools | ferramentas de localização: Irelease, lupdate |
qmake | Utilitário gerador/compilador de Makefile |
| Nome | Descrição |
|---|---|
imageformats | plugins para formatos de imagem TGA, TIFF e MNG |
Neste exemplo, o aplicativo portado usa a biblioteca de interface gráfica do usuário do Qt 5, a biblioteca principal do Qt 5, todas as ferramentas de geração de código do Qt 5 e o gerador de Makefile do Qt 5. Uma vez que a biblioteca gui implica na dependência da biblioteca principal, o core não precisa ser especificado. As ferramentas de geração de código do Qt 5 moc, uic e rcc, bem como o gerador de Makefile qmake são necessários apenas em tempo de compilação, assim eles são especificados com o sufixo _build:
USES= qt:5 USE_QT= gui buildtools_build qmake_build
Se o aplicativo fornecer um arquivo de projeto qmake (*.pro), defina USES=qmake junto com USE_QT. Observe que xUSES=qmake já implica uma dependência de compilação no qmake, portanto, o componente qmake pode ser omitido de USE_QT. Igual ao CMake, o qmake suporta compilações out-of-source, que podem ser ativadas especificando o argumento outsource (verUSES=qmakeexemplo) .
USES= qmake| Variável | Descrição |
|---|---|
no_configure | Não adicione o target configure. Isso é implícito pelo HAS_CONFIGURE=yes e GNU_CONFIGURE=yes. Isso é requerido quando a compilação apenas precisa do ambiente de setup do USES= qmake, e dessa forma, executa-se o qmake por si próprio. |
no_env | Suprime modificações dos ambientes configure e make. É necessário somente quando qmake é usado para configurar o software e a compilação falha em entender a configuração do ambiente pelo USES= qmake. |
norecursive | Não passe o argumento -recursive para o qmake. |
outsource | Realiza uma compilação out-of-source. |
qmake| Variável | Descrição |
|---|---|
QMAKE_ARGS | Flags específicas do port qmake a serem passadas para o binario do qmake. |
QMAKE_ENV | Variáveis de ambiente a serem definidas para o binario qmake. O padrão é ${CONFIGURE_ENV}. |
QMAKE_SOURCE_PATH | Caminho para os arquivos de projeto do qmake (.pro). O padrão é ${WRKSRC} se uma compilação out-of-source for solicitada, caso contrário, deixe em branco. |
Ao usar USES= qmake, estas configurações são implementadas:
CONFIGURE_ARGS+= --with-qt-includes=${QT_INCDIR} \
--with-qt-libraries=${QT_LIBDIR} \
--with-extra-libs=${LOCALBASE}/lib \
--with-extra-includes=${LOCALBASE}/include
CONFIGURE_ENV+= QTDIR="${QT_PREFIX}" QMAKE="${QMAKE}" \
MOC="${MOC}" RCC="${RCC}" UIC="${UIC}" \
QMAKESPEC="${QMAKESPEC}"
PLIST_SUB+= QT_INCDIR=${QT_INCDIR_REL} \
QT_LIBDIR=${QT_LIBDIR_REL} \
QT_PLUGINDIR=${QT_PLUGINDIR_REL}Alguns scripts de configuração não suportam os argumentos acima. Para suprimir a modificação de CONFIGURE_ENV e CONFIGURE_ARGS defina USES= qmake:no_env.
USES= qmakeEste trecho demonstra o uso do qmake para um port Qt 5:
USES= qmake:outsource qt:5 USE_QT= buildtools_build
Aplicações Qt são frequentemente escritas para serem multi-plataforma e muitas vezes o X11/Unix não é a plataforma em que são desenvolvidas, o que por sua vez leva a certas pontas soltas, como:
Faltam caminhos de inclusão adicionais. Muitos aplicativos vêm com suporte ao ícone da bandeja do sistema, mas não buscam inclusões e/ou bibliotecas nos diretórios do X11. Para adicionar diretórios aos includes e bibliotecas de pesquisa do qmake através da linha de comando, use:
QMAKE_ARGS+= INCLUDEPATH+=${LOCALBASE}/include \
LIBS+=-L${LOCALBASE}/libCaminhos falsos de instalação. Às vezes, dados como ícones ou arquivos .desktop são instalados por padrão em diretórios que não são verificados por aplicativos compatíveis com XDG. O editors/texmaker é um exemplo disso - veja patch-texmaker.pro no diretório de arquivos desse port para um modelo sobre como remediar isso diretamente no arquivo de projeto qmake.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.