Prior to the build, if you know that several different recipes
provide the same functionality, you can use a virtual provider
(i.e. virtual/*
) as a placeholder for the
actual provider.
The actual provider would be determined at build time.
In this case, you should add virtual/*
to
DEPENDS
,
rather than listing the specified provider.
You would select the actual provider by setting the
PREFERRED_PROVIDER
variable (i.e.
PREFERRED_PROVIDER_virtual/*
)
in the build's configuration file (e.g.
poky/build/conf/local.conf
).
virtual/*
item that is ultimately not selected through
PREFERRED_PROVIDER
does not get built.
Preventing these recipes from building is usually the
desired behavior since this mechanism's purpose is to
select between mutually exclusive alternative providers.
The following lists specific examples of virtual providers:
virtual/mesa
:
Provides gbm.pc
.
virtual/egl
:
Provides egl.pc
and possibly
wayland-egl.pc
.
virtual/libgl
:
Provides gl.pc
(i.e. libGL).
virtual/libgles1
:
Provides glesv1_cm.pc
(i.e. libGLESv1_CM).
virtual/libgles2
:
Provides glesv2.pc
(i.e. libGLESv2).