diff options
| author | Jeff Polk <jeff.polk@windriver.com> | 2010-09-03 11:25:38 -0600 |
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-09-10 12:56:56 +0100 |
| commit | c3269e20bf1c9475997b4f12219c52c203f7666f (patch) | |
| tree | 1ebe25927a037ee99b3db1a8318eb41ab552dcf7 | |
| parent | 27dd7f82c946e2cdaa1359835b4c5eacd8c18576 (diff) | |
| download | poky-c3269e20bf1c9475997b4f12219c52c203f7666f.tar.gz | |
siteinfo: add SITECONFIG_SYSROOTCACHE definition in place of hard-coded path
siteconfig: use SITECONFIG_SYSROOTCACHE and use sstate-interceptfuncs
Use the new sstate-interceptfuncs functionality to interpose do_siteconfig
between the sstate_install and package.
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
| -rw-r--r-- | meta/classes/siteconfig.bbclass | 36 | ||||
| -rw-r--r-- | meta/classes/siteinfo.bbclass | 4 |
2 files changed, 19 insertions, 21 deletions
diff --git a/meta/classes/siteconfig.bbclass b/meta/classes/siteconfig.bbclass index 5311653bb5..2694f65de2 100644 --- a/meta/classes/siteconfig.bbclass +++ b/meta/classes/siteconfig.bbclass | |||
| @@ -1,7 +1,16 @@ | |||
| 1 | siteconfig_do_siteconfig() { | 1 | python siteconfig_do_siteconfig () { |
| 2 | if [ ! -d ${FILE_DIRNAME}/site_config ]; then | 2 | shared_state = sstate_state_fromvars(d) |
| 3 | exit 0 | 3 | if shared_state['name'] != 'populate-sysroot': |
| 4 | fi | 4 | return |
| 5 | if not os.path.isdir(os.path.join(bb.data.getVar('FILE_DIRNAME', d, 1), 'site_config')): | ||
| 6 | bb.debug(1, "No site_config directory, skipping do_siteconfig") | ||
| 7 | return | ||
| 8 | bb.build.exec_func('do_siteconfig_gencache', d) | ||
| 9 | sstate_clean(shared_state, d) | ||
| 10 | sstate_install(shared_state, d) | ||
| 11 | } | ||
| 12 | |||
| 13 | siteconfig_do_siteconfig_gencache () { | ||
| 5 | mkdir ${WORKDIR}/site_config | 14 | mkdir ${WORKDIR}/site_config |
| 6 | gen-site-config ${FILE_DIRNAME}/site_config \ | 15 | gen-site-config ${FILE_DIRNAME}/site_config \ |
| 7 | >${WORKDIR}/site_config/configure.ac | 16 | >${WORKDIR}/site_config/configure.ac |
| @@ -11,21 +20,10 @@ siteconfig_do_siteconfig() { | |||
| 11 | sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \ | 20 | sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \ |
| 12 | -e "/ac_cv_type_/p" -e "/ac_cv_header_/p" -e "/ac_cv_func_/p" \ | 21 | -e "/ac_cv_type_/p" -e "/ac_cv_header_/p" -e "/ac_cv_func_/p" \ |
| 13 | < ${PN}_cache > ${PN}_config | 22 | < ${PN}_cache > ${PN}_config |
| 14 | mkdir -p ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d | 23 | mkdir -p ${SYSROOT_DESTDIR}${SITECONFIG_SYSROOTCACHE} |
| 15 | cp ${PN}_config ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d | 24 | cp ${PN}_config ${SYSROOT_DESTDIR}${SITECONFIG_SYSROOTCACHE} |
| 16 | } | 25 | } |
| 17 | 26 | ||
| 18 | # Ugly integration with sstate_task_postfunc for now. The normal package | 27 | do_populate_sysroot[sstate-interceptfuncs] += "do_siteconfig " |
| 19 | # sysroot components must be installed in order to generate the cache, but | ||
| 20 | # the site cache must be generated before the staging archive is generated. | ||
| 21 | python sstate_task_postfunc () { | ||
| 22 | shared_state = sstate_state_fromvars(d) | ||
| 23 | sstate_install(shared_state, d) | ||
| 24 | if shared_state['name'] == 'populate-sysroot': | ||
| 25 | bb.build.exec_func('do_siteconfig', d) | ||
| 26 | sstate_clean(shared_state, d) | ||
| 27 | sstate_install(shared_state, d) | ||
| 28 | sstate_package(shared_state, d) | ||
| 29 | } | ||
| 30 | 28 | ||
| 31 | EXPORT_FUNCTIONS do_siteconfig | 29 | EXPORT_FUNCTIONS do_siteconfig do_siteconfig_gencache |
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass index 130fdc4cfb..df29097fb8 100644 --- a/meta/classes/siteinfo.bbclass +++ b/meta/classes/siteinfo.bbclass | |||
| @@ -97,7 +97,7 @@ def siteinfo_get_files(d): | |||
| 97 | sitefiles += fname + " " | 97 | sitefiles += fname + " " |
| 98 | 98 | ||
| 99 | # Now check for siteconfig cache files | 99 | # Now check for siteconfig cache files |
| 100 | path_siteconfig = os.path.join(bb.data.getVar('STAGING_DATADIR', d, 1), bb.data.getVar('TARGET_SYS', d, 1) + "_config_site.d") | 100 | path_siteconfig = bb.data.getVar('SITECONFIG_SYSROOTCACHE', d, 1) |
| 101 | if os.path.isdir(path_siteconfig): | 101 | if os.path.isdir(path_siteconfig): |
| 102 | for i in os.listdir(path_siteconfig): | 102 | for i in os.listdir(path_siteconfig): |
| 103 | fname = os.path.join(path_siteconfig, i) | 103 | fname = os.path.join(path_siteconfig, i) |
| @@ -127,5 +127,5 @@ def siteinfo_get_bits(d): | |||
| 127 | # | 127 | # |
| 128 | SITEINFO_ENDIANESS = "${@siteinfo_get_endianess(d)}" | 128 | SITEINFO_ENDIANESS = "${@siteinfo_get_endianess(d)}" |
| 129 | SITEINFO_BITS = "${@siteinfo_get_bits(d)}" | 129 | SITEINFO_BITS = "${@siteinfo_get_bits(d)}" |
| 130 | 130 | SITECONFIG_SYSROOTCACHE = "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d" | |
| 131 | 131 | ||
