
Por favor, relate bugs/problemas em git.enlightenment.org
O EFL é uma coleção de bibliotecas para lidar com muitas tarefas comuns que um desenvolvedor pode ter, como estruturas de dados, comunicação, renderização, widgets e muito mais.
Existem muitos componentes dentro do EFL. Eles também criam várias coisas, como bibliotecas compartilhadas, módulos de plug-in carregáveis e também executáveis binários. Elementos diferentes também serão licenciados de maneira diferente. Abaixo está um resumo dos componentes, o que eles fazem e seu licenciamento.
Toda a fonte da biblioteca está no diretório SRC/ LIB/. Todos os binários estão no SRC/BIN/. Todos os módulos carregáveis estão em src/módulos/. Todos os arquivos de dados estão no dados/ diretório. Os detalhes do licenciamento estão listados na cópia e nas licenças/ diretório. O PC/ diretório contém todos os arquivos de configuração do pacote instalados para ajudar os desenvolvedores a serem construídos contra o EFL.
Para mais documentação, consulte:
www.enlightenment.org/doc
O EFL é desenvolvido principalmente no Linux (GNU/Linux) e deve funcionar na maioria das distribuições, desde que as dependências sejam fornecidas. Ele foi compilado e executado também no Windows (usando o msys2 + mingw -w64) - consulte o Windows Docs, Mac OS X, FreeBSD e NetBSD.
Ecore:
Licença de cláusulas 2 BSD
Esta é a principal camada de eventos do loop principal, do sistema e execução. Isso lida com a execução do loop principal, integrando -se com dados externos e fontes de tempo (o relógio do sistema, descritores de arquivos, sinais do sistema) e produzindo uma fila de eventos, caminhando essa fila e eventos de despacho para retornos de chamada apropriados.
Ecore Audio:
Licença de cláusulas 2 BSD
Esta biblioteca fornece uma API para reprodução e gravação de áudio. Ele usa o Pulse Audio abaixo para lidar com a mistura e as políticas. A API para isso não deve ser considerada estável no momento, porque depende de OE e OE ainda não é considerada finalizada.
Cacau Ecore:
Licença de cláusulas 2 BSD
Isso fornece invólucros/abstrações em torno do MAX OS-X Cocoa APIs para ajudar a porte do MAC.
Ecore Con:
Licença de cláusulas 2 BSD
Isso fornece uma API de soquete TCP/UDP e UNIX do UNIX completamente baseada em eventos que se integra ao loop principal. Isso significa que não há bloqueio para enviar ou receber dados, suportando "Buffers de envio infinito" com armazenamento e spooling sendo feitos pela Ecore Con. Ele também suporta a criptografia SSL ativada ou não na mesma conexão, verificação de certificado, embrulho de cacho para uso de conexão HTTP (recebe, postagens etc.), pesquisas de DNS assíncronas e oferece a capacidade de também ser um servidor, não apenas um cliente, com o mesmo API baseado em eventos.
Ecore Evas:
Licença de cláusulas 2 BSD
Isso atua como cola entre o alvo de exibição (X11, Wayland, Buffer de quadro, cacau no OSX, Win32 etc.) e evas. Ele cria/fornece um alvo para a evas renderizar (uma janela ou superfície etc.) e alimenta eventos de entrada (teclado, mouse, multi-touch) em evas, que seleciona o objeto de destino e chama os retornos de chamada. Ele também fornece invólucros/cola para manipular a janela/superfície.
Ecore FB:
Licença de cláusulas 2 BSD
Isso fornece alocação, acesso e manuseio de terminais virtuais, informações de buffer de quadros, manuseio de entrada bruta para teclado, mouse e toque (via TSLIB).
Arquivo Ecore:
Licença de cláusulas 2 BSD
Isso fornece APIs de conveniência de acesso a arquivos para realizar operações simples de arquivos, como renomeias, cópias, diretórios de listagem e muito mais. Ele também suporta o monitoramento de alterações de arquivo e downloads de URL.
Ecore FMI:
Licença de cláusulas 2 BSD
Esta é uma estrutura de abstração do método de entrada para permitir que a EFL converse com coisas como SCIM, IBUS, Wayland e XIM. Isso permite uma entrada complexa de texto em idiomas como chinês, japonês e coreano.
Ecore FMI Evas:
Licença de cláusulas 2 BSD
Esta biblioteca cola o método de entrada Suporte do ECORE FMI e EVAS juntos.
Entrada Ecore:
Licença de cláusulas 2 BSD
Isso atua como uma camada de entrada genérica, onde vários sistemas de exibição podem publicar eventos no mesmo formato na fila de eventos.
ECORE Entre evas:
Licença de cláusulas 2 BSD
Isso direciona os eventos da entrada Ecore para uma dada tela de evas, que irá percorrer o evento ainda mais para o objeto de destino e os retornos de chamada.
Ecore IPC:
Licença de cláusulas 2 BSD
Isso atua como uma camada em cima do Ecore Con, que lida com pacotes de mensagens IPC inteiros, lidando com a compressão e portabilidade do cabeçalho, além de garantir que uma mensagem inteira seja recebida de uma só vez como uma única mensagem IPC, independentemente do tamanho dos dados da carga útil. Toda a API é baseada em eventos quase exatamente como a Ecore Con e, portanto, suporta todos os suportes da Camadas de Transporte.
Ecore SDL:
Licença de cláusulas 2 BSD
Isso atua como um invólucro/cola em torno do SDL para lidar com o SDL Windows, bem como eventos de entrada do SDL e amarrá-los à fila de circuito principal e de eventos da Ecore.
Ecore Wayland:
Licença de cláusulas 2 BSD
Esta é uma biblioteca de cola/invólucro para interface as bibliotecas EFL às Wayland para amarrá-las à fila de loop principal e de eventos da Ecore.
Ecore Win32:
Licença de cláusulas 2 BSD
Isso atua como cola/invólucro ao redor do Windows Win32 APIs para amarrá-las à fila de malha principal e de eventos da Ecore.
Ecore X:
Licença de cláusulas 2 BSD
Esta é uma biblioteca para embrulhar/lidar com o XLIB, para que o trate de X11 menos doloroso e menos trabalhe com os pés, além de colar para amarrá-los na fila de loop principal e de eventos da Ecore.
Edje:
Licença de cláusulas 2 BSD (exceto o binário EPP, que é GPLV2)
Este é um evento gráfico, entrada, tema, animação e biblioteca de abstração de temas usados para colocar muitos elementos de interface do usuário/UX em arquivos de dados (chamados arquivos EDJ) que definem como reagir a eventos/sinais de entrada e definir linhas de tempo de animação, estados, layout escalável relativamente e muito mais. Ele vem com um compilador que compila arquivos "EDC" da fonte em arquivos "EDJ" (que na verdade são apenas arquivos de dados gerenciados pelo EET). Esses arquivos "EDJ" são totalmente portáteis e podem funcionar em qualquer sistema operacional/arquitetura, como um JPEG ou PNG, pode ser portátil.
EET:
Licença de cláusulas 2 BSD
Esta biblioteca é uma biblioteca de armazenamento de dados, codificação e decodificação projetada para ser extremamente compacta, rápida e fácil de usar. Ele pode levar estruturas de dados diretamente da memória e serializar-as portavelmente ao disco, depois desrie-as de volta às mesmas estruturas de dados na memória, manuseando alocação e população de memória tudo para você em 1 chamada. Ele lida com indiretas como ponteiros, listas vinculadas, matrizes e tabelas de hash também, portanto, quase qualquer nível de complexidade da estrutura de dados pode ser facilmente salvo e carregado de volta. É usado para arquivos "EDJ" da EDJE, bem como para toda a configuração no Iluminismo, Elementar e Terminologia. Ele suporta a criptografia de dados também via SSL, assinatura de arquivos e várias técnicas de compactação. Ele também suporta a codificação e a decodificação dos dados da imagem em forma sem perdas ou com perdas.
Eeze:
Licença de cláusulas 2 BSD
Essa biblioteca atua como uma abstração para descobrir interfaces de hardware para sensores, bem como mídia removível e muito mais.
EFL:
Licença de cláusulas 2 BSD
São apenas alguns dados principais do cabeçalho comum, como um número de versão comum para o EFL e como expor a API EO.
Efreet:
Licença de cláusulas 2 BSD
Esta biblioteca fornece código para lidar com os padrões Freedesktop.org, como arquivos .Desktop, menus XDG, caminhos de pesquisa de ícones e muito mais. Ele fornece um daemon central para lidar com o monitoramento de alterações com as quais a biblioteca fala, e o Daemon lida com a atualização de arquivos de cache local que a biblioteca lê.
Eina:
Licença LGPL V2
Esta biblioteca fornece rotinas de baixo nível para coisas comuns, como listas vinculadas, tabelas de hash, matrizes cultiváveis, buffers básicos de string, tokens de cordas compartilhados, acesso a arquivos mmaped (), abstração de threads e travamento, pools de memória, cópias em segmentos, simples sax shax xx, modelos de dados gerais, árvores vermelhas/pretas.
EIO:
Licença LGPL V2
Esta é uma biblioteca de E/S assíncrona para fazer E/S de disco sem bloquear.
Eldbus:
Licença LGPL V2
Esta é uma biblioteca de acesso ao DBUS para permitir que você crie serviços de DBUs e clientes. Isso cola em DBUs no malha principal, para que todo o acesso seja assíncrono.
Embrião:
Licença pequena (igual à Licença Zlib)
Este é um pequeno compilador de idiomas do tipo C e biblioteca de intérpretes de código de bytes. Isso é usado para scripts em Edje. O código é baseado na fonte original da linguagem peão/pequena, mas foi feita portátil (problemas de Endianness corrigidos) e problemas de 64 bits corrigidos, com a biblioteca de tempo de execução sendo reformada para ser extremamente pequena.
Emoção:
Licença de cláusulas 2 BSD
Este é um invólucro em torno de bibliotecas de decodificadores gSTreamer 1.x traváveis, essas colas na biblioteca do decodificador e sua saída em um objeto Smart EVAS que exibirá a reprodução para você como o vídeo, além de fornecer controles de nível superior a procurar, reproduzir, fazer paus
EO:
Licença de cláusulas 2 BSD
Esta é uma API do sistema de objetos principais que o EFL 1.8 e depende. A API não está finalizada, portanto, ainda não depende do EFL 1.8, mas as versões futuras do EFL o travarão.
Esse sistema de objetos faz herança simples e múltipla, reflexão, referências fortes e fracas, aflição automática de objetos filhos, unifica o manuseio de retorno de chamada com um único caminho e também abstrair os ponteiros de objetos para serem pesquisados indiretos da tabela para aumentar a segurança no tempo de execução.
Efísica:
Licença de cláusulas 2 BSD
Esta biblioteca fornece um invólucro em torno da biblioteca de física da bala, permitindo que ela seja vinculada diretamente aos objetos de evas e controlasse seu comportamento como se fossem objetos físicos reais. Agora, isso está desativado por padrão, pois raramente é usado por alguma coisa.
Ethumb:
Licença LGPL V2
Esta biblioteca fornece API do núcleo para um daemon em miniatura, bem como o próprio daemon em miniatura. O Ethumb Client conversa com Ethumb para passar a geração de miniaturas a um local central a ser feito de forma assíncrona.
Cliente Ethumb:
Licença LGPL V2
Esta é a parte do lado do cliente do Ethumb que fornece uma API para os clientes solicitarem que o miniatória Ethumb gere ou encontre miniaturas em cache de arquivos.
Evas:
Licença de cláusulas 2 BSD
Esta é a biblioteca de abstração de gráficos de renderização e cenário principal para EFL. Ele gerencia um gráfico de cena 2D com estado que define todo o conteúdo de qualquer tela. Isso suprimentos renderizando back-end para muitos sistemas de exibição como X11, Windows, Wayland, Frame-buffer etc. e através de muitas APIs de renderização como OpenGL, OpenGL-ES 2 e implementações de software puro que são rápidas e precisas.
Mal:
Licença de cláusulas 2 BSD
Esta biblioteca atua como uma biblioteca de porte do Windows para fornecer chamadas LIBC ausentes que não estão no Mingw32 que o EFL precisa. É usado internamente e nenhum símbolo é público.
O EFL requer um compilador C e C ++ por padrão. O C ++ existe principalmente para interface com bibliotecas C ++ como Bullet e nossas ligações C ++.
Exigido por padrão:
Você também pode querer suporte para Wayland quando estiver no Linux. Isso permite suporte ao EFL para direcionar o suporte Wayland para aplicativos de clientes. Para fazer o suprimento:
-Dwl=truePara um suporte mais moderno ao FrameBuffer, você pode querer que o suporte a renderização de DRM/KMS, portanto, ative isso. É isso que você também deseja para o suporte do Wayland Compositor no Iluminismo, pois ele desejará poder renderizar um alvo moderno de Buffer com troca de tampão atômico. Para fazer isso, forneça:
-Ddrm=trueO suporte do FBCON herdado também existe, mas você provavelmente não deseja mais usar isso, pois não é mais mantido. Isso suporta buffers básicos como /dev /fb, bem como entrada via /dev /entrada para teclados e ratos de maneira básica. Habilite isso com:
-Dfb=trueVocê pode alterar o prefixo de instalação para EFL com:
--prefix=/path/to/prefixO prefixo padrão, se não for dado, é "/usr/local". Muitas pessoas gostam de usar prefixos como/opt/e ou/opt/efl ou/home/nome de usuário/software etc.
Você pode afetar a otimização de compilação, depuração e outros fatores, definindo sua variável de ambiente CFLAGS (e CXXFLAGS ). Esteja ciente de que, para garantir a estabilidade da ABI, você deve usar exatamente o mesmo CFLAGS / CXXFLAGS para toda a construção do EFL e quaisquer aplicativos / bibliotecas que dependem deles.
Existem muitas outras opções de configuração que podem ser usadas, mas, em geral, não é uma boa idéia permitir ou desativar as coisas, a menos que você queira quebrar as coisas. Os padrões são bem testados, com as opções recomendadas acima também sendo bem testadas. Vá muito mais longe e sua milhagem pode variar muito. Desativar recursos é uma boa maneira de quebrar a funcionalidade da EFL, portanto, não é recomendável mexer com eles sem entender as implicações. Os padrões foram cuidadosamente considerados para fornecer funcionalidades completas para que os usuários não estejam faltando nada.
Meson é o sistema de construção usado para este projeto. Para mais informações, consulte Mesonbuild.com
Você precisará de ferramentas de construção normais instaladas, como um compilador (GCC ou CLANG, por exemplo), pkg-config, ninja, qualquer pacotes relevantes de pacote ou pacotes de pacote de pacote se sua distribuição divide os cabeçalhos de desenvolvimento (por exemplo, libc6-dev) etc.
Dependendo de onde dependências, talvez você precise definir sua variável de ambiente PKG_CONFIG_PATH como:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfigObserve também que algumas distribuições gostam de adicionar diretórios de arco extras aos locais de sua biblioteca, para que você precise ter mais como:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig Você precisará garantir que o diretório da biblioteca de destino (por exemplo /usr/local/lib esteja em seus arquivos /etc/ld.so.conf ou /etc/ld.so.conf.d/ e depois de instalar qualquer coisa que instale as bibliotecas que você ldconfig novamente para sua distribuição.
Você também pode querer adicionar a lixeira de destino ao seu caminho de variável de ambiente (consulte a documentação na variável do caminho do shell) como:
export PATH=/usr/local/bin:/usr/bin:/binCompilação normal em /usr /local:
meson . build
ninja -C build
sudo ninja -C build installPara as opções genéricas de construção de meson:
meson --helpPara uma lista de opções específicas do projeto suportadas:
cat meson_options.txtPara definir 1 ou mais opções específicas do projeto:
meson --prefix=/path/to -Doption=value [-Dother = value2] [...] . buildPara exibir a configuração atual:
meson configure buildO exposto acima só funcionará depois que pelo menos o seguinte é feito:
meson . buildComo limpar a construção e configurar e começar a fresco:
rm -rf buildComo fazer um Tarball Dist e verificar sua construção: (Deve fazê -lo com clone de árvore Git e cometer todas as mudanças para Git primeiro)
ninja -C build distComo alterar o prefixo:
meson --prefix=/path/to/prefix . buildComo instalar em um diretório de destino específico para embalagem:
DESTDIR=/path/to/destdir ninja -C build installComo construir com saída detalhada (comandos completos executados):
ninja -C build -vNota: NVIDIA OpenGL-ES/EGL parece ter bugs e problemas de desempenho. Todos os outros motoristas funcionam muito bem, exceto Nvidia com o OpenGL-ES/EGL. Os usuários relataram gagueira e falhas gráficas e às vezes o Windows não está atualizando. Se você deseja os melhores resultados e está preso à NVIDIA e incapaz de mudar isso, então:
-Dwl=false (isso é padrão de qualquer maneira, se não for fornecido)-Ddrm=false (isso é padrão de qualquer maneira, se não for fornecido)-Dopengl=full