This page shows how to compile and install the Enlightenment Foundation Libraries (EFL) with C# bindings support, and explains how to build and run applications using them.
WARNING | ||
---|---|---|
Some C# classes are currently in BETA state They should only be used for experimenting and NOT for any product development. These classes are marked as BETA in the reference documentation. |
You need a compatible version of Mono (5.0 or higher).
NOTE: Currently the C# bindings do NOT work with Mono 4.x.
The paths to the mcs
compiler and to the mono
application must be in the PATH
environment variable before compiling.
In order to have EFL on a Windows environment we highly recommend following this guide which accomplishes that using MSYS2 and ewpi.
You need a compatible version of Mono (5.0 or higher). It suffices to install it with pacman in the MSYS2 environment:
pacman -S mingw-w64-x86_64-mono
Now you can use the MSYS2 console to compile, install and run EFL and your applications.
In order to compile and install EFL with C# binding support, on both Windows and Linux, just compile the EFL like the respective guides explain, and add the argument --enable-csharp-bindings
to the autogen.sh
or configure
command:
./autogen.sh --enable-csharp-bindings #other arguments
make -j4
sudo make install
NOTE: It is known that some portions of the code (typically the examples) can get a bit outdated from time to time, causing the building process to fail. The leading cause for this is a missing dependency. Usually, reading the error message and installing the missing package solves the problem. If you cannot solve the problem by yourself, try contacting the community.
NOTE If you are using Visual Studio to write EFL C# applications, you should copy to the build directory or have them in the
PATH
environment libraries:libeflcustomexportsmono.dll
,libefl_mono.dll
and if you want to use Intellisense alsolibefl_mono.xml
. These libraries and XML file will be found at lib sub-directory of the prefix you install the library.
With EFL installed, you can compile EFL applications using pkg-config
to get the proper flags to use the C# bindings:
mcs your_app.cs -out:your_app.exe `pkg-config --libs efl-mono`
Otherwise, you have to manually point the compiler to the location of the EFL C# bindings library libefl_mono.dll
, like this:
mcs your_app.cs -out:your_app.exe -r:/home/my_user/efl/build/src/lib/efl_mono/libefl_mono.dll
To run your application you can either copy the EFL C# bindings library libefl_mono.dll
to your application folder or set the MONO_PATH
environment variable and then execute it using mono
. In both cases, you can use pkg-config
to get the right paths.
Example copying the library:
cp `pkg-config --variable=Libraries efl-mono` .
mono button_example_00.exe
Example setting MONO_PATH
:
export MONO_PATH=`pkg-config --variable=assemblies_dir efl-mono`
mono button_example_00.exe
Note that if you installed EFL in a path that is not directly accessible to pkg-config
or to your application you have to manually make it accessible somehow, for example, setting proper environment variables before compiling and running:
export PKG_CONFIG_PATH=/opt/my_install_prefix/lib/pkgconfig
export LD_LIBRARY_PATH=/opt/my_install_prefix/lib
Try the Hello World tutorial now to verify that everything works as expected.