
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を参照してください。
エコール:
BSD 2-Clauseライセンス
これは、コアメインループ、システムイベント、および実行レイヤーです。これにより、メインループの実行、外部データおよびタイミングソース(システムクロック、ファイル記述子、システム信号)と統合し、イベントキューを作成し、そのキューをウォーキングし、イベントを適切なコールバックに発送します。
Ecoreオーディオ:
BSD 2-Clauseライセンス
このライブラリは、オーディオ再生と録音用のAPIを提供します。その下のパルスオーディオを使用して、混合とポリシーを処理します。これのAPIは、EOに依存しているため、まだ確定されているとは見なされていないため、現在安定していると見なされるべきではありません。
エコールココア:
BSD 2-Clauseライセンス
これにより、MAX OS-X Cocoa APIをめぐるラッパー/抽象化が提供され、MACポーティングが役立ちます。
EcoreCon:
BSD 2-Clauseライセンス
これにより、メインループと統合された完全にイベントベースのTCP/UDPおよびUNIXドメインソケットAPIが提供されます。これは、データを送信または受信するためのブロッキングがないことを意味し、Ecore Conによってストレージとスプールが行われている「無限の送信バッファー」をサポートします。また、SSL暗号化が透過的にオンになっているか、同じ接続、証明書の確認、HTTP接続の使用(取得、投稿など)のカールラッピング、非同期DNSルックアップをサポートし、同じイベントベースのAPIを持つクライアントだけでなくサーバーになる機能を提供します。
エコールエヴァス:
BSD 2-Clauseライセンス
これは、ディスプレイターゲット(X11、ウェイランド、フレームバッファー、OSXのココア、Win32など)とEVASの間の接着剤として機能します。 EVAがレンダリングするターゲット(ウィンドウまたは表面など)を作成し、入力イベント(キーボード、マウス、マルチタッチ)にEVASにフィードし、ターゲットオブジェクトを選択してコールバックを呼び出します。また、窓/表面を操作するためのラッパー/接着剤を提供します。
Ecore FB:
BSD 2-Clauseライセンス
これにより、仮想端子割り当て、アクセスと取り扱い、フレームバッファー情報、キーボードの生の入力処理、マウス、タッチ(TSLIB経由)が提供されます。
ecoreファイル:
BSD 2-Clauseライセンス
これにより、改名、コピー、リスティングディレクトリなどの簡単なファイル操作を実行するためのファイルアクセスコンビニエンスAPIが提供されます。また、ファイルの変更監視とURLのダウンロードもサポートしています。
EcoreIMF:
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キャンバスにイベントをルーティングし、イベントを宛先オブジェクトとコールバックにさらにルーティングします。
EcoreIPC:
BSD 2-Clauseライセンス
これは、IPCメッセージパケット全体を処理し、ヘッダーデルタの圧縮と移植性を扱うエコールコンの上のレイヤーとして機能し、ペイロードデータサイズに関係なく、単一のIPCメッセージとして一度にメッセージ全体が受信されるようにします。 API全体は、Ecore Conとほぼ同じようにイベントに基づいているため、Ecore Conサポートがサポートするすべての輸送層をサポートします。
EcoreSDL:
BSD 2-Clauseライセンス
これは、SDLの周りのラッパー/接着剤として機能し、SDLウィンドウとSDLからの入力イベントを処理し、それらをEcoreメインループおよびイベントキューに結び付けます。
エコールウェイランド:
BSD 2-Clauseライセンス
これは、ECOREメインループとイベントキューにEFLを結びつけるためにEFLをWaylandライブラリにインターフェースする接着剤/ラッパーライブラリです。
EcoreWin32:
BSD 2-Clauseライセンス
これは、Windows Win32 APIの周りの接着剤/ラッパーとして機能し、それらをエコールメインループとイベントキューに結び付けます。
エコールX:
BSD 2-Clauseライセンス
これは、XLIBをラップ/取引するライブラリであり、X11を扱うことを痛みを軽減し、フットワークを減らし、接着剤をエコールメインループとイベントキューに結び付けるための接着剤です。
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」ファイルと、啓発、初等、用語のすべての構成に使用されます。 SSL、ファイルの署名、およびさまざまな圧縮技術を介したデータの暗号化もサポートしています。また、ロスレスまたは損失のあるフォームでの画像データのエンコードとデコードもサポートしています。
Eeze:
BSD 2-Clauseライセンス
このライブラリは、センサーや取り外し可能なメディアなどのハードウェアインターフェイスを発見するための抽象化として機能します。
EFL:
BSD 2-Clauseライセンス
これは、EFLの共通バージョン番号やEO APIの公開方法など、コア共通ヘッダーデータです。
efreet:
BSD 2-Clauseライセンス
このライブラリは、.desktopファイル、XDGメニュー、アイコン検索パスなどのFreedesktop.org標準を処理するためのコードを提供します。ライブラリが話し合う変更の監視を処理するための中央のデーモンを提供し、デーモンはライブラリが読み取るローカルキャッシュファイルの更新を処理します。
エイナ:
LGPL V2ライセンス
このライブラリは、リンクリスト、ハッシュテーブル、成長可能なアレイ、基本的な文字列バッファー、共有文字列トークン、mmaped()ファイル、スレッド抽象化とロック、メモリプール、コピーオンワイトセグメント、コピーオンワリットセグメント、マトリックス、マトリックス、一般的なデータモデル、赤/黒い木、クワッドトリー、クエストxmlの樹木などの一般的なものに低レベルのルーチンを提供します。
EIO:
LGPL V2ライセンス
これは、ブロックせずにディスクI/Oを実行するための非同期I/Oライブラリです。
エルドバス:
LGPL V2ライセンス
これは、DBUSサービスとクライアントを作成できるDBUSアクセスライブラリです。これは、DBUでメインループに接着するため、すべてのアクセスが非同期です。
胚:
小さなライセンス(ZLIBライセンスと同じ)
これは、小型のcのような言語コンパイラとバイトコードインタープリターライブラリです。これは、Edjeのスクリプトに使用されます。このコードは、ポーン/スモール言語の元のソースに基づいていますが、ポータブルになり(エンディアンネスの問題が固定されています)、64ビットの問題は修正されており、ランタイムライブラリは非常に小さいようにリファクタリングされています。
感情:
BSD 2-Clauseライセンス
これは、GSTREAMER 1.Xプラグ可能なデコーダーライブラリの周りのラッパーであり、これはデコーダーライブラリに接着され、ビデオが再生されるときに再生を表示するスマートEVASオブジェクトに出力するだけでなく、使用されるバックエンドに関係なくストリームを求め、遊び、一時停止し、クエリするためのより高いレベルのコントロールを提供します。
EO:
BSD 2-Clauseライセンス
これは、EFL 1.8以降が依存するコアオブジェクトシステムAPIです。 APIは確定していないため、EFL 1.8でまだ依存しないでください。ただし、将来のEFLバージョンはロックダウンします。
このオブジェクトシステムは、シンプルで複数の継承、再カウント、強力な参照と弱い参照、子オブジェクトの自動解除、単一のパスでのコールバック処理を統合し、実行時に安全性を高めるための間接的なテーブル検索であるオブジェクトポインターを抽象化します。
エフィジクス:
BSD 2-Clauseライセンス
このライブラリは、Bullet Physics Libraryの周りにラッパーを提供し、EVASオブジェクトに直接リンクし、実際の物理オブジェクトであるかのように動作を制御できるようにします。これはデフォルトで無効になっているため、何も使用してもめったに使用されないためです。
Ethumb:
LGPL V2ライセンス
このライブラリは、サムネーリングデーモンとサムネイルデーモン自体のコアAPIを提供します。 Ethumb ClientはEthumbと話し合い、非同期に行われるためにサムネイルの世代を中央の場所に渡します。
Ethumb Client:
LGPL V2ライセンス
これは、クライアントがファイルのキャッシュされたサムネイルを生成または見つけられるように要求するようにクライアントにAPIを提供するEthumbのクライアント側の部分です。
エヴァス:
BSD 2-Clauseライセンス
これは、EFLのコアレンダリングおよびシーングラフ抽象化ライブラリです。キャンバスのコンテンツ全体を定義するステートフルな2Dシーングラフを管理します。これにより、X11、Windows、Wayland、Frame-Bufferなど、OpenGL、OpenGL-ES 2、純粋なソフトウェア実装などの多くのレンダリングAPIを介して、X11、Windows、Wayland、Frame-Bufferなど、バックエンドのレンダリングが提供されます。
悪:
BSD 2-Clauseライセンス
このライブラリは、EFLが必要とするMINGW32ではなく、欠落しているLIBCコールを提供するためのWindows用の移植ライブラリとして機能します。内部で使用され、シンボルは公開されていません。
EFLには、デフォルトでCおよびC ++コンパイラが必要です。 C ++は、主に弾丸やC ++バインディングなどのC ++ライブラリへのインターフェースに存在します。
デフォルトで要求:
LinuxでWaylandのサポートが必要になる場合もあります。これにより、EFLのサポートがクライアントアプリケーションのWaylandサポートをターゲットにします。この供給を行うには:
-Dwl=trueより近代的なフレームバッファサポートのために、DRM/KMSレンダリングサポートが必要な場合があります。これを有効にしてください。これは、Atomic Buffer Swappingを使用して最新のFrameBufferターゲットにレンダリングできるようになるため、Wayland Compositor Support in Enlightenmentにも必要なものです。これを行うには:
-Ddrm=trueLegacy FBCONサポートも存在しますが、おそらくこれを維持していないため、おそらくこれを使用したくないでしょう。これにより、 /dev /fbなどの基本的なフレームバッファと、基本的な方法でキーボードとマウスの /dev /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、関連するパッケージ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.so.so.confにあるか、 ldconfigを再実行するライブラリをインストールした後、Ldconfigとld.so.confの関連文書をインストールした後、配布のために関連するドキュメンテーションを確認することを確認する必要があります。
また、次のような次のような環境変数パス(シェルパス変数のドキュメントを参照)に宛先ビンDIRを追加することもできます。
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クローンからそれを行い、すべての変更を最初に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を除き、正常に動作します。ユーザーは、st音とグラフィカルなグリッチを報告しており、時にはWindowsが更新されないことがあります。あなたが最高の結果を望み、nvidiaにとどまり、それを変更することができない場合は、次のとおりです。
-Dwl=falseを有効にしないようにしてください(これはとにかくデフォルトです。-Ddrm=falseを有効にしないようにしてください(これはとにかくデフォルトです。-Dopengl=fullあることを確認してください