
Informe a los errores/problemas en git.enlightenment.org
EFL es una colección de bibliotecas para manejar muchas tareas comunes que un desarrollador puede tener, como estructuras de datos, comunicación, representación, widgets y más.
Hay muchos componentes dentro de EFL. También construyen varias cosas como bibliotecas compartidas, módulos de complemento cargables y también ejecutables binarios. Diferentes elementos terminarán con licencia de manera diferente también. A continuación se muestra un resumen de los componentes, lo que hacen y sus licencias.
Toda la fuente de la biblioteca está en el directorio SRC/ lib/. Todos los binarios están en SRC/bin/. Todos los módulos cargables están en src/módulos/. Todos los archivos de datos están en los datos/ directorio. Los detalles de la licencia se enumeran en la copia y las licencias/ directorio. El directorio PC/ contiene todos los archivos de configuración del paquete instalados para ayudar a los desarrolladores a construir contra EFL.
Para obtener más documentación, consulte:
www.enlightenment.org/doc
EFL se desarrolla principalmente en Linux (GNU/Linux) y debe funcionar en la mayoría de las distribuciones siempre que se proporcionen dependencias. Se ha compilado y ejecutado también en Windows (usando MSYS2 + MINGW -W64); consulte Windows Docs, Mac OS X, FreeBSD y NetBSD.
Ecore:
Licencia de cláusula BSD 2
Este es el bucle principal principal, los eventos del sistema y la capa de ejecución. Esto maneja la ejecución del bucle principal, integrándose con datos externos y fuentes de tiempo (el reloj del sistema, descriptores de archivos, señales del sistema) y produciendo una cola de eventos, caminar esa cola y enviar eventos a las devoluciones de llamada apropiadas.
Ecore Audio:
Licencia de cláusula BSD 2
Esta biblioteca proporciona una API para la reproducción y grabación de audio. Utiliza audio de pulso debajo para manejar la mezcla y las políticas. La API para esto no debe considerarse estable en este momento porque se basa en EO y EO aún no se considera finalizado.
Cocoa de Ecore:
Licencia de cláusula BSD 2
Esto proporciona envolturas/abstracciones alrededor de las API Max OS-X Cocoa para ayudar a MAC Porting.
Ecore Con:
Licencia de cláusula BSD 2
Esto proporciona una API de socket de dominio TCP/UDP y UDP completamente basada en eventos que se integra con el bucle principal. Esto significa que no hay bloqueo para enviar o recibir datos, lo que respalda las "búferes de envío infinitos" con el almacenamiento y el bote de cola realizado por Ecore Con. También admite el cifrado SSL activado transparentemente o no en la misma conexión, verificación de certificados, envoltura de curl para el uso de la conexión HTTP (gets, publicaciones, etc.), búsqueda de DNS asíncrono y proporciona la capacidad de ser un servidor, no solo un cliente, con la misma API basada en eventos.
Ecore Evas:
Licencia de cláusula BSD 2
Esto actúa como pegamento entre el objetivo de pantalla (X11, Wayland, Buffer Frame, Cocoa en OSX, Win32, etc.) y EVAS. Crea/proporciona un objetivo para que los EVA se conviertan en (una ventana o superficie, etc.) y alimenta eventos de entrada (teclado, mouse, múltiples touch) en EVA, que luego selecciona el objeto de destino y llama a las devoluciones de llamada. También proporciona envoltorios/pegamento para manipular la ventana/superficie.
Ecore FB:
Licencia de cláusula BSD 2
Esto proporciona asignación de terminal virtual, acceso y manejo, información de búfer de cuadros, manejo de entrada sin procesar para teclado, mouse y tacto (a través de TSLIB).
Archivo Ecore:
Licencia de cláusula BSD 2
Esto proporciona API de conveniencia de acceso a archivos para realizar operaciones simples de archivos como renajes, copias, directorios de listado y más. También admite monitoreo de cambio de archivos y descargas de URL.
Ecore FMI:
Licencia de cláusula BSD 2
Este es un marco de abstracción del método de entrada para permitir que EFL hable con cosas como Scim, IBUS, Wayland y XIM. Esto permite una entrada de texto compleja en idiomas como chino, japonés y coreano.
ECORE FMI EVAS:
Licencia de cláusula BSD 2
Esta biblioteca pega el soporte del método de entrada de ECORE y EVAS juntos.
Entrada de Ecore:
Licencia de cláusula BSD 2
Esto actúa como una capa de entrada genérica donde múltiples sistemas de visualización pueden publicar eventos en el mismo formato a la cola de eventos.
Evas de entrada Ecore:
Licencia de cláusula BSD 2
Esto enruta los eventos de la entrada ECORE a un lienzo EVAS dado que luego enrutará el evento más lejos al objeto de destino y las devoluciones de llamada.
Ecore IPC:
Licencia de cláusula BSD 2
Esto actúa como una capa además de Ecore Con que maneja los paquetes completos de mensajes de IPC, tratando con la compresión delta del encabezado y la portabilidad, además de garantizar que se reciba un mensaje completo de una sola vez como un solo mensaje IPC, independientemente del tamaño de los datos de carga útil. Toda la API se basa en eventos casi exactamente como Ecore Con y, por lo tanto, admite todas las capas de transporte que el Ecore Con admite.
Ecore SDL:
Licencia de cláusula BSD 2
Esto actúa como un envoltorio/pegamento alrededor de SDL para manejar las ventanas SDL, así como los eventos de entrada de SDL y atarlos a la cola Ecore Main-Loop y Event.
Ecore Wayland:
Licencia de cláusula BSD 2
Esta es una biblioteca de pegamento/envoltorio para interactuar con las bibliotecas de EFL a Wayland para vincularlas con la cola Ecore Main-Loop y Event.
Ecore Win32:
Licencia de cláusula BSD 2
Esto actúa como pegamento/envoltura alrededor de las API Win32 de Windows para vincularlas con la cola Ecore Main-Loop y Event.
Ecore X:
Licencia de cláusula BSD 2
Esta es una biblioteca para envolver/tratar con XLIB hacer que tratar con X11 sea menos doloroso y menos juego de pies, además de ser pegamento para vincularlos con la cola de eventos y bucle mayor.
Edje:
Licencia de cláusula BSD 2 (excepto el binario EPP que es GPLV2)
Este es un evento gráfico, entrada, tema, animación y biblioteca de abstracción de temas que se usa para colocar muchos elementos de UI/UX en archivos de datos (llamados archivos EDJ) que definen cómo reaccionar a eventos/señales entrantes, y definir líneas de tiempo de animación, estados, diseño relativo escalable y mucho más. Viene con un compilador que compila archivos "EDC" de origen en archivos "EDJ" (que en realidad son solo archivos de datos administrados por EET). Estos archivos "EDJ" son completamente portátiles y pueden funcionar en cualquier sistema operativo/arquitectura al igual que un JPEG o PNG podría ser portátil.
EET:
Licencia de cláusula BSD 2
Esta biblioteca es una biblioteca de almacenamiento de datos, codificación y decodificación diseñada para ser extremadamente compacta, rápida y fácil de usar. Puede tomar estructuras de datos directamente de la memoria y serializarlas portátiles al disco, luego des-serializarlas de regreso a las mismas estructuras de datos en la memoria, manejar la asignación y la población de memoria, todo para usted en 1 llamada. También maneja indirecciones como punteros, listas vinculadas, matrices y tablas hash, por lo que casi cualquier nivel de complejidad de la estructura de datos se puede guardar y cargar fácilmente. Se utiliza para archivos "EDJ" de Edje, así como para toda la configuración en Ilustración, elemental y terminología. También admite el cifrado de datos a través de SSL, la firma de archivos, así como varias técnicas de compresión. También admite la codificación y decodificación de datos de imagen en forma sin pérdidas o con pérdida.
Eeze:
Licencia de cláusula BSD 2
Esta biblioteca actúa como una abstracción para descubrir interfaces de hardware para sensores, así como medios extraíbles y mucho más.
EFL:
Licencia de cláusula BSD 2
Estos son solo algunos datos de encabezado comunes básicos como un número de versión común para EFL y cómo exponer la API EO.
Efreet:
Licencia de cláusula BSD 2
Esta biblioteca proporciona código para manejar los estándares Freedesktop.org, como archivos .desktop, menús XDG, rutas de búsqueda de iconos y más. Proporciona un demonio central para manejar el monitoreo de los cambios con los que habla la biblioteca, y el demonio maneja la actualización de los archivos de caché locales que la biblioteca lee.
Eina:
Licencia LGPL V2
Esta biblioteca proporciona rutinas de bajo nivel para cosas comunes como listas vinculadas, tablas hash, matrices crecibles, buffers de cadenas básicas, tokens de cadenas compartidas, acceso a archivos mmaped (), abstracción y bloqueo de subprocesos, grupos de memoria, segmentos de copia en escritura, iteradores, matrices, modelos de datos generales, árboles rojos/negros, quad-trees, un saxo simple XML y más.
EIO:
Licencia LGPL V2
Esta es una biblioteca de E/S asíncrona para hacer E/S de disco sin bloquear.
Eldbus:
Licencia LGPL V2
Esta es una biblioteca de acceso DBUS para permitirle crear servicios DBUS y clientes. Esto se coloca en DBU en el bucle principal para que todo el acceso sea asíncrono.
Embrión:
Pequeña licencia (igual que la licencia ZLIB)
Esta es una pequeña biblioteca de intérpretes de compiladores de idiomas y código de bytes. Esto se usa para secuencias de comandos en Edje. El código se basa en la fuente original del lenguaje/lenguaje pequeño, pero se ha hecho portátil (problemas de endianness solucionados) y los problemas de 64 bits solucionados, y la biblioteca de tiempo de ejecución se refactora para ser extremadamente pequeña.
Emoción:
Licencia de cláusula BSD 2
Este es un envoltorio alrededor de las bibliotecas de decodificadores conectables GStreamer 1.x esto se pegan en la biblioteca de decodificadores, y su salida en un objeto EVAS inteligente que mostrará la reproducción para usted a medida que se reproduce el video, además de proporcionar controles de nivel superior para buscar, reproducir, pausar y consultar la corriente, independientemente de la parte posterior utilizada.
EO:
Licencia de cláusula BSD 2
Esta es una API del sistema de objetos básicos que EFL 1.8 y dependen de. La API no está finalizada, por lo que aún no depende de ello en EFL 1.8, pero las futuras versiones de EFL lo bloquearán.
Este sistema de objetos realiza herencia simple y múltiple, realización de referencias, referencias fuertes y débiles, autoselección de objetos infantiles, unifica el manejo de devolución de llamada con una sola ruta, y también abstrae los punteros de objetos para que sean las búsquedas de mesa indirectas para aumentar la seguridad en el tiempo de ejecución.
Efísica:
Licencia de cláusula BSD 2
Esta biblioteca proporciona un envoltorio alrededor de la biblioteca de física de la bala, lo que permite que se vincule directamente con los objetos EVAS y controle su comportamiento como si fueran objetos físicos reales. Esto ahora está deshabilitado de forma predeterminada, ya que rara vez es usado por algo.
ETHUMP:
Licencia LGPL V2
Esta biblioteca proporciona API central para un demonio miniatura, así como el demonio en miniatura. Ethumb Client habla con Ethumb para pasar la generación de miniatura a una ubicación central para hacerse de manera asincrónica.
Ethumb Client:
Licencia LGPL V2
Esta es la parte del lado del cliente de Ethumb que proporciona una API para que los clientes soliciten al miniatura Ethumb que genere o encuentre miniaturas en caché de archivos.
Evas:
Licencia de cláusula BSD 2
Esta es la biblioteca de renderización y gráfica de escena de la escena para EFL. Gestiona un gráfico de escena 2D con estado que define todo el contenido de cualquier lienzo. Esto suministra un back-end para muchos sistemas de visualización como X11, Windows, Wayland, Frame-Buffer, etc. y a través de muchas API de representación como OpenGL, OpenGL-ES 2 e implementaciones de software puras que son rápidas y precisas.
Demonio:
Licencia de cláusula BSD 2
Esta biblioteca actúa como una biblioteca de portada para que Windows proporcione llamadas de libc faltantes no en MINGW32 que EFL necesita. Se usa internamente y ningún símbolo es público.
EFL requiere un compilador C y C ++ de forma predeterminada. C ++ existe principalmente para interactuar con las bibliotecas C ++ como Bullet y nuestros enlaces C ++.
Requerido por defecto:
También es posible que desee soporte de Wayland cuando esté en Linux. Esto permite el soporte para EFL para apuntar a Wayland Support para aplicaciones de clientes. Para hacer este suministro:
-Dwl=truePara un soporte de FrameBuffer más moderno, puede desee el soporte de representación DRM/KMS, así que habilite esto. Esto es lo que también desea para el soporte de compositor de Wayland en la iluminación, ya que querrá poder renderizar a un objetivo moderno de FrameBuffer con intercambio de tampón atómico. Para hacer esto proporcionar:
-Ddrm=trueEl soporte Legacy FBCON también existe, pero probablemente ya no quiera usar esto, ya que ya no se mantiene. Esto admite bufones de cuadros básicos como /dev /fb, así como entrada a través de /dev /entrada para teclados y ratones de manera básica. Habilitar esto con:
-Dfb=trueEs posible que desee cambiar el prefijo de instalación para EFL con:
--prefix=/path/to/prefixEl prefijo predeterminado si no se da es "/usr/local". A muchas personas les gusta usar prefijos como/opt/e o/opt/efl o/home/username/software, etc.
Puede afectar la optimización de la compilación, la depuración y otros factores estableciendo su variable de entorno CFLAGS (y CXXFLAGS ). Tenga en cuenta que para garantizar la estabilidad de ABI debe usar exactamente los mismos CFLAGS / CXXFLAGS para toda la construcción de EFL y cualquier aplicación / bibliotecas que dependa de ellas.
Hay muchas otras opciones de configuración que se pueden usar, pero en general no es una buena idea ir a habilitar o deshabilitar las cosas a menos que desee romper las cosas. Los valores predeterminados están bien probados, con las opciones recomendadas anteriormente que también están bien probadas. Vaya mucho más lejos y su kilometraje puede variar salvajemente. Desactivar las características es una buena forma de romper la funcionalidad de EFL, por lo que no se recomienda meterse con ellas sin comprender las implicaciones. Se han considerado cuidadosamente los valores predeterminados para proporcionar una funcionalidad completa para que los usuarios no se perderán nada.
Meson es el sistema de compilación utilizado para este proyecto. Para obtener más información, consulte Mesonbuild.com
Necesitará herramientas de compilación normales instaladas, como un compilador (GCC o Clang, por ejemplo), PKG-Config, Ninja, cualquier paquete relevante de paquete de paquete o paquete de enlace de paquete si su distribución divide los encabezados de desarrollo (por ejemplo, libc6-dev) etc.
Dependiendo de dónde dependencias, es posible que deba establecer su variable de entorno PKG_CONFIG_PATH como:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfigTambién tenga en cuenta que algunas distribuciones les gusta agregar directorios de arco adicionales a las ubicaciones de su biblioteca para que tenga que tener más 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 Deberá asegurarse de que el directorio de la biblioteca de destino (p. /usr/local/lib esté en su /etc/ld.so.conf o /etc/ld.so.conf.d/ archivos y después de instalar cualquier cosa que instale bibliotecas que vuelva a ejecutar ldconfig . Por favor, consulte la documentación relevante en ldconfig y ld.so.conf para su distribución.
También es posible que desee agregar la ruta de la variable de entorno de destino a su ruta de variable de entorno (consulte la documentación sobre su variable de ruta de shell) como:
export PATH=/usr/local/bin:/usr/bin:/binCompilación normal en /usr /local:
meson . build
ninja -C build
sudo ninja -C build installPara Meson Build Opciones genéricas:
meson --helpPara una lista de opciones específicas del proyecto admitidas:
cat meson_options.txtPara establecer 1 o más opciones específicas del proyecto:
meson --prefix=/path/to -Doption=value [-Dother = value2] [...] . buildPara mostrar la configuración actual:
meson configure buildLo anterior solo funcionará después de que se realice al menos lo siguiente:
meson . buildCómo limpiar la compilación y la configuración y comenzar de nuevo:
rm -rf buildCómo hacer un tarball Dist y verificar su construcción: (debe hacerlo desde Git Tree Clone y comprometer todos los cambios a GIT primero)
ninja -C build distCómo cambiar el prefijo:
meson --prefix=/path/to/prefix . buildCómo instalar en un directorio de destino específico para el embalaje:
DESTDIR=/path/to/destdir ninja -C build installCómo construir con salida detallada (ejecución de comandos completos):
ninja -C build -vNota: NVIDIA OpenGL-ES/EGL parece tener errores y problemas de rendimiento. Todos los demás conductores funcionan bien, excepto Nvidia con OpenGL-ES/EGL. Los usuarios han informado de tartamudez y fallas gráficas y, a veces, Windows no se actualiza. Si desea los mejores resultados y está atascado en NVIDIA y no puede cambiar eso, entonces:
-Dwl=false (esto es predeterminado de todos modos si no se proporciona)-Ddrm=false (esto es predeterminado de todos modos si no se proporciona)-Dopengl=full