Esta seção descreve o status das bibliotecas wxWidgets na árvore de ports e sua integração com o sistema de ports.
Existem muitas versões das bibliotecas do wxWidgets que entram em conflito entre elas (instalam arquivos com o mesmo nome). Na árvore de ports este problema foi resolvido instalando cada versão sob um nome diferente usando sufixos de número de versão.
A desvantagem óbvia disso é que cada aplicativo precisa ser modificado para encontrar a versão esperada. Felizmente, a maioria dos aplicativos chama o script wx-config
para determinar os sinalizadores necessários para o compilador e o vinculador. O script é nomeado de maneira diferente para cada versão disponível. A maioria dos aplicativos respeita uma variável de ambiente ou aceita um argumento de configuração para especificar o script wx-config
que deve ser chamado. Caso contrário, eles têm que ser corrigidos.
Para fazer o port usar uma versão específica do wxWidgets existem duas variáveis disponíveis para definir (se apenas uma for definida, a outra será definida para um valor padrão):
Variável | Descrição | Valor padrão |
---|---|---|
USE_WX | Lista de versões que o port pode usar | Todas as versões disponíveis |
USE_WX_NOT | Lista de versões que o port não pode usar | Nenhum |
As versões disponíveis do wxWidgets e os ports correspondentes na árvore são:
Versão | Port |
---|---|
2.8 | x11-toolkits/wxgtk28 |
3.0 | x11-toolkits/wxgtk30 |
As variáveis em Tabela 6.31, “Variáveis para Selecionar as Versões do wxWidgets” podem ser definidas para uma ou mais dessas combinações separadas por espaços:
Descrição | Exemplo |
---|---|
Versão única | 2.8 |
Range ascendente | 2.8+ |
Range descendente | 3.0- |
Range total (deve ser crescente) | 2.8-3.0 |
Também existem algumas variáveis para selecionar as versões preferidas entre as disponíveis. Elas podem ser configuradas para uma lista de versões, as primeiras terão maior prioridade.
Nome | Desenhado para |
---|---|
WANT_WX_VER | o port |
WITH_WX_VER | o usuário |
Existem outras aplicações que, apesar de não serem bibliotecas wxWidgets, estão relacionadas a eles. Estas aplicações podem ser especificadas em WX_COMPS
. Estes componentes estão disponíveis:
Nome | Descrição | Restrição de versão |
---|---|---|
wx | biblioteca principal | nenhum |
contrib | bibliotecas contribuídas | none |
python | wxPython(ligações Python) | 2.8-3.0 |
O tipo de dependência pode ser selecionado para cada componente, adicionando-se um sufixo separado por um ponto-e-vírgula. Se não estiver presente, será usado um tipo padrão (veja Tabela 6.37, “Tipos de Dependência Padrão do wxWidgets”). Estes tipos estão disponíveis:
Nome | Descrição |
---|---|
build | Componente é necessário para a compilação, equivalente a BUILD_DEPENDS |
run | O componente é necessário para execução, equivalente a RUN_DEPENDS |
lib | O componente é necessário para a compilação e execução, equivalente a LIB_DEPENDS |
Os valores padrão para os componentes estão detalhados nesta tabela:
Componente | Tipo de dependência |
---|---|
wx | lib |
contrib | lib |
python | run |
mozilla | lib |
svg | lib |
Este fragmento corresponde a um port que usa wxWidgets versão 2.4
e suas bibliotecas contribuídas.
USE_WX= 2.8 WX_COMPS= wx contrib
Para detectar uma versão instalada, defina WANT_WX
. Se não estiver definido para uma versão específica, os componentes terão um sufixo de versão. O HAVE_WX
será preenchido após a detecção.
Este fragmento pode ser usado em um port que usa wxWidgets se estiver instalado ou uma opção estiver selecionada.
WANT_WX= yes .include <bsd.port.pre.mk> .if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8) USE_WX= 2.8 CONFIGURE_ARGS+= --enable-wx .endif
Este fragmento pode ser usado em um port que permite suporte ao wxPython se ele estiver instalado ou se uma opção for selecionada, em adição ao wxWidgets, ambas nas versões 2.8
.
USE_WX= 2.8 WX_COMPS= wx WANT_WX= 2.8 .include <bsd.port.pre.mk> .if defined(WITH_WXPYTHON) || !empty(PORT_OPTIONS:MWXPYTHON) || !empty(HAVE_WX:Mpython) WX_COMPS+= python CONFIGURE_ARGS+= --enable-wxpython .endif
Estas variáveis estão disponíveis no port (depois de definir uma de Tabela 6.31, “Variáveis para Selecionar as Versões do wxWidgets”).
Nome | Descrição |
---|---|
WX_CONFIG | O caminho para o script wxWidgets wx-config (com nome diferente) |
WXRC_CMD | O caminho para o programa wxWidgets wxrc (com nome diferente) |
WX_VERSION | A versão do wxWidgets que será usada (por exemplo,2.6 ) |
Defina WX_PREMK
para ser capaz de usar as variáveis logo após a inclusão do bsd.port.pre.mk
.
Ao definir WX_PREMK
, a versão, dependências, componentes e variáveis definidas não serão alteradas mesmo se alterado as variáveis do port wxWidgets depois de incluir o bsd.port.pre.mk
.
Este fragmento ilustra o uso de WX_PREMK
executando o script wx-config
para obter a string de versão completa, atribuí-lo a uma variável e passá-lo para o programa.
USE_WX= 2.8 WX_PREMK= yes .include <bsd.port.pre.mk> .if exists(${WX_CONFIG}) VER_STR!= ${WX_CONFIG} --release PLIST_SUB+= VERSION="${VER_STR}" .endif
As variaveis wxWidgets podem ser usadas com segurança em comandos quando estão dentro de targets sem a necessidade de WX_PREMK
.
Alguns scripts GNU configure
não podem encontrar wxWidgets com apenas o conjunto de variáveis de ambiente WX_CONFIG
, exigindo argumentos adicionais. WX_CONF_ARGS
pode ser usado para fornecê-los.
WX_CONF_ARGS
Valor possível | Argumento resultante |
---|---|
absolute | --with-wx-config=${WX_CONFIG} |
relative | --with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T} |
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>.