efl.vapi contains Vala bindings for the Enlightenment Foundation Libraries (EFL). It is usable with or without libeflvala.
libeflvala contains additional convenience objects for applications written in Vala using the EFL.
- Vala bindings for EFL core libraries: eina, evas, ecore, edje, elementary
- Convenience objects and utilities for EFL development in Vala
- Meson and Autotools build systems
- Comprehensive examples and tests
sudo apt-get update
sudo apt-get install -y meson ninja-build valac pkg-config libefl-all-devpacman -S --needed base-devel git meson ninja vala mingw-w64-x86_64-efl# Clone the repository
git clone https://github.com/theavege/libeflvala.git
cd libeflvala
# Configure and build
meson setup build
meson compile -C build
# Run tests
meson test -C build --print-errorlogs
# Install (optional)
meson install -C build| Meson Option | Description | Default |
|---|---|---|
-Dlibrary=false |
Skip building the eflvala library | true |
-Dexamples=false |
Skip building examples | true |
-Dtests=false |
Skip building tests | true |
Example with options:
meson setup build -Dlibrary=false -Dexamples=true
meson compile -C buildlibeflvala/
├── vapi/ # Vala API bindings for EFL
│ ├── eina.vapi # Eina bindings
│ ├── evas.vapi # Evas bindings
│ ├── ecore.vapi # Ecore bindings
│ ├── edje.vapi # Edje bindings
│ └── elm.vapi # Elementary bindings
├── eflvala/ # libeflvala library source
│ ├── application.vala # Application convenience class
│ ├── genlist.vala # Genlist utilities
│ └── statemachine.vala # State machine implementation
├── examples/ # Example applications
│ ├── ecore/ # Ecore examples
│ ├── evas/ # Evas examples
│ ├── edje/ # Edje examples
│ └── elementary/ # Elementary examples
├── tests/ # Test suites
│ ├── testecore.vala # Ecore tests
│ ├── testeina.vala # Eina tests
│ ├── testevas.vala # Evas tests
│ └── testelementary.vala # Elementary tests
└── data/ # Data files and resources
Add the VAPI directory to your Vala compiler flags:
valac --vapidir /usr/local/share/vala/vapi your_program.valaOr with Meson:
project('my-app', 'vala')
dep = dependency('eina')
# Your sources...Link against the libeflvala library:
project('my-app', 'vala')
eflvala_dep = dependency('eflvala-1.0')
# Your sources...- Complete Elementary support
- Expand Evas bindings
- Add Ecore input and file system support
- Improve Edje bindings
- Add comprehensive documentation and examples
Contributions are welcome! Please read our Contribution Guidelines before submitting pull requests.
This project is licensed under the LGPL-2.1-or-later - see the COPYING file for details.
See AUTHORS and THANKS files for contributors.
- GitHub Issues: https://github.com/freesmartphone/libeflvala/issues