
Пожалуйста, сообщите об ошибках/проблемах на git.enlightenment.org
EFL - это набор библиотек для выполнения многих общих задач, которые может иметь разработчик, такие как структуры данных, коммуникация, рендеринг, виджеты и многое другое.
Есть много компонентов внутри EFL. Они также строят различные вещи, такие как общие библиотеки, загружаемые модули плагина, а также бинарные исполняемые файлы. Различные элементы в конечном итоге будут лицензироваться по -разному. Ниже приводится краткое изложение компонентов, то, что они делают и их лицензирование.
Весь источник библиотеки находится в каталоге SRC/ LIB/. Все двоичные файлы в SRC/Bin/. Все загружаемые модули находятся в SRC/модулях/. Все файлы данных находятся в данных/ каталоге. Детали лицензирования перечислены в копировании и лицензиях/ каталоге. ПК/ каталог хранит все файлы конфигурации пакетов, чтобы помочь разработчикам создать EFL.
Для получения дополнительной документации см.:
www.enlightenment.org/doc
EFL в основном разрабатывается на Linux (GNU/Linux) и должен работать над большинством распределений, если будут обеспечены зависимости. Он был составлен и запускается также в Windows (с использованием MSYS2 + Mingw -W64) - см. Windows Docs, Mac OS X, FreeBSD и NetBSD.
Ecore:
BSD 2-CLAUSE Лицензия
Это основной петлей, системные события и уровень выполнения. Это обрабатывает запуск основного цикла, интеграция с внешними данными и источниками синхронизации (системные часы, дескрипторы файлов, системные сигналы) и создание очереди событий, ходьба, которые очереди и отправление событий для соответствующих обратных вызовов.
Ecore Audio:
BSD 2-CLAUSE Лицензия
Эта библиотека предоставляет API для воспроизведения аудио и записи. Он использует импульсную аудио под ним для обработки смешивания и политики. API для этого не следует считать стабильным прямо сейчас, потому что он полагается на EO, а EO еще не считается завершенным.
ЭКОР КОКОА:
BSD 2-CLAUSE Лицензия
Это обеспечивает обертки/абстракции вокруг API-интерфейсов Max OS-X Cocoa, чтобы помочь портированию MAC.
Ecore Con:
BSD 2-CLAUSE Лицензия
Это обеспечивает полностью на основе API домена домена TCP/UDP и UNIX, который интегрируется с основной петлей. Это означает отсутствие блокировки для отправки или получения данных, поддерживая «бесконечные буферы отправки» с хранением и катушками, выполняемыми Ecore Con. Он также поддерживает шифрование SSL, прозрачно включенное или нет при одном и том же соединении, проверке сертификата, обертывание скручивания для использования подключения HTTP (получает посты, посты и т. Д.), Асинхронные поиски DNS и дает возможность также быть сервером, а не просто клиентом, с тем же API на основе событий.
Ecore Evas:
BSD 2-CLAUSE Лицензия
Это действует как клей между целью дисплея (x11, Wayland, кадр -буфер, какао на OSX, Win32 и т. Д.) и EVAS. Он создает/обеспечивает цель для eVA, чтобы рендеринг (окно или поверхность и т. Д.) И подает входные события (клавиатура, мышь, мульти-точке) в EVAS, который затем выбирает целевой объект и вызывает обратные вызовы. Он также обеспечивает обертки/клей для манипулирования окном/поверхностью.
Ecore FB:
BSD 2-CLAUSE Лицензия
Это обеспечивает распределение виртуальных терминалов, доступ и обработку, информацию о буфере кадров, необработанную обработку ввода для клавиатуры, мыши и прикосновения (через TSLIB).
Ecore файл:
BSD 2-CLAUSE Лицензия
Это предоставляет API -интерфейсы удобства доступа к файлам для выполнения простых операций с файлами, такими как переименование, копии, каталоги листинга и многое другое. Он также поддерживает мониторинг изменения файла и загрузки URL.
Ecore IMF:
BSD 2-CLAUSE Лицензия
Это структура абстракции метода ввода, позволяющая EFL разговаривать с такими вещами, как SCIM, IBUS, Wayland и Xim. Это допускает сложный текст в таких языках, как китайский, японский и корейский.
ECORE IMF EVAS:
BSD 2-CLAUSE Лицензия
Эта библиотека приклеивает поддержку метода ввода от ECORE IMF и EVAS вместе.
ECORE ввод:
BSD 2-CLAUSE Лицензия
Это действует как общий входной слой, где несколько систем отображения могут публиковать события в одном и том же формате в очередь событий.
ECORE вход EVAS:
BSD 2-CLAUSE Лицензия
Это направляет события от ввода Ecore в заданный холст EVAS, который затем направит событие дальше к объекту назначения и обратными вызовами.
Ecore IPC:
BSD 2-CLAUSE Лицензия
Это действует как слой поверх Ecore Con, который обрабатывает целые пакеты сообщений IPC, занимаясь сжатием и переносимостью заголовка Delta, а также обеспечивает получение всего сообщения за один ход как одно сообщение IPC, независимо от размера данных полезной нагрузки. Весь API основан на событиях почти точно так же, как Ecore Con, и, таким образом, он поддерживает все транспортные слои Ecore Con.
Ecore SDL:
BSD 2-CLAUSE Лицензия
Это действует как обертка/клей вокруг SDL для обработки окна SDL, а также входные события от SDL и привязать их к основной петлю и очереди событий Ecore.
Ecore Wayland:
BSD 2-CLAUSE Лицензия
Это библиотека клей/обертки для интерфейса EFL в библиотеки Wayland, чтобы связать их с основной петлей Ecore и очередей событий.
Ecore Win32:
BSD 2-CLAUSE Лицензия
Это действует как клей/обертка вокруг API Windows Win32, чтобы связать их с основной петлей Ecore и очереди событий.
Ecore x:
BSD 2-CLAUSE Лицензия
Это библиотека для обертывания/борьбы с XLIB, создавая дело с X11 менее болезненной и меньшей работой ног, а также клей, чтобы связать их с основной петлей Ecore и очереди событий.
Эдже:
Лицензия BSD 2-CLAUSE (кроме двоичного файла EPP, который является GPLV2)
Это графическое событие, ввод, тема, анимация и библиотека абстракции тем, используемая для размещения многих элементов пользовательского интерфейса/UX в файлы данных (называемые файлами EDJ), которые определяют, как реагировать на входящие события/сигналы, а также определяют временные строки анимации, состояния, относительный масштабируемый макет и многое другое. Он поставляется с компилятором, который компиляция файлов источника «EDC» в файлы «EDJ» (которые на самом деле являются просто файлами данных, управляемыми EET). Эти файлы «EDJ» полностью переносимы и могут работать над любой ОС/архитектурой, как JPEG или PNG, могут быть портативными.
Восточноевропейское время:
BSD 2-CLAUSE Лицензия
Эта библиотека представляет собой библиотеку хранения данных, кодирования и декодирования, предназначенная для того, чтобы быть чрезвычайно компактным, быстрым и простым в использовании. Он может забрать структуры данных непосредственно из памяти и переносительно сериализовать их на диск, а затем де-сетериализировать их обратно в те же структуры данных в памяти, обрабатывая распределение и популяцию памяти для вас в 1 вызове. Он обрабатывает запасы, такие как указатели, связанные списки, массивы и хэш -таблицы, так что практически любой уровень сложности структуры данных можно легко сохранить и загрузить обратно. Он используется для файлов «EDJ» от EDJE, а также для всей конфигурации в просветлении, элементарной и терминологии. Он также поддерживает шифрование данных через SSL, подписание файлов, а также различные методы сжатия. Он также поддерживает кодирование и декодирование данных изображения в форме без потерь или потерь.
Эз:
BSD 2-CLAUSE Лицензия
Эта библиотека выступает в качестве абстракции для обнаружения аппаратных интерфейсов для датчиков, а также для съемных носителей и многого другого.
EFL:
BSD 2-CLAUSE Лицензия
Это всего лишь некоторые основные данные общего заголовка, такие как общий номер версии для EFL и как разоблачить API EO.
Efreet:
BSD 2-CLAUSE Лицензия
Эта библиотека предоставляет код для обработки стандартов freedesktop.org, таких как файлы .desktop, меню XDG, пути поиска значков и многое другое. Он предоставляет центральный демон для обработки мониторинга для изменений, с которыми библиотека говорит, и Daemon обрабатывает обновление локальных файлов кэша, которые читает библиотека.
Эйна:
LGPL V2 Лицензия
Эта библиотека предоставляет процедуры низкого уровня для общих вещей, таких как связанные списки, хэш-таблицы, растущие массивы, базовые буферы строки, общие токены строки, доступ к файлам mmaped (), абстракция потоков и блокировку, пулы памяти, сегменты копирования на записи, итераторы, матрицы, модели общих данных, красные/черные деревья, квадроциклы, простые париров SAX XML и другие.
Eio:
LGPL V2 Лицензия
Это асинхронная библиотека ввода -вывода для выполнения диска ввода/вывода без блокировки.
Эльдбус:
LGPL V2 Лицензия
Это библиотека Access DBUS, позволяющая вам создавать сервисы DBUS, а также клиентов. Этот клей в DBU в основную петлю, поэтому весь доступ асинхронно.
Эмбрион:
Небольшая лицензия (такая же, как лицензия Zlib)
Это небольшой C-подобный языковой компилятор и библиотека интерпретатора байто-кода. Это используется для сценариев в Эдже. Код основан на исходном источнике из пешеходов/малого языка, но был сделан портативным (проблемы с эндозонами) и 64 -битные проблемы фиксированы, причем библиотека времени выполнения реформирована как чрезвычайно небольшая.
Эмоция:
BSD 2-CLAUSE Лицензия
Это обертка вокруг библиотеки Decoder Gstreamer 1.x, которые в библиотеке декодеров и вывод в объект Smart Evas, который будет отображать воспроизведение для вас в качестве видео, а также обеспечивает элементы управления более высоким уровнем для поиска, воспроизведения, паузы и запроса потока независимо от используемого бэк-конца.
EO:
BSD 2-CLAUSE Лицензия
Это основной API системы объектов, который зависит от EFL 1.8 и от. API не завершен, поэтому еще не зависят от него в EFL 1.8, но будущие версии EFL будут заблокировать его.
Эта объектная система выполняет простые и множественные наследование, возмещение, сильные и слабые ссылки, автоматическое удаление дочерних объектов, объединяет обработку обратного вызова с помощью одного пути, а также тезисы указатели объектов являются косвенными поисками таблицы для повышения безопасности во время выполнения.
Ephysics:
BSD 2-CLAUSE Лицензия
Эта библиотека обеспечивает обертку вокруг библиотеки физики пули, позволяя ей напрямую связать объекты EVAS и контролировать их поведение, как если бы они были реальными физическими объектами. Теперь это отключено по умолчанию, так как это редко, если когда -либо используется чем -либо.
Этумм:
LGPL V2 Лицензия
Эта библиотека обеспечивает основной API для эфиляции демона, а также самого декора. Клиент Ethumb разговаривает с Этумбом, чтобы перенести миниатюр в центральное место, которое должно быть сделано асинхронно.
Клиент Этумба:
LGPL V2 Лицензия
Это клиентская часть этаба Ethumb, которая предоставляет клиентам API, чтобы потребовать, чтобы мини-министерство этого Ethumb создал или нашел кэшированные миниатюры файлов.
Эвас:
BSD 2-CLAUSE Лицензия
Это основная библиотека абстракции рендеринга и графа сцены для EFL. Он управляет современным графом 2D -сцены, который определяет весь содержимое любого холста. Это обеспечивает рендеринг заднего вещества для многих систем отображения, таких как x11, Windows, Wayland, Frame Buffer и т. Д., А также через многие API-интерфейсы, такие как OpenGL, OpenGL-ES 2 и чистые реализации программного обеспечения, которые являются быстрыми и точными.
Зло:
BSD 2-CLAUSE Лицензия
Эта библиотека выступает в качестве библиотеки портирования для Windows, чтобы предоставить пропущенные звонки LIBC, а не в Mingw32, которые нуждаются в EFL. Он используется внутри, и ни один символ не является общедоступным.
EFL требует компилятора C и C ++ по умолчанию. C ++ существует в основном для взаимодействия с библиотеками C ++, такими как Bullet и наши привязки C ++.
Требуется по умолчанию:
Вы также можете захотеть поддержку Уэйленда, когда на Linux. Это позволяет поддержке EFL для нацеливания поддержки Wayland для клиентских приложений. Чтобы сделать это поставка:
-Dwl=trueДля более современной поддержки кадров вы можете захотеть поддержать рендеринг DRM/KMS, поэтому включите это. Это то, что вы также хотите для поддержки композиторов Wayland в Просвещении, так как он хотел бы иметь возможность представить в современную цель кадровую кадров с обменом атомного буфера. Чтобы сделать это, предоставить:
-Ddrm=trueНаследия поддержки FBCON также существует, но вы, вероятно, больше не хотите использовать это, так как она больше не поддерживается. Это поддерживает базовые кадры, такие как /dev /fb, а также ввод через /dev /dev /вход для клавиатур и мышей в основном. Включить это с:
-Dfb=trueВы можете изменить префикс установки для EFL с:
--prefix=/path/to/prefixПрефикс по умолчанию, если не указан, «/usr/local». Многим нравится использовать префиксы, такие как/opt/e или/opt/efl или/home/username/software и т. Д.
Вы можете повлиять на оптимизацию компиляции, отладку и другие факторы, установив переменную среды CFLAGS (и CXXFLAGS ). Имейте в виду, что для обеспечения стабильности ABI вы должны использовать одни и те же самые CFLAGS / CXXFLAGS для всей сборки EFL и любых приложений / библиотек, которые от них зависят.
Есть много других вариантов настройки, которые можно использовать, но в целом не очень хорошая идея, чтобы включить или отключать вещи, если вы не хотите сломать вещи. По умолчанию хорошо протестированы, причем выше рекомендуемые варианты также хорошо протестированы. Идите намного дальше, и ваш пробег может сильно различаться. Отключение функций - хороший способ нарушения функциональности EFL, поэтому не рекомендуется связываться с ними, не понимая последствий. По умолчанию были тщательно рассчитаны обеспечить полную функциональность, поэтому пользователи ничего не упускают.
Meson - это система сборки, используемая для этого проекта. Для получения дополнительной информации см. Mesonbuild.com
Вам понадобится установленные инструменты для обычной сборки, такие как компилятор (например, GCC или Clang), PKG-Config, Ninja, любые соответствующие пакеты DEV или пакетов-Devel, если ваши заголовки разработки распределяют (например, LIBC6-DEV) и т. Д.
В зависимости от того, где зависимости, вам, возможно, придется установить переменную среды PKG_CONFIG_PATH , например:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfigТакже обратите внимание, что некоторые дистрибутивы любят добавлять дополнительные архиальные каталоги в ваши места в библиотеке, чтобы вам, возможно, придется иметь больше похоже на:
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 Вам необходимо будет убедиться, что каталог библиотеки назначения (например /usr/local/lib находится в ваших файлах /etc/ld.so.conf или /etc/ld.so.conf.d//10 и после установки всего, что устанавливает библиотеки, которые вы заново управляете ldconfig . Пожалуйста, см.
Вы также можете добавить DINETANT BIN DIR в путь переменной среды (см. Документацию по переменной вашей оболочки), например:
export PATH=/usr/local/bin:/usr/bin:/binНормальная компиляция в /usr /local:
meson . build
ninja -C build
sudo ninja -C build installДля Meson Build General Options:
meson --helpДля списка поддерживаемых специфических для проекта вариантов:
cat meson_options.txtЧтобы установить 1 или более параметров, специфичных для проекта:
meson --prefix=/path/to -Doption=value [-Dother = value2] [...] . buildЧтобы отобразить текущую конфигурацию:
meson configure buildВышеуказанное будет работать только после того, как будет сделано, по крайней мере, следующее:
meson . buildКак очистить сборку и конфигурацию и запустить свежо:
rm -rf buildКак сделать рассол и проверить его сборку: (должен сделать это от клона Git Tree и в первую очередь совершить все изменения в GIT)
ninja -C build distКак изменить префикс:
meson --prefix=/path/to/prefix . buildКак установить в определенном каталоге назначения для упаковки:
DESTDIR=/path/to/destdir ninja -C build installКак построить с помощью словесного вывода (полные команды выполняются):
ninja -C build -vПримечание: Nvidia OpenGL-ES/EGL, похоже, имеет ошибки и проблемы с производительностью. Все остальные драйверы работают отлично, кроме NVIDIA с OpenGL-ES/EGL. Пользователи сообщают о заиканиях и графических глюках, а иногда и Windows не обновляются. Если вам нужны наилучшие результаты и застряли в NVIDIA и не можете изменить это, то:
-Dwl=false (это в любом случае по умолчанию, если не предоставлено)-Ddrm=false (это по умолчанию в любом случае, если не предоставлено)-Dopengl=full т.е.