################################################################################ # # efl # ################################################################################ EFL_VERSION = 1.26.0 EFL_SOURCE = efl-$(EFL_VERSION).tar.xz EFL_SITE = https://download.enlightenment.org/rel/libs/efl EFL_LICENSE = BSD-2-Clause, LGPL-2.1+, GPL-2.0+, FTL, MIT EFL_LICENSE_FILES = \ COMPLIANCE \ COPYING \ COPYING.images \ licenses/COPYING.ASL \ licenses/COPYING.BSD \ licenses/COPYING.FTL \ licenses/COPYING.GPL \ licenses/COPYING.LGPL \ licenses/COPYING.NGINX-MIT \ licenses/COPYING.SMALL EFL_INSTALL_STAGING = YES EFL_DEPENDENCIES = host-pkgconf host-efl host-luajit dbus freetype \ giflib jpeg libpng luajit lz4 zlib $(TARGET_NLS_DEPENDENCIES) # Configure options: # elua=true: build elua for the target. # sdl=false: disable sdl2 support. # embedded-lz4=false: use liblz4 from lz4 package. # native-arch-optimization=false: avoid optimization flags added by meson. # network-backend=none: disable connman networkmanager. EFL_CONF_OPTS = \ -Davahi=false \ -Dbuild-examples=false \ -Dbuild-tests=false \ -Ddotnet=false \ -Decore-imf-loaders-disabler=ibus,scim,xim \ -Delua=true \ -Dembedded-lz4=false \ -Dlua-interpreter=luajit \ -Dnative-arch-optimization=false \ -Dnetwork-backend=none \ -Dpixman=false \ -Dsdl=false \ -Dvnc-server=false ifeq ($(BR2_SYSTEM_ENABLE_NLS),y) EFL_CONF_OPTS += -Dnls=true else EFL_CONF_OPTS += -Dnls=false endif EFL_BINDINGS = lua ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y) EFL_BINDINGS += cxx endif EFL_CONF_OPTS += -Dbindings=$(subst $(space),$(comma),$(EFL_BINDINGS)) ifeq ($(BR2_PACKAGE_EFL_EEZE),y) EFL_DEPENDENCIES += udev EFL_CONF_OPTS += -Deeze=true else EFL_CONF_OPTS += -Deeze=false endif ifeq ($(BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT),y) EFL_DEPENDENCIES += util-linux EFL_CONF_OPTS += -Dlibmount=true else EFL_CONF_OPTS += -Dlibmount=false endif ifeq ($(BR2_PACKAGE_SYSTEMD),y) EFL_CONF_OPTS += -Dsystemd=true EFL_DEPENDENCIES += systemd else EFL_CONF_OPTS += -Dsystemd=false endif ifeq ($(BR2_PACKAGE_FONTCONFIG),y) EFL_CONF_OPTS += -Dfontconfig=true EFL_DEPENDENCIES += fontconfig else EFL_CONF_OPTS += -Dfontconfig=false endif ifeq ($(BR2_PACKAGE_LIBFRIBIDI),y) EFL_CONF_OPTS += -Dfribidi=true EFL_DEPENDENCIES += libfribidi else EFL_CONF_OPTS += -Dfribidi=false endif ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy) EFL_CONF_OPTS += -Dgstreamer=true EFL_DEPENDENCIES += gstreamer1 gst1-plugins-base else EFL_CONF_OPTS += -Dgstreamer=false endif ifeq ($(BR2_PACKAGE_BULLET),y) EFL_CONF_OPTS += -Dphysics=true EFL_DEPENDENCIES += bullet else EFL_CONF_OPTS += -Dphysics=false endif ifeq ($(BR2_PACKAGE_LIBSNDFILE),y) EFL_CONF_OPTS += -Daudio=true EFL_DEPENDENCIES += libsndfile else EFL_CONF_OPTS += -Daudio=false endif ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) EFL_CONF_OPTS += -Dpulseaudio=true EFL_DEPENDENCIES += pulseaudio else EFL_CONF_OPTS += -Dpulseaudio=false endif ifeq ($(BR2_PACKAGE_HARFBUZZ),y) EFL_DEPENDENCIES += harfbuzz EFL_CONF_OPTS += -Dharfbuzz=true else EFL_CONF_OPTS += -Dharfbuzz=false endif ifeq ($(BR2_PACKAGE_TSLIB),y) EFL_DEPENDENCIES += tslib EFL_CONF_OPTS += -Dtslib=true else EFL_CONF_OPTS += -Dtslib=false endif ifeq ($(BR2_PACKAGE_LIBGLIB2),y) EFL_DEPENDENCIES += libglib2 EFL_CONF_OPTS += -Dglib=true else EFL_CONF_OPTS += -Dglib=false endif # Prefer openssl (the default) over gnutls. ifeq ($(BR2_PACKAGE_OPENSSL),y) EFL_DEPENDENCIES += openssl EFL_CONF_OPTS += -Dcrypto=openssl else EFL_DEPENDENCIES += gnutls libgcrypt EFL_CONF_OPTS += -Dcrypto=gnutls endif ifeq ($(BR2_PACKAGE_EFL_FB),y) EFL_CONF_OPTS += -Dfb=true else EFL_CONF_OPTS += -Dfb=false endif ifeq ($(BR2_PACKAGE_EFL_X_XLIB),y) EFL_CONF_OPTS += -Dx11=true \ -Dxinput2=true \ -Dxinput22=true EFL_DEPENDENCIES += \ xlib_libX11 \ xlib_libXcomposite \ xlib_libXcursor \ xlib_libXdamage \ xlib_libXext \ xlib_libXinerama \ xlib_libXrandr \ xlib_libXrender \ xlib_libXScrnSaver \ xlib_libXtst else EFL_CONF_OPTS += -Dx11=false endif ifeq ($(BR2_PACKAGE_EFL_OPENGL),y) EFL_CONF_OPTS += -Dopengl=full EFL_DEPENDENCIES += libgl # OpenGL ES requires EGL else ifeq ($(BR2_PACKAGE_EFL_OPENGLES),y) EFL_CONF_OPTS += -Dopengl=es-egl EFL_DEPENDENCIES += libegl libgles else ifeq ($(BR2_PACKAGE_EFL_OPENGL_NONE),y) EFL_CONF_OPTS += -Dopengl=none endif ifeq ($(BR2_PACKAGE_EFL_DRM),y) EFL_CONF_OPTS += -Ddrm=true EFL_DEPENDENCIES += libdrm libegl libinput mesa3d else EFL_CONF_OPTS += -Ddrm=false endif ifeq ($(BR2_PACKAGE_EFL_WAYLAND),y) EFL_DEPENDENCIES += wayland wayland-protocols EFL_CONF_OPTS += -Dwl=true else EFL_CONF_OPTS += -Dwl=false endif EFL_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBXKBCOMMON),libxkbcommon) # json evas loader is disabled by default by upstream. # Disable libspectre (ps). # Keep all other evas loader enabled or handled below. EFL_EVAS_LOADERS_DISABLER = avif gst heif json ps # efl already depends on jpeg. ifeq ($(BR2_PACKAGE_EFL_JPEG),y) EFL_DEPENDENCIES += openjpeg else EFL_EVAS_LOADERS_DISABLER += jp2k endif ifeq ($(BR2_PACKAGE_EFL_TIFF),y) EFL_DEPENDENCIES += tiff else EFL_EVAS_LOADERS_DISABLER += tiff endif ifeq ($(BR2_PACKAGE_EFL_WEBP),y) EFL_DEPENDENCIES += webp else EFL_EVAS_LOADERS_DISABLER += webp endif ifeq ($(BR2_PACKAGE_POPPLER),y) # poppler needs c++11 EFL_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -std=c++11" EFL_DEPENDENCIES += poppler else EFL_EVAS_LOADERS_DISABLER += pdf endif ifeq ($(BR2_PACKAGE_EFL_LIBRAW),y) EFL_DEPENDENCIES += libraw else EFL_EVAS_LOADERS_DISABLER += raw endif ifeq ($(BR2_PACKAGE_EFL_SVG),y) EFL_DEPENDENCIES += librsvg cairo else EFL_EVAS_LOADERS_DISABLER += rsvg endif EFL_CONF_OPTS += -Devas-loaders-disabler=$(subst $(space),$(comma),$(EFL_EVAS_LOADERS_DISABLER)) ifeq ($(BR2_PACKAGE_UPOWER),) # upower ecore system module is only useful if upower # dbus service is available. # It's not essential, only used to notify applications # of power state, such as low battery or AC power, so # they can adapt their power consumption. define EFL_HOOK_REMOVE_UPOWER rm -fr $(TARGET_DIR)/usr/lib/ecore/system/upower endef EFL_POST_INSTALL_TARGET_HOOKS = EFL_HOOK_REMOVE_UPOWER endif ifeq ($(BR2_PACKAGE_LIBUNWIND),y) EFL_DEPENDENCIES += libunwind endif $(eval $(meson-package)) ################################################################################ # # host-efl # ################################################################################ # We want to build only some host tools used later in the build. # Actually we want: edje_cc, eet and embryo_cc. eolian_cxx is built only # if selected for the target. # Host dependencies: # * host-dbus: for Eldbus # * host-freetype: for libevas # * host-libglib2: for libecore # * host-giflib, host-libjpeg, host-libpng: for libevas image loader # * host-luajit for Elua tool for the host # * host-openssl: cryptography backends. HOST_EFL_DEPENDENCIES = \ host-pkgconf \ host-dbus \ host-freetype \ host-giflib \ host-libglib2 \ host-libjpeg \ host-libpng \ host-luajit \ host-openssl \ host-zlib # Configure options: # audio=false: remove libsndfile dependency. # eeze=false: remove libudev dependency. # input=false: remove libinput dependency. # libmount=false: remove dependency on host-util-linux libmount. # elua=true: build elua for the host. # physics=false: remove Bullet dependency. # network-backend=none: remove network-backend (connman). # embedded-lz4=true: use lz4 bundled in efl. HOST_EFL_CONF_OPTS += \ -Daudio=false \ -Davahi=false \ -Dbuild-examples=false \ -Dbuild-tests=false \ -Dcrypto=openssl \ -Ddotnet=false \ -Decore-imf-loaders-disabler=ibus,scim,xim \ -Dedje-sound-and-video=false \ -Deeze=false \ -Delua=true \ -Dembedded-lz4=true \ -Dfontconfig=false \ -Dfribidi=false \ -Dglib=true \ -Dgstreamer=false \ -Dharfbuzz=false \ -Dinput=false \ -Dlibmount=false \ -Dlua-interpreter=luajit \ -Dnetwork-backend=none \ -Dnls=false \ -Dopengl=none \ -Dphysics=false \ -Dpixman=false \ -Dpulseaudio=false \ -Dsdl=false \ -Dsystemd=false \ -Dv4l2=false \ -Dvnc-server=false \ -Dx11=false \ -Dxinput22=false # List of modular image/vector loaders to disable in efl HOST_EFL_EVAS_LOADERS_DISABLER = avif bmp dds eet generic gst heif ico json \ jp2k pdf pmaps ps psd raw rsvg tga tgv tiff wbmp webp xcf xpm HOST_EFL_CONF_OPTS += -Devas-loaders-disabler=$(subst $(space),$(comma),$(HOST_EFL_EVAS_LOADERS_DISABLER)) HOST_EFL_BINDINGS = lua # Enable Eolian language bindings to provide eolian_cxx tool for the # host which is required to build Eolian language bindings for the # target. ifeq ($(BR2_PACKAGE_EFL_EOLIAN_CPP),y) HOST_EFL_BINDINGS += cxx endif HOST_EFL_CONF_OPTS += -Dbindings=$(subst $(space),$(comma),$(HOST_EFL_BINDINGS)) # Always disable upower system module from host as it's # not useful and would try to use the output/host/var # system bus which is non-existent and does not contain # any upower service in it. define HOST_EFL_HOOK_REMOVE_UPOWER rm -fr $(HOST_DIR)/lib/ecore/system/upower endef HOST_EFL_POST_INSTALL_HOOKS = HOST_EFL_HOOK_REMOVE_UPOWER $(eval $(host-meson-package))