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 x
USES=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=qmake
exemplo) .
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= qmake
Este 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}/lib
Caminhos 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>.