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).