
Harap laporkan bug/masalah di git.enlightenment.org
EFL adalah kumpulan perpustakaan untuk menangani banyak tugas umum yang mungkin dimiliki pengembang seperti struktur data, komunikasi, rendering, widget dan banyak lagi.
Ada banyak komponen di dalam EFL. Mereka juga membangun berbagai hal seperti perpustakaan bersama, modul plug-in yang dapat dimuat dan juga executable biner. Elemen yang berbeda juga akan dilisensikan secara berbeda. Di bawah ini adalah ikhtisar komponen, apa yang mereka lakukan dan lisensi mereka.
Semua sumber perpustakaan ada di direktori SRC/ LIB/. Semua binari berada di SRC/bin/. Semua modul yang dapat dimuat ada di SRC/Modul/. Semua file data ada di Data/ Direktori. Rincian lisensi tercantum dalam penyalinan dan lisensi/ direktori. PC/ Direktori menyimpan semua file konfigurasi paket yang diinstal untuk membantu pengembang membangun terhadap EFL.
Untuk lebih banyak dokumentasi, silakan lihat:
www.enlightenment.org/doc
EFL terutama dikembangkan di Linux (GNU/Linux) dan harus bekerja pada sebagian besar distribusi selama dependensi disediakan. Ini telah dikompilasi dan dijalankan juga pada Windows (menggunakan MSYS2 + MINGW -W64) - silakan lihat Windows Documents, Mac OS X, FreeBSD dan NetBSD.
Ecore:
Lisensi BSD 2-Clause
Ini adalah loop utama inti, acara sistem dan lapisan eksekusi. Penanganan ini menjalankan loop utama, mengintegrasikan dengan data eksternal dan sumber waktu (jam sistem, deskriptor file, sinyal sistem), dan memproduksi antrian acara, berjalan mengantri dan mengirim acara ke panggilan balik yang sesuai.
Audio Ecore:
Lisensi BSD 2-Clause
Perpustakaan ini menyediakan API untuk pemutaran dan perekaman audio. Menggunakan audio pulsa di bawahnya untuk menangani pencampuran dan kebijakan. API untuk ini tidak boleh dianggap stabil sekarang karena bergantung pada EO dan EO belum dianggap selesai.
Ecore Cocoa:
Lisensi BSD 2-Clause
Ini memberikan pembungkus/abstraksi di sekitar Max OS-X Cocoa API untuk membantu porting Mac.
Ecore Con:
Lisensi BSD 2-Clause
Ini menyediakan TCP/UDP dan UNIX Socket API yang sepenuhnya berbasis acara yang terintegrasi dengan loop utama. Ini berarti tidak ada pemblokiran untuk mengirim atau menerima data, mendukung "buffer pengiriman tak terbatas" dengan penyimpanan dan spooling yang dilakukan oleh Ecore Con. Ini juga mendukung enkripsi SSL secara transparan dihidupkan atau tidak pada koneksi yang sama, verifikasi sertifikat, pembungkus keriting untuk penggunaan koneksi HTTP (get, post, dll.), Pencarian DNS asinkron dan menyediakan kemampuan untuk juga menjadi server, bukan hanya klien, dengan API berbasis acara yang sama.
Ecore Evas:
Lisensi BSD 2-Clause
Ini bertindak sebagai lem antara target tampilan (X11, Wayland, Frame Buffer, Cocoa di OSX, Win32 dll.) Dan EVAS. Ini menciptakan/memberikan target bagi EVAS untuk diterjemahkan ke (jendela atau permukaan dll.) Dan memberi makan peristiwa input (keyboard, mouse, multi-sentuh) ke EVAS, yang kemudian memilih objek target dan memanggil panggilan balik. Ini juga menyediakan pembungkus/lem untuk memanipulasi jendela/permukaan.
Ecore FB:
Lisensi BSD 2-Clause
Ini menyediakan alokasi terminal virtual, akses dan penanganan, informasi buffer bingkai, penanganan input mentah untuk keyboard, mouse dan sentuhan (melalui TSLIB).
File Ecore:
Lisensi BSD 2-Clause
Ini menyediakan API kenyamanan akses file untuk melakukan operasi file sederhana seperti ganti nama, salinan, direktori daftar dan banyak lagi. Ini juga mendukung pemantauan perubahan file dan unduhan URL.
Ecore IMF:
Lisensi BSD 2-Clause
Ini adalah kerangka abstraksi metode input untuk memungkinkan EFL berbicara dengan hal -hal seperti SCIM, Ibus, Wayland dan XIM. Ini memungkinkan entri teks yang kompleks dalam bahasa seperti Cina, Jepang dan Korea.
ECORE IMF EVAS:
Lisensi BSD 2-Clause
Perpustakaan ini melemahkan dukungan metode input dari Ecore IMF dan EVAS bersama -sama.
Input Ecore:
Lisensi BSD 2-Clause
Ini bertindak sebagai lapisan input generik di mana beberapa sistem tampilan dapat memposting peristiwa dalam format yang sama dengan antrian acara.
ECORE INPUT EVAS:
Lisensi BSD 2-Clause
Ini merutekan acara dari input Ecore ke kanvas EVAS yang diberikan yang kemudian akan merutekan acara lebih jauh ke objek tujuan dan panggilan balik.
Ecore IPC:
Lisensi BSD 2-Clause
Ini bertindak sebagai lapisan di atas Ecore Con yang menangani seluruh paket pesan IPC, berurusan dengan header Delta Compression and Portability, serta memastikan seluruh pesan diterima sekaligus sebagai satu pesan IPC, terlepas dari ukuran data payload. Seluruh API adalah peristiwa yang didasarkan hampir persis seperti Ecore Con dan dengan demikian mendukung semua Lapisan Transportasi Dukungan Ecore Con.
Ecore SDL:
Lisensi BSD 2-Clause
Ini bertindak sebagai pembungkus/lem di sekitar SDL untuk menangani jendela SDL serta acara input dari SDL dan mengikatnya ke loop utama Ecore dan antrian acara.
Ecore Wayland:
Lisensi BSD 2-Clause
Ini adalah perpustakaan lem/pembungkus untuk menghubungkan EFL ke perpustakaan Wayland untuk mengikatnya ke dalam loop utama Ecore dan antrian acara.
Ecore Win32:
Lisensi BSD 2-Clause
Ini bertindak sebagai lem/pembungkus di sekitar Windows Win32 API untuk mengikat mereka ke dalam loop utama Ecore dan antrian acara.
Ecore X:
Lisensi BSD 2-Clause
Ini adalah perpustakaan untuk membungkus/menangani XLIB membuat berurusan dengan X11 yang kurang menyakitkan dan lebih sedikit gerak kaki serta lem untuk mengikat ini ke dalam loop utama Ecore dan antrian acara.
Edje:
Lisensi BSD 2-Clause (kecuali Binary EPP yang merupakan GPLV2)
Ini adalah acara grafis, input, tema, animasi dan pustaka abstraksi tema yang digunakan untuk menempatkan banyak elemen UI/UX ke dalam file data (disebut file EDJ) yang menentukan cara bereaksi terhadap peristiwa/sinyal yang masuk, dan mendefinisikan baris waktu animasi, status, tata letak yang dapat diskalakan dan banyak lagi. Muncul dengan kompiler yang mengkompilasi sumber "EDC" file ke dalam file "EDJ" (yang sebenarnya hanya file data yang dikelola oleh EET). File "EDJ" ini sepenuhnya portabel dan dapat bekerja pada OS/arsitektur apa pun seperti JPEG atau PNG mungkin portabel.
EET:
Lisensi BSD 2-Clause
Perpustakaan ini adalah perpustakaan penyimpanan data, pengkodean dan decoding yang dirancang untuk menjadi sangat kompak, cepat dan mudah digunakan. Ini dapat mengambil struktur data langsung dari memori dan membuat serial dengan portel ke disk, kemudian menghilangkan serial mereka kembali ke struktur data yang sama dalam memori, menangani alokasi dan populasi memori semua untuk Anda dalam panggilan 1. Ini menangani ketidakpedulian seperti pointer, daftar tertaut, array dan tabel hash juga, sehingga hampir semua tingkat kompleksitas struktur data dapat dengan mudah disimpan dan dimuat kembali. Ini digunakan untuk file "EDJ" oleh EDJE serta semua konfigurasi dalam Pencerahan, Dasar dan Terminologi. Ini mendukung enkripsi data juga melalui SSL, penandatanganan file, serta berbagai teknik kompresi. Ini juga mendukung pengkodean dan decoding data gambar dalam bentuk lossless atau lossy.
Eeze:
Lisensi BSD 2-Clause
Perpustakaan ini bertindak sebagai abstraksi untuk menemukan antarmuka perangkat keras untuk sensor serta media yang dapat dilepas dan banyak lagi.
EFL:
Lisensi BSD 2-Clause
Ini hanya beberapa data header umum inti seperti nomor versi umum untuk EFL dan cara mengekspos API EO.
Efreet:
Lisensi BSD 2-Clause
Perpustakaan ini menyediakan kode untuk menangani standar freedesktop.org seperti file .desktop, menu XDG, jalur pencarian ikon dan banyak lagi. Ini menyediakan daemon sentral untuk menangani pemantauan untuk perubahan yang dibicarakan perpustakaan, dan daemon menangani memperbarui file cache lokal yang dibaca perpustakaan.
Eina:
Lisensi LGPL V2
Perpustakaan ini menyediakan rutinitas tingkat rendah untuk hal-hal umum seperti daftar tertaut, tabel hash, array yang dapat ditanam, buffer string dasar, token string bersama, akses file mmaped (), abstraksi benang dan penguncian, kumpulan memori, segmen copy-on-write, iTerator, model par umum, pohon merah, pohon red/black-trees, dan pars.
EIO:
Lisensi LGPL V2
Ini adalah perpustakaan I/O asinkron untuk melakukan disk I/O tanpa pemblokiran.
Eldbus:
Lisensi LGPL V2
Ini adalah pustaka akses DBUS untuk memungkinkan Anda membuat layanan DBUS serta klien. Perekat ini di DBU ke loop utama sehingga semua akses tidak sinkron.
Embrio:
Lisensi Kecil (Sama seperti Lisensi Zlib)
Ini adalah kompiler bahasa C-mirip C dan pustaka interpreter byte-code. Ini digunakan untuk skrip di EDJE. Kode ini didasarkan pada sumber asli dari gadai/bahasa kecil tetapi telah dibuat portabel (endianness isu -isu tetap) dan masalah 64bit diperbaiki, dengan pustaka runtime direfaktor menjadi sangat kecil.
Emosi:
Lisensi BSD 2-Clause
Ini adalah pembungkus di sekitar pustaka decoder Gstreamer 1.x yang dapat dilemkan di perpustakaan decoder, dan outputnya menjadi objek EVAS pintar yang akan menampilkan pemutaran untuk Anda saat video diputar, serta memberikan kontrol level yang lebih tinggi untuk mencari, memutar, menjeda dan menanyakan aliran terlepas dari ujung belakang yang digunakan.
EO:
Lisensi BSD 2-Clause
Ini adalah API Sistem Objek Inti yang bergantung pada EFL 1.8. API belum diselesaikan, jadi jangan bergantung padanya di EFL 1.8, tetapi versi EFL di masa depan akan menguncinya.
Sistem objek ini melakukan warisan sederhana dan berganda, referensi refcount, kuat dan lemah, penghapusan otomatis objek anak, menyatukan penanganan callback dengan satu jalur, dan juga abstrak pointer objek untuk menjadi pencarian tabel tidak langsung untuk peningkatan keamanan saat runtime.
Ephysics:
Lisensi BSD 2-Clause
Perpustakaan ini menyediakan pembungkus di sekitar perpustakaan Fisika Bullet, memungkinkannya dihubungkan secara langsung dengan objek EVAS dan mengendalikan perilaku mereka seolah -olah mereka adalah objek fisik yang nyata. Ini sekarang dinonaktifkan secara default karena jarang jika pernah digunakan oleh apa pun.
Ethumb:
Lisensi LGPL V2
Perpustakaan ini menyediakan API inti untuk daemon thumbnailing serta daemon thumbnail itu sendiri. Klien Ethumb berbicara dengan Ethumb untuk melepaskan generasi thumbnail ke lokasi pusat yang harus dilakukan secara tidak sinkron.
Klien Ethumb:
Lisensi LGPL V2
Ini adalah bagian sisi klien dari Ethumb yang menyediakan API bagi klien untuk meminta thumbnailer Ethumb untuk menghasilkan atau menemukan thumbnail file yang di-cache.
Evas:
Lisensi BSD 2-Clause
Ini adalah rendering inti dan pustaka abstraksi grafik adegan untuk EFL. Ini mengelola grafik adegan 2D stateful yang mendefinisikan seluruh konten kanvas apa pun. Ini memasok back-end untuk banyak sistem tampilan seperti X11, Windows, Wayland, Frame-Buffer dll. Dan melalui banyak API rendering seperti OpenGL, OpenGL-ES 2, dan implementasi perangkat lunak murni yang cepat dan akurat.
Kejahatan:
Lisensi BSD 2-Clause
Perpustakaan ini bertindak sebagai perpustakaan porting untuk Windows untuk memberikan panggilan LIBC yang hilang bukan di Mingw32 yang dibutuhkan EFL. Ini digunakan secara internal dan tidak ada simbol yang publik.
EFL membutuhkan kompiler C dan C ++ secara default. C ++ sebagian besar ada untuk antarmuka ke perpustakaan C ++ seperti Bullet dan binding C ++ kami.
Dibutuhkan secara default:
Anda mungkin juga menginginkan dukungan Wayland saat berada di Linux. Ini memungkinkan dukungan untuk EFL untuk menargetkan dukungan Wayland untuk aplikasi klien. Untuk melakukan pasokan ini:
-Dwl=trueUntuk dukungan Framebuffer yang lebih modern, Anda mungkin ingin dukungan Rendering DRM/KMS jadi aktifkan ini. Inilah yang juga Anda inginkan untuk dukungan kompositor Wayland dalam Pencerahan karena ingin dapat memberikan target Framebuffer modern dengan pertukaran penyangga atom. Untuk melakukan ini menyediakan:
-Ddrm=trueDukungan FBCON Legacy juga ada, tetapi Anda mungkin tidak lagi ingin menggunakan ini karena tidak dipertahankan lagi. Ini mendukung buffer bingkai dasar seperti /dev /fb serta input melalui /dev /input untuk keyboard dan tikus dengan cara dasar. Aktifkan ini dengan:
-Dfb=trueAnda mungkin ingin mengubah awalan instalasi untuk EFL dengan:
--prefix=/path/to/prefixAwalan default jika tidak diberikan adalah "/usr/lokal". Banyak orang suka menggunakan awalan seperti/opt/e atau/opt/eFL atau/home/username/software dll.
Anda dapat memengaruhi optimasi kompilasi, debugging, dan faktor -faktor lain dengan mengatur variabel lingkungan CFLAGS Anda (dan CXXFLAGS ). Ketahuilah bahwa untuk memastikan stabilitas ABI Anda harus menggunakan CFLAGS / CXXFLAGS yang sama persis untuk semua pembuatan EFL dan aplikasi / perpustakaan apa pun yang bergantung padanya.
Ada banyak opsi konfigurasi lain yang dapat digunakan, tetapi secara umum bukan ide yang baik untuk mengaktifkan atau menonaktifkan hal -hal kecuali Anda ingin memecahkan sesuatu. Defaultnya diuji dengan baik, dengan opsi yang disarankan di atas juga diuji dengan baik. Pergi jauh lebih jauh dan jarak tempuh Anda dapat sangat bervariasi. Menonaktifkan fitur adalah cara yang baik untuk melanggar fungsionalitas EFL, sehingga tidak disarankan untuk mengacaukan ini tanpa memahami implikasinya. Default telah dipertimbangkan dengan cermat untuk memberikan fungsionalitas penuh sehingga pengguna tidak akan kehilangan apapun.
Meson adalah sistem build yang digunakan untuk proyek ini. Untuk informasi lebih lanjut silakan lihat mesonbuild.com
Anda akan memerlukan perkakas bangunan normal yang diinstal seperti kompiler (GCC atau dentang misalnya), pkg-config, ninja, paket-dev-dev atau paket-paket yang relevan jika distribusi Anda membagi header pengembangan (EG LIBC6-dev) dll.
Tergantung di mana dependensi, Anda mungkin harus mengatur variabel lingkungan PKG_CONFIG_PATH seperti:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfigPerhatikan juga bahwa beberapa distribusi suka menambahkan direktori Arch tambahan ke lokasi perpustakaan Anda sehingga Anda mungkin harus memiliki lebih banyak seperti:
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 Anda perlu memastikan bahwa direktori perpustakaan tujuan (EG /usr/local/lib ada di file /etc/ld.so.conf atau /etc/ld.so.conf.d/ Anda dan setelah menginstal apa pun yang menginstal pustaka yang Anda ldconfig kembali.
Anda mungkin juga ingin menambahkan tempat sampah tujuan ke jalur variabel lingkungan Anda (lihat dokumentasi pada variabel jalur shell Anda) seperti:
export PATH=/usr/local/bin:/usr/bin:/binKompilasi normal di /usr /lokal:
meson . build
ninja -C build
sudo ninja -C build installUntuk meson membangun opsi generik:
meson --helpUntuk daftar opsi spesifik proyek yang didukung:
cat meson_options.txtUntuk mengatur 1 atau lebih opsi spesifik proyek:
meson --prefix=/path/to -Doption=value [-Dother = value2] [...] . buildUntuk menampilkan konfigurasi saat ini:
meson configure buildDi atas hanya akan bekerja setelah setidaknya berikut ini dilakukan:
meson . buildCara membersihkan build dan config dan mulai segar:
rm -rf buildCara Membuat Tarball Dist dan Memeriksa Bangunannya: (Harus melakukannya dari klon pohon git dan melakukan semua perubahan pada git terlebih dahulu)
ninja -C build distCara mengubah awalan:
meson --prefix=/path/to/prefix . buildCara menginstal di direktori tujuan tertentu untuk kemasan:
DESTDIR=/path/to/destdir ninja -C build installCara membangun dengan output verbose (perintah lengkap dijalankan):
ninja -C build -vCatatan: NVIDIA OpenGL-ES/EGL tampaknya memiliki bug dan masalah kinerja. Semua pengemudi lain berfungsi dengan baik kecuali nvidia dengan OpenGl-ES/EGL. Pengguna telah melaporkan kegelisahan dan gangguan grafis dan kadang -kadang Windows tidak memperbarui. Jika Anda menginginkan hasil terbaik dan terjebak di nvidia dan tidak dapat mengubahnya, maka:
-Dwl=false (ini tetap default jika tidak disediakan)-Ddrm=false (ini tetap default jika tidak disediakan)-Dopengl=full