On Mon, 2012-02-27 at 21:51 +0800, Xu, Dongxiao wrote:
> Hi list,
> 
> If I have two recipes, see following. Both of them provides
> "virtual/test" and has package named "test-test", the only difference is
> the RDEPENDS of the package "test-test".
> 
> test-a_1.0.bb
> 
> PROVIDES = "virtual/test"
> PACKAGES = "test-test"
> # Assume that the abcd package are provided by recipe abcd.bb
> RDEPENDS_test-test = "abcd"
> 
> 
> test-b_1.0.bb
> 
> PROVIDES = "virtual/test"
> PACKAGES = "test-test"
> 
> In a certain configuration file, we have the PREFERRED_PROVIDER set as:
> PREFERRED_PROVIDER_virtual/test = "test-a".
> 
> Then if a real recipe, for example, the 'v86d', depends on the
> "virtual/test":
> DEPENDS = "virtual/test"
> 
> Finally if I run the following command:
> # bitbake v86d
> 
> We know that the recipe "abcd" will be included in the runqueue.
> 
> My question is, can we get the build dependency to recipe "abcd" through
> taskdata? Or it is finalized until we create the RunQueue object?

task data should have a list of providers for "virtual/test", sorted in
priority order. There should be two entries in that list, one for test-a
and test-b. Since you set the preferred provider, you should have test-a
as the first item.

Once you resolve it to a recipe file, you should be able to look at the
recipe file's dependencies in dataCache.

The trouble is you're now resolving all the dependencies in the code I
think you're referring to. This was in general the job of
prepare_runqueue() and I'm starting to worry you're duplicating its
functionality.

Cheers,

Richard

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to