- 论坛徽章:
- 0
|
virtual
OpenEmbedded 源于gentoo,其中virtual这个属性也和gentoo中的virtual类似
virtual/name
name并不一定是一个实际存在的package,就只是一个代号,由provider提供,然后
任何package需要依赖的使用。实际应用中,多个package可能满足一个依赖,但是
没有任何特殊的理由选定哪一个,这也就是virtual诞生的意义吧。
例子:
samplec depends samplea or sampleb
samplec_1.0.0.bb
DEPENDS ="virtual/demo"
do_stage () {
mv ${STAGING_INCDIR}/head.h ${STAGING_INCDIR}/head_c.h
}
samplea_1.0.0.bb
SRC_URI="file://head.h"
S=${WORKDIR}/${PN}
PROVIDES ="virtual/demo"
do_stage() {
install -m 0644 ${WORKDIR}/head.h ${STAGING_INCDIR}/head.h
}
sampleb_1.0.0.bb
SRC_URI="file://head1.h"
S=${WORKDIR}/${PN}
PROVIDES ="virtual/demo"
do_stage() {
install -m 0644 ${WORKDIR}/head1.h ${STAGING_INCDIR}/head.h
}
bitbake samplec
NOTE: multiple providers are available (samplea, sampleb);
NOTE: consider defining PREFERRED_PROVIDER_virtual/demo
NOTE: package samplea-1.0.0: started
NOTE: package samplea-1.0.0-r0: task do_fetch: started
NOTE: Skipped
NOTE: package samplea-1.0.0-r0: task do_fetch: completed
NOTE: package samplea-1.0.0-r0: task do_unpack: started
NOTE: Unpacking
NOTE: package samplea-1.0.0-r0: task do_unpack: completed
NOTE: package samplea-1.0.0-r0: task do_patch: started
NOTE: package samplea-1.0.0-r0: task do_patch: completed
NOTE: package samplea-1.0.0-r0: task do_configure: started
NOTE: package samplea-1.0.0-r0: task do_configure: completed
NOTE: package samplea-1.0.0-r0: task do_compile: started
NOTE: package samplea-1.0.0-r0: task do_compile: completed
NOTE: package samplea-1.0.0-r0: task do_install: started
NOTE: package samplea-1.0.0-r0: task do_install: completed
NOTE: package samplea-1.0.0-r0: task do_package: started
NOTE: Not creating empty archive for samplea-dbg-1.0.0-r0
NOTE: Not creating empty archive for samplea-1.0.0-r0
NOTE: Not creating empty archive for samplea-doc-1.0.0-r0
NOTE: Not creating empty archive for samplea-dev-1.0.0-r0
NOTE: Not creating empty archive for samplea-locale-1.0.0-r0
NOTE: package samplea-1.0.0-r0: task do_package: completed
NOTE: package samplea-1.0.0-r0: task do_populate_staging: started
NOTE: package samplea-1.0.0-r0: task do_populate_staging: completed
NOTE: package samplea-1.0.0-r0: task do_build: started
NOTE: package samplea-1.0.0-r0: task do_build: completed
NOTE: package samplea-1.0.0: completed
NOTE: package samplec-1.0.0: started
NOTE: package samplec-1.0.0-r0: task do_fetch: started
NOTE: package samplec-1.0.0-r0: task do_fetch: completed
NOTE: package samplec-1.0.0-r0: task do_unpack: started
....
NOTE: package samplec-1.0.0-r0: task do_unpack: completed
NOTE: package samplec-1.0.0-r0: task do_patch: started
NOTE: package samplec-1.0.0-r0: task do_patch: completed
NOTE: package samplec-1.0.0-r0: task do_configure: started
NOTE: package samplec-1.0.0-r0: task do_configure: completed
NOTE: package samplec-1.0.0-r0: task do_compile: started
NOTE: package samplec-1.0.0-r0: task do_compile: completed
NOTE: package samplec-1.0.0-r0: task do_install: started
NOTE: package samplec-1.0.0-r0: task do_install: completed
NOTE: package samplec-1.0.0-r0: task do_package: started
NOTE: Not creating empty archive for samplec-dbg-1.0.0-r0
NOTE: Not creating empty archive for samplec-1.0.0-r0
NOTE: Not creating empty archive for samplec-doc-1.0.0-r0
NOTE: Not creating empty archive for samplec-dev-1.0.0-r0
NOTE: Not creating empty archive for samplec-locale-1.0.0-r0
NOTE: package samplec-1.0.0-r0: task do_package: completed
NOTE: package samplec-1.0.0-r0: task do_populate_staging: started
NOTE: package samplec-1.0.0-r0: task do_populate_staging: completed
NOTE: package samplec-1.0.0-r0: task do_build: started
NOTE: package samplec-1.0.0-r0: task do_build: completed
NOTE: package samplec-1.0.0: completed
NOTE: build 200708171357: completed
Build statistics:
Attempted builds: 2
从红色标志的行可以清晰地看到,满足samplec的dependence有两个package,samplea,sampleb
然后考虑PREFERRED_PROVIDER_virtual/demo这个变量,如果有定义,则选择其定义的package
这里没有,就选择了samplea
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/32610/showart_362070.html |
|