
Veuillez signaler les bogues / problèmes sur git.enlightinment.org
EFL est une collection de bibliothèques pour gérer de nombreuses tâches courantes qu'un développeur peut avoir telles que les structures de données, la communication, le rendu, les widgets et plus encore.
Il existe de nombreux composants à l'intérieur de l'EFL. Ils créent également diverses choses comme les bibliothèques partagées, les modules de plug-in chargés et également les exécutables binaires. Différents éléments finiront également par être sous licence différemment. Vous trouverez ci-dessous un aperçu des composants, de ce qu'ils font et de leur licence.
Toute la source de la bibliothèque est dans le répertoire SRC / LIB /. Tous les binaires sont en src / bin /. Tous les modules chargés sont en src / modules /. Tous les fichiers de données sont dans les données / répertoires. Les détails des licences sont répertoriés dans la copie et les licences / répertoire. Le PC / Directory contient tous les fichiers de configuration du package installés pour aider les développeurs à construire contre EFL.
Pour plus de documentation, veuillez consulter:
www.enlightenment.org/doc
L'EFL est principalement développé sur Linux (GNU / Linux) et devrait fonctionner sur la plupart des distributions tant que des dépendances sont fournies. Il a été compilé et exécuté également sur Windows (en utilisant MSYS2 + MINGW-W64) - veuillez consulter les documents Windows, Mac OS X, FreeBSD et NetBSD.
Ecore:
Licence BSD 2-CLAUSE
Il s'agit de la boucle principale, des événements système et de la couche d'exécution. Cela gère l'exécution de la boucle principale, l'intégration avec les données externes et les sources de synchronisation (l'horloge système, les descripteurs de fichiers, les signaux système) et la production d'une file d'attente d'événements, en marchant cette file d'attente et en répartir les événements à des rappels appropriés.
Audio ecore:
Licence BSD 2-CLAUSE
Cette bibliothèque fournit une API pour la lecture et l'enregistrement audio. Il utilise l'audio Pulse en dessous pour gérer le mélange et les politiques. L'API pour cela ne doit pas être considérée comme stable en ce moment car elle repose sur l'OE et l'EO n'est pas encore considérée comme finalisée.
Cocoa Ecore:
Licence BSD 2-CLAUSE
Cela fournit des emballages / abstractions autour des API de cacao MAX OS-X pour aider le portage MAC.
Ecore con:
Licence BSD 2-CLAUSE
Cela fournit une API de socket de domaine TCP / UDP et UNIX entièrement basée sur des événements qui s'intègre à la boucle principale. Cela signifie pas de blocage pour envoyer ou recevoir des données, prenant en charge les «tampons d'envoi infinis» avec le stockage et le spoulage effectué par Ecore Con. Il prend également en charge le cryptage SSL activé de manière transparente ou non sur la même connexion, la vérification du certificat, l'enveloppe de boucles pour l'utilisation de la connexion HTTP (objets, publications, etc.), les recherches ASynchrones DNS et offre la possibilité d'être également un serveur, pas seulement un client, avec la même API basée sur des événements.
Ecore Evas:
Licence BSD 2-CLAUSE
Cela agit comme de la colle entre la cible d'affichage (X11, Wayland, le tampon de cadre, le cacao sur OSX, Win32 etc.) et EVAS. Il crée / fournit une cible pour les EVA à rendre (une fenêtre ou une surface, etc.) et alimente les événements d'entrée (clavier, souris, multi-touch) dans EVAS, qui sélectionne ensuite l'objet cible et appelle les rappels. Il fournit également des emballages / colle pour manipuler la fenêtre / surface.
Ecore FB:
Licence BSD 2-CLAUSE
Cela fournit une allocation, un accès et une manutention virtuels de terminaux, des informations de tampon de trame, une manipulation brute des entrées pour le clavier, la souris et le toucher (via TSLIB).
Fichier Ecore:
Licence BSD 2-CLAUSE
Cela fournit des API de commodité d'accès aux fichiers pour effectuer des opérations de fichiers simples comme les renoms, les copies, les répertoires de liste et plus encore. Il prend également en charge la surveillance des changements de fichiers et les téléchargements d'URL.
ECORE FMF:
Licence BSD 2-CLAUSE
Il s'agit d'un cadre d'abstraction de méthode d'entrée pour permettre à EFL de parler à des choses comme SCIM, IBUS, Wayland et XIM. Cela permet une entrée de texte complexe dans des langues telles que le chinois, le japonais et le coréen.
ECORE IMF EVAS:
Licence BSD 2-CLAUSE
Cette bibliothèque collet la méthode d'entrée de la méthode d'ECORE FMI et EVAS ensemble.
Ecore Entrée:
Licence BSD 2-CLAUSE
Cela agit comme une couche d'entrée générique où plusieurs systèmes d'affichage peuvent publier des événements dans le même format à la file d'attente d'événements.
ECORE EVAS EVAS:
Licence BSD 2-CLAUSE
Cela achemine les événements de l'entrée ECORE dans une toile EVAS donnée qui acheminera ensuite l'événement vers l'objet de destination et les rappels.
Ecore IPC:
Licence BSD 2-CLAUSE
Cela agit comme une couche au-dessus d'Ecore Con qui gère des paquets de messages IPC entiers, traitant de la compression et de la portabilité de l'en-tête delta, ainsi que de garantir qu'un message entier est reçu en un seul message IPC, quelle que soit la taille des données de charge utile. L'API entière est basée sur des événements presque exactement comme ECORE CON et il prend donc en charge toutes les couches de transport que les supports d'Ecore Con.
Ecore sdl:
Licence BSD 2-CLAUSE
Cela agit comme un wrapper / colle autour de SDL pour gérer les fenêtres SDL ainsi que des événements d'entrée de SDL et les attacher à la boucle de boucle principale et à la file d'attente d'événements.
Ecore Wayland:
Licence BSD 2-CLAUSE
Il s'agit d'une bibliothèque de colle / wrapper pour interfacer EFL aux bibliothèques Wayland pour les lier à la boucle de boucle principale et de la file d'attente d'événements.
Ecore win32:
Licence BSD 2-CLAUSE
Cela agit comme de la colle / de l'emballage autour des API Windows WinD32 pour les attacher à la boucle principale et à la file d'attente d'événements.
Ecore x:
Licence BSD 2-CLAUSE
Il s'agit d'une bibliothèque pour envelopper / gérer XLIB, faire face à X11 moins douloureux et moins de jeu de jambes ainsi que de la colle pour les attacher à la boucle principale et à la file d'attente d'événements.
Edje:
Licence BSD 2-CLAUSE (sauf le binaire EPP qui est GPLV2)
Il s'agit d'un événement graphique, d'une entrée, d'un thème, d'une bibliothèque d'abstraction d'animation et de thème utilisé pour placer de nombreux éléments d'interface utilisateur / UX dans des fichiers de données (appelés fichiers EDJ) qui définissent comment réagir aux événements / signaux entrants, et définissent des lignes de temps d'animation, des états, une disposition évolutive relative et bien plus encore. Il est livré avec un compilateur qui compile les fichiers "EDC" source dans des fichiers "EDJ" (qui ne sont en fait que des fichiers de données gérés par EET). Ces fichiers "EDJ" sont entièrement portables et peuvent fonctionner sur n'importe quel système d'exploitation / architecture, tout comme un JPEG ou PNG peut être portable.
Eet:
Licence BSD 2-CLAUSE
Cette bibliothèque est une bibliothèque de stockage, d'encodage et de décodage de données conçu pour être extrêmement compact, rapide et facile à utiliser. Il peut prendre des structures de données directement à partir de la mémoire et les sérialiser portablement sur le disque, puis les désérialiser tout de suite aux mêmes structures de données en mémoire, gérer l'allocation et la population de mémoire pour vous en 1 appel. Il gère les indirections telles que les pointeurs, les listes liées, les tableaux et les tables de hachage, de sorte que presque tous les niveaux de complexité de structure de données peuvent être facilement enregistrés et chargés. Il est utilisé pour les fichiers "EDJ" par EDJE ainsi que toute la configuration des Lumières, élémentaires et terminologie. Il prend également en charge le chiffrement des données via SSL, la signature de fichiers, ainsi que diverses techniques de compression. Il prend également en charge l'encodage et le décodage des données d'image sous forme sans perte ou avec perte.
Eeze:
Licence BSD 2-CLAUSE
Cette bibliothèque agit comme une abstraction pour découvrir les interfaces matérielles pour les capteurs ainsi que les supports amovibles et bien plus encore.
EFL:
Licence BSD 2-CLAUSE
Ce n'est que quelques données d'en-tête communes de base comme un numéro de version commune pour EFL et comment exposer l'API EO.
Efreet:
Licence BSD 2-CLAUSE
Cette bibliothèque fournit du code pour gérer les normes Freedesktop.org telles que les fichiers .desktop, les menus XDG, les chemins de recherche d'icônes et plus encore. Il fournit un démon central pour gérer la surveillance des modifications auxquelles la bibliothèque parle, et le démon s'occupe de la mise à jour des fichiers de cache locaux que la bibliothèque lit.
Eina:
Licence LGPL V2
Cette bibliothèque fournit des routines de bas niveau pour des choses courantes telles que les listes liées, les tables de hachage, les tableaux grandissants, les tampons de chaîne de base, les jetons de chaîne partagés, l'accès à fichiers mmaped (), l'abstraction de threads et le verrouillage, les pools de mémoire, les segments de copie-écriture, les itérateurs, les matrices, les modèles de données généraux, les arbres redex / noirs, un simple SAX xML PARSER et plus.
EIO:
Licence LGPL V2
Il s'agit d'une bibliothèque d'E / S asynchrone pour faire des E / S de disque sans bloquer.
Eldbus:
Licence LGPL V2
Il s'agit d'une bibliothèque d'accès DBUS pour vous permettre de créer des services DBU ainsi que des clients. Cela colle des DBU dans la boucle principale afin que tout accès soit asynchrone.
Embryon:
Petite licence (identique à la licence ZLIB)
Il s'agit d'un petit compilateur de langage de type C et d'une bibliothèque d'interprète-code d'octets. Ceci est utilisé pour les scripts dans EDJE. Le code est basé sur la source d'origine du pion / petit langage mais a été rendu portable (problèmes d'endianness résolus) et 64 bits de problèmes, la bibliothèque d'exécution étant refactorisée pour être extrêmement petite.
Émotion:
Licence BSD 2-CLAUSE
Ceci est un wrapper autour de Gtreer 1.x Bibliothèques de décodeur enfichables ces coges dans la bibliothèque Decoder, et sa sortie dans un objet EVAS intelligent qui affichera la lecture pour vous en tant que vidéo, ainsi que la fourniture de contrôles de niveau supérieur à rechercher, jouer, faire une pause et interroger le flux, quel que soit le dos utilisé.
EO:
Licence BSD 2-CLAUSE
Il s'agit d'une API du système d'objets de base sur lequel EFL 1.8 et sur dépendent. L'API n'est pas finalisée, alors ne dépendez pas encore en compte dans EFL 1.8, mais les futures versions EFL le verrouilleront.
Ce système d'objets fait des références simples et multiples, de refonte, de références fortes et faibles, de suppression automatique d'objets enfants, unifie la manipulation de rappel avec un seul chemin, et résume également les pointeurs d'objets pour être des recherches de table indirecte pour une sécurité accrue au moment de l'exécution.
Ephysique:
Licence BSD 2-CLAUSE
Cette bibliothèque fournit un wrapper autour de la bibliothèque de la physique des balles, ce qui permet d'être lié directement aux objets EVAS et de contrôler leur comportement comme s'il s'agissait de vrais objets physiques. Ceci est désormais désactivé par défaut car il est rarement ou jamais utilisé par quoi que ce soit.
Ethumb:
Licence LGPL V2
Cette bibliothèque fournit une API de base pour un démon de la bombe ainsi que le démon de la vignette lui-même. Le client d'Ethumb parle avec Ethumb pour faire passer la génération de miniatures à un emplacement central pour être fait de manière asynchrone.
Client Ethumb:
Licence LGPL V2
Il s'agit de la partie côté client d'Ethumb qui fournit une API aux clients pour demander à l'éthumbonne pour générer ou trouver des miniatures mises en cache des fichiers.
EVAS:
Licence BSD 2-CLAUSE
Il s'agit de la bibliothèque d'abstraction de rendu de base et de graphique de scène pour EFL. Il gère un graphique de scène 2D avec état qui définit l'intégralité du contenu de toute toile. Cela fournit des back-end pour de nombreux systèmes d'affichage comme X11, Windows, Wayland, Frame-Buffer, etc. et via de nombreuses API de rendu comme OpenGL, OpenGL-ES 2 et Pure Software Implémentations qui sont rapides et précises.
Mal:
Licence BSD 2-CLAUSE
Cette bibliothèque agit comme une bibliothèque de portage pour Windows afin de fournir des appels LIBC manquants dans MingW32 dont EFL a besoin. Il est utilisé en interne et aucun symbole n'est public.
EFL nécessite un compilateur C et C ++ par défaut. C ++ existe principalement pour interface avec des bibliothèques C ++ comme Bullet et nos liaisons C ++.
Requis par défaut:
Vous pouvez également vouloir la prise en charge de Wayland lorsque Linux. Cela permet à la prise en charge de l'EFL de cibler la prise en charge de Wayland pour les applications clients. Pour faire cette alimentation:
-Dwl=truePour un support FrameBuffer plus moderne, vous voudrez peut-être le support de rendu DRM / KMS, donc activez cela. C'est ce que vous voulez également pour le support de Wayland Compositor in Lumières car il voudra pouvoir rendre une cible FrameBuffer moderne avec un échange de tampons atomique. Pour ce faire, fournir:
-Ddrm=trueLe support FBCON hérité existe également, mais vous ne voulez probablement plus l'utiliser car il n'est plus maintenu. Cela prend en charge les tampons de trame de base comme / dev / fb ainsi que la saisie via / dev / entrée pour les claviers et les souris de manière de base. Activez ceci avec:
-Dfb=trueVous voudrez peut-être modifier le préfixe d'installation pour EFL avec:
--prefix=/path/to/prefixLe préfixe par défaut s'il n'est pas donné est "/ usr / local". Beaucoup de gens aiment utiliser des préfixes comme / opt / e ou / opt / efl ou / home / username / logiciel, etc.
Vous pouvez affecter l'optimisation de la compilation, le débogage et d'autres facteurs en définissant votre variable d'environnement CFLAGS (et CXXFLAGS ). Sachez que pour assurer la stabilité ABI, vous devez utiliser exactement les mêmes CFLAGS / CXXFLAGS pour toute la construction de l'EFL et toutes les applications / bibliothèques qui en dépendent.
Il existe de nombreuses autres options de configuration qui peuvent être utilisées, mais en général, ce n'est pas une bonne idée d'aller activer ou de désactiver les choses à moins que vous ne souhaitiez casser les choses. Les valeurs par défaut sont bien testées, les options recommandées ci-dessus étant également bien testées. Allez beaucoup plus loin et votre kilométrage peut varier sauvagement. Les fonctionnalités de désactivation sont un bon moyen de briser les fonctionnalités EFL, il n'est donc pas recommandé de jouer avec ceux-ci sans comprendre les implications. Les valeurs par défaut ont été soigneusement considérées pour fournir une fonctionnalité complète afin que les utilisateurs ne manquent rien.
Meson est le système de construction utilisé pour ce projet. Pour plus d'informations, veuillez consulter mesonbuild.com
Vous aurez besoin d'outillage de construction normal installé comme un compilateur (GCC ou Clang par exemple), PKG-Config, Ninja, tout package-DEV ou package de package pertinent si votre distribution divise les en-têtes de développement (par exemple LIBC6-DEV) etc.
Selon l'endroit où les dépendances, vous devrez peut-être définir votre variable d'environnement PKG_CONFIG_PATH comme:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfigNotez également que certaines distributions aiment ajouter des répertoires d'arc supplémentaires à vos emplacements de bibliothèque, vous devrez peut-être plus comme:
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 Vous devrez vous assurer que le répertoire de la bibliothèque de destination (par exemple /usr/local/lib se trouve dans vos fichiers /etc/ld.so.conf ou /etc/ld.so.conf.d/ et après avoir installé tout ce qui installe les bibliothèques que vous réévaluez ldconfig .
Vous pouvez également ajouter le Dirt de destination à votre chemin de variable d'environnement (voir la documentation sur votre variable de chemin de shell) telles que:
export PATH=/usr/local/bin:/usr/bin:/binCompilation normale dans / usr / local:
meson . build
ninja -C build
sudo ninja -C build installPour Meson Build Options génériques:
meson --helpPour une liste d'options spécifiques au projet prises en charge:
cat meson_options.txtPour définir 1 ou plusieurs options spécifiques au projet:
meson --prefix=/path/to -Doption=value [-Dother = value2] [...] . buildPour afficher la configuration actuelle:
meson configure buildCe qui précède ne fonctionnera qu'après au moins ce qui suit est terminé:
meson . buildComment nettoyer la construction et la configuration et démarrer frais:
rm -rf buildComment faire un Tar Tarball et vérifier sa construction: (Doit le faire à partir du clone de Git Tree et commettre toutes les modifications pour Git en premier)
ninja -C build distComment changer de préfixe:
meson --prefix=/path/to/prefix . buildComment installer dans un répertoire de destination spécifique pour l'emballage:
DESTDIR=/path/to/destdir ninja -C build installComment construire avec une sortie verbeux (les commandes complètes s'exécutent):
ninja -C build -vRemarque: NVIDIA OpenGL-ES / EGL semble avoir des bogues et des problèmes de performances. Tous les autres conducteurs fonctionnent très bien, sauf Nvidia avec OpenGL-ES / EGL. Les utilisateurs ont signalé un bégaiement et des problèmes graphiques et parfois des fenêtres ne mettent pas à jour. Si vous voulez les meilleurs résultats et que vous êtes coincé sur Nvidia et incapable de changer cela, alors:
-Dwl=false (c'est par défaut de toute façon s'il n'est pas fourni)-Ddrm=false (c'est par défaut de toute façon s'il n'est pas fourni)-Dopengl=full