
git.enlightenment.org 에서 버그/문제를보고하십시오
EFL은 개발자가 데이터 구조, 통신, 렌더링, 위젯 등과 같은 많은 일반적인 작업을 처리하기위한 라이브러리 모음입니다.
EFL에는 많은 구성 요소가 있습니다. 또한 공유 라이브러리,로드 가능한 플러그인 모듈 및 이진 실행 파이브와 같은 다양한 것을 구축합니다. 다른 요소도 다르게 라이센스를 받게됩니다. 아래는 구성 요소, 그들이하는 일 및 라이센스의 요약입니다.
모든 라이브러리 소스는 SRC/ LIB/ 디렉토리에 있습니다. 모든 바이너리는 src/bin/에 있습니다. 모든로드 가능한 모듈은 SRC/모듈에 있습니다. 모든 데이터 파일은 데이터/ 디렉토리에 있습니다. 라이센스 세부 정보는 복사 및 라이센스/ 디렉토리에 나와 있습니다. PC/ 디렉토리는 개발자가 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 오디오 :
BSD 2-Clause 라이센스
이 라이브러리는 오디오 재생 및 녹음을위한 API를 제공합니다. 믹싱 및 정책을 처리하기 위해 펄스 오디오를 사용합니다. 이에 대한 API는 EO에 의존하고 EO는 아직 완성 된 것으로 간주되지 않기 때문에 지금은 안정적으로 간주되어서는 안됩니다.
Ecore Cocoa :
BSD 2-Clause 라이센스
이는 MAC OS-X Cocoa API 주변의 포장지/추상화를 제공하여 Mac 포팅을 돕습니다.
Ecore Con :
BSD 2-Clause 라이센스
이는 메인 루프와 통합되는 완전히 이벤트 기반 TCP/UDP 및 UNIX 도메인 소켓 API를 제공합니다. 이것은 Ecore Con이 수행하는 스토리지 및 스풀링이 포함 된 "무한 전송 버퍼"를 지원하고 데이터를 보내거나받을 차단이 없음을 의미합니다. 또한 동일한 연결, 인증서 검증, HTTP 연결 사용량 (Get, Post 등)에 대한 CURL 포장, 비동기 DNS 조회를위한 SSL 암호화를 투명하게 켜거나 동일한 이벤트 기반 API를 사용하여 서버가 될 수있는 기능을 제공합니다.
Ecore Evas :
BSD 2-Clause 라이센스
이것은 디스플레이 대상 (X11, Wayland, 프레임 버퍼, OSX의 코코아, Win32 등) 사이의 접착제 역할을합니다. EVA가 렌더링하기위한 대상 (창 또는 표면 등)을 생성/제공하고 입력 이벤트 (키보드, 마우스, 멀티 터치)를 EVA로 공급하고 대상 객체를 선택하고 콜백을 호출합니다. 또한 창/표면을 조작하기위한 포장지/접착제를 제공합니다.
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의 지원을 함께 지원합니다.
생태적 입력 :
BSD 2-Clause 라이센스
이는 여러 디스플레이 시스템이 이벤트 큐에 동일한 형식으로 이벤트를 게시 할 수있는 일반 입력 계층 역할을합니다.
Ecore Input Evas :
BSD 2-Clause 라이센스
이것은 Ecore Input에서 주어진 EVAS 캔버스로 이벤트를 진행 한 다음 이벤트를 대상 객체 및 콜백으로 더 전환합니다.
Ecore IPC :
BSD 2-Clause 라이센스
이것은 전체 IPC 메시지 패킷을 처리하고 헤더 델타 압축 및 이식성을 다루는 전체 IPC 메시지 패킷을 처리하고 페이로드 데이터 크기에 관계없이 단일 IPC 메시지로 전체 메시지를 수신하도록 보장하는 Ecore Con 위에있는 레이어 역할을합니다. 전체 API는 Ecore Con과 거의 같은 이벤트 이벤트이므로 Ecore CONUS가 지원하는 모든 전송 계층을 지원합니다.
Ecore SDL :
BSD 2-Clause 라이센스
이것은 SDL Wind
Ecore Wayland :
BSD 2-Clause 라이센스
이것은 EFL을 Wayland 라이브러리와 인터페이스하여 Ecore 메인 루프 및 이벤트 큐에 연결하는 접착제/래퍼 라이브러리입니다.
Ecore Win32 :
BSD 2-Clause 라이센스
이것은 Windows Win32 API 주변의 접착제/래퍼 역할을하여 Ecore 메인 루프 및 이벤트 큐에 묶습니다.
Ecore X :
BSD 2-Clause 라이센스
이것은 XLIB를 마무리/처리하는 도서관으로 X11을 덜 고통스럽고 풋워크를 다루고 접착제를 사용하여 Ecore 메인 루프 및 이벤트 대기열에 묶습니다.
Edje :
BSD 2-Clause 라이센스 (GPLV2 인 EPP 바이너리 제외)
이것은 많은 UI/UX 요소를 들어오는 이벤트/신호에 반응하는 방법을 정의하고 애니메이션 타임 라인, 상태, 상대적으로 확장 가능한 레이아웃 등을 정의하는 데이터 파일 (EDJ 파일)에 많은 UI/UX 요소를 배치하는 데 사용되는 그래픽 이벤트, 입력, 테마, 애니메이션 및 테마 추상화 라이브러리입니다. 소스 "EDC"파일을 "EDJ"파일 (실제로 EET에서 관리하는 데이터 파일)으로 컴파일하는 컴파일러가 제공됩니다. 이 "EDJ"파일은 완전 휴대용이며 JPEG 또는 PNG와 마찬가지로 모든 OS/아키텍처에서 작동 할 수 있습니다.
eet :
BSD 2-Clause 라이센스
이 라이브러리는 매우 작고 빠르며 사용하기 쉽도록 설계된 데이터 저장소, 인코딩 및 디코딩 라이브러리입니다. 데이터 구조를 메모리에서 직접 가져 와서 디스크로 직접 직렬화 한 다음 메모리의 동일한 데이터 구조로 바로 다시 해제 할 수 있으며, 1 호의 통화로 할당 및 메모리 모집단을 처리합니다. 포인터, 링크 된 목록, 배열 및 해시 테이블과 같은 간접화를 처리하므로 거의 모든 수준의 데이터 구조 복잡성을 쉽게 저장하고로드 할 수 있습니다. EDJE의 "EDJ"파일과 Enlightenment, Elementary 및 Terminology의 모든 구성에 사용됩니다. SSL, 파일 서명 및 다양한 압축 기술을 통한 데이터 암호화도 지원합니다. 또한 이미지 데이터의 인코딩 및 디코딩을 무손실 또는 손실 형태로 지원합니다.
eeze :
BSD 2-Clause 라이센스
이 라이브러리는 센서를위한 하드웨어 인터페이스 및 탈착식 미디어 등을 발견하는 데 대한 추상화 역할을합니다.
EFL :
BSD 2-Clause 라이센스
이것은 EFL의 공통 버전 번호와 EO API를 노출시키는 방법과 같은 핵심 공통 헤더 데이터 일뿐입니다.
efreet :
BSD 2-Clause 라이센스
이 라이브러리는 .desktop 파일, XDG 메뉴, 아이콘 검색 경로 등과 같은 FreedeskTop.org 표준을 처리하기위한 코드를 제공합니다. 라이브러리가 말하는 변경 사항에 대한 모니터링을 처리 할 수있는 중앙 데몬을 제공하고 데몬은 라이브러리가 읽는 로컬 캐시 파일을 업데이트합니다.
Eina :
LGPL V2 라이센스
이 라이브러리는 링크 된 목록, 해시 테이블, 성장 가능한 어레이, 기본 문자열 버퍼, 공유 문자열 토큰, mmaped () 파일 액세스, 스레드 추상화 및 잠금, 메모리 풀, 복사본 부문, 반복자, 일반 데이터 모델, 레드/블랙 트리, 쿼드 트리, 간단한 SAX XML Parser 등과 같은 일반적인 것들에 대한 저수준 루틴을 제공합니다.
EIO :
LGPL V2 라이센스
이것은 차단하지 않고 디스크 I/O를 수행하기위한 비동기 I/O 라이브러리입니다.
eldbus :
LGPL V2 라이센스
클라이언트뿐만 아니라 DBUS 서비스를 만들 수있는 DBUS 액세스 라이브러리입니다. 이 접착제는 DBUS의 메인 루프로의 접착제로 모든 액세스가 비동기식입니다.
태아:
작은 라이센스 (Zlib 라이센스와 동일)
이것은 작은 C와 같은 언어 컴파일러 및 바이트 코드 통역 라이브러리입니다. 이것은 Edje에서 스크립팅에 사용됩니다. 이 코드는 Pawn/Small 언어의 원본 소스를 기반으로하지만 휴대용 (Endianness Issue 고정)과 64 비트 문제가 고정되어 런타임 라이브러리가 매우 작아졌습니다.
감정:
BSD 2-Clause 라이센스
이것은 Decoder 라이브러리의 GStreamer 1.X Pluggable Decoder 라이브러리 주변의 래퍼이며, 비디오가 재생할 때 귀하를위한 재생을 표시 할 수있는 스마트 EVAS 객체로의 출력뿐만 아니라 사용 된 백엔드에 관계없이 스트림을 찾고 재생, 일시 중지 및 쿼리 할 수있는 더 높은 수준의 컨트롤을 제공합니다.
EO :
BSD 2-Clause 라이센스
이것은 EFL 1.8에 의존하는 핵심 객체 시스템 API입니다. API는 확정되지 않았으므로 EFL 1.8에서는 아직 의존하지 않지만 향후 EFL 버전은이를 잠글 것입니다.
이 객체 시스템은 간단하고 다중 상속, 강조, 강력하고 약한 참조, 자식 객체의 자동 삭제, 단일 경로로 콜백 처리를 통합하며 객체 포인터를 초록 런타임에 안전하게 향상시키기위한 간접 테이블 조회가됩니다.
ephysics :
BSD 2-Clause 라이센스
이 라이브러리는 Bullet Physics Library 주변의 래퍼를 제공하여 Evas 객체와 직접 연결되어 실제 물리적 물체 인 것처럼 행동을 제어 할 수 있습니다. 이것은 무엇이든 사용하는 경우 거의 없기 때문에 이제는 기본적으로 비활성화됩니다.
Ethumb :
LGPL V2 라이센스
이 라이브러리는 썸네일 데몬과 썸네일 데몬 자체에 대한 코어 API를 제공합니다. Ethumb Client는 Ethumb와 대화하여 썸네일 생성을 중앙 위치로 전달하여 비동기 적으로 수행합니다.
Ethumb 클라이언트 :
LGPL V2 라이센스
이는 Ethumb의 클라이언트 측 부분으로, 클라이언트가 Ethumb 썸네일러에게 캐시 된 파일의 축소판을 생성하거나 찾도록 요청할 수있는 API를 제공합니다.
에바 :
BSD 2-Clause 라이센스
이것은 EFL의 핵심 렌더링 및 장면 그래프 추상화 라이브러리입니다. 모든 캔버스의 전체 내용을 정의하는 Stateful 2D 장면 그래프를 관리합니다. 이는 X11, Windows, Wayland, Frame-Buffer 등과 같은 많은 디스플레이 시스템의 백엔드 및 OpenGL, OpenGL-ES 2 및 빠르고 정확한 순수한 소프트웨어 구현을 통해 백엔드를 렌더링합니다.
사악한:
BSD 2-Clause 라이센스
이 라이브러리는 Windows의 포팅 라이브러리 역할을합니다. Windows는 EFL이 필요로하는 Mingw32가 아닌 누락 된 LIBC 호출을 제공합니다. 내부적으로 사용되며 기호는 공개되지 않습니다.
EFL에는 기본적으로 C 및 C ++ 컴파일러가 필요합니다. C ++는 대부분 총알 및 C ++ 바인딩과 같은 C ++ 라이브러리에 대한 인터페이스에 존재합니다.
기본적으로 필요 :
Linux에서 Wayland 지원을 원할 수도 있습니다. 이를 통해 EFL을 지원하면 클라이언트 응용 프로그램에 대한 Wayland 지원 대상이됩니다. 이 공급을 수행하려면 :
-Dwl=true보다 현대적인 프레임 버퍼 지원을 위해 DRM/KMS 렌더링 지원을 원할 수도 있으므로이를 활성화하십시오. 이것은 원자 버퍼 스와핑을 통해 현대 프레임 버퍼 대상으로 렌더링 할 수 있기를 원하기 때문에 Wayland Compositor Support를 깨달음에서 원하는 것입니다. 이를 위해 :
-Ddrm=true레거시 FBCON 지원도 존재하지만 더 이상 유지되지 않으므로 더 이상 사용하고 싶지 않을 것입니다. 이는 /dev /fb와 같은 기본 프레임 버퍼와 기본 방식으로 키보드 및 마우스에 대한 /dev /입력을 통한 입력을 지원합니다. 다음과 같이 활성화합니다.
-Dfb=trueEFL의 설치 접두사를 다음과 같이 변경할 수 있습니다.
--prefix=/path/to/prefix주어지지 않은 경우 기본 접두사는 "/usr/local"입니다. 많은 사람들이/opt/e 또는/opt/efl 또는/home/username/software와 같은 접두사를 사용하는 것을 좋아합니다.
CFLAGS 환경 변수 (및 CXXFLAGS )를 설정하여 컴파일 최적화, 디버깅 및 기타 요소에 영향을 줄 수 있습니다. ABI 안정성을 보장하려면 EFL의 모든 빌드 및 이에 의존하는 모든 응용 프로그램 / 라이브러리에 대해 동일한 CFLAGS / CXXFLAGS 사용해야합니다.
사용할 수있는 다른 구성 옵션이 많이 있지만 일반적으로 물건을 깨고 싶지 않으면 물건을 활성화하거나 비활성화하는 것이 좋지 않습니다. 기본값은 잘 테스트되며 위의 권장 옵션도 잘 테스트됩니다. 훨씬 더 나아 가면 마일리지가 크게 다를 수 있습니다. 기능을 비활성화하는 것은 EFL 기능을 깨는 좋은 방법이므로 그 의미를 이해하지 않고이를 엉망으로 만드는 것이 좋습니다. 기본값은 전체 기능을 제공하기 위해 신중하게 고려되므로 사용자가 아무것도 누락하지 않을 것입니다.
Meson 은이 프로젝트에 사용되는 빌드 시스템입니다. 자세한 내용은 mesonbuild.com을 참조하십시오
컴파일러 (예 : GCC 또는 Clang), PKG-CONFIG, NINJA, 관련 패키지 데브 또는 패키지 데블 패키지와 같은 일반 빌드 툴링이 설치되어야합니다. 배포판이 개발 헤더 (예 : 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/ 파일에 있고 ldconfig 다시 실행하는 라이브러리를 설치하는 모든 것을 설치 한 후 LDConfig 및 Ld.So.conf의 관련 문서를 참조하십시오.
또한 환경 변수 경로에 대상 빈 디르를 추가 할 수도 있습니다 (쉘 경로 변수에 대한 문서 참조).
export PATH=/usr/local/bin:/usr/bin:/bin/usr /local의 정상 편집 :
meson . build
ninja -C build
sudo ninja -C build installMeson 빌드 일반 옵션 :
meson --help지원되는 프로젝트 별 옵션 목록 :
cat meson_options.txt1 개 이상의 프로젝트 별 옵션을 설정하려면 :
meson --prefix=/path/to -Doption=value [-Dother = value2] [...] . build현재 구성을 표시하려면 :
meson configure build위는 다음과 같은 최소한 다음이 완료된 후에 만 작동합니다.
meson . build빌드 및 구성을 정리하고 새로 시작하는 방법 :
rm -rf buildDist Tarball을 만들고 빌드를 확인하는 방법 : (Git Tree Clone에서해야하고 모든 변경 사항을 먼저 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에는 버그와 성능 문제가있는 것 같습니다. OpenGL-ES/EGL과 함께 NVIDIA를 제외하고 다른 모든 운전자는 잘 작동합니다. 사용자는 말더듬과 그래픽 결함을보고했으며 때로는 Windows가 업데이트되지 않습니다. 최상의 결과를 원하고 nvidia에 붙어 있고 변경할 수 없다면 :
-Dwl=false 활성화하지 않도록하십시오 (제공되지 않으면 기본값입니다).-Ddrm=false 활성화하지 않도록하십시오 (제공되지 않으면 기본값입니다).-Dopengl=full