]> code.ossystems Code Review - openembedded-core.git/commitdiff
siteinfo: add SITECONFIG_SYSROOTCACHE definition in place of hard-coded path
authorJeff Polk <jeff.polk@windriver.com>
Fri, 3 Sep 2010 17:25:38 +0000 (11:25 -0600)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 10 Sep 2010 11:56:56 +0000 (12:56 +0100)
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>
meta/classes/siteconfig.bbclass
meta/classes/siteinfo.bbclass

index 5311653bb598f61d2b9d99e1a4c7d673130ea047..2694f65de2909aa95043f89cac343c4fe35c9151 100644 (file)
@@ -1,7 +1,16 @@
-siteconfig_do_siteconfig() {
-       if [ ! -d ${FILE_DIRNAME}/site_config ]; then
-               exit 0
-       fi
+python siteconfig_do_siteconfig () {
+       shared_state = sstate_state_fromvars(d)
+       if shared_state['name'] != 'populate-sysroot':
+               return
+       if not os.path.isdir(os.path.join(bb.data.getVar('FILE_DIRNAME', d, 1), 'site_config')):
+               bb.debug(1, "No site_config directory, skipping do_siteconfig")
+               return
+       bb.build.exec_func('do_siteconfig_gencache', d)
+       sstate_clean(shared_state, d)
+       sstate_install(shared_state, d)
+}
+
+siteconfig_do_siteconfig_gencache () {
        mkdir ${WORKDIR}/site_config
        gen-site-config ${FILE_DIRNAME}/site_config \
                >${WORKDIR}/site_config/configure.ac
@@ -11,21 +20,10 @@ siteconfig_do_siteconfig() {
        sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \
                -e "/ac_cv_type_/p" -e "/ac_cv_header_/p" -e "/ac_cv_func_/p" \
                < ${PN}_cache > ${PN}_config
-       mkdir -p ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d
-       cp ${PN}_config ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d
+       mkdir -p ${SYSROOT_DESTDIR}${SITECONFIG_SYSROOTCACHE}
+       cp ${PN}_config ${SYSROOT_DESTDIR}${SITECONFIG_SYSROOTCACHE}
 }
 
-# Ugly integration with sstate_task_postfunc for now.  The normal package 
-# sysroot components must be installed in order to generate the cache, but
-# the site cache must be generated before the staging archive is generated.
-python sstate_task_postfunc () {
-    shared_state = sstate_state_fromvars(d)
-    sstate_install(shared_state, d)
-    if shared_state['name'] == 'populate-sysroot':
-        bb.build.exec_func('do_siteconfig', d)
-        sstate_clean(shared_state, d)
-        sstate_install(shared_state, d)
-    sstate_package(shared_state, d)
-}
+do_populate_sysroot[sstate-interceptfuncs] += "do_siteconfig "
 
-EXPORT_FUNCTIONS do_siteconfig
+EXPORT_FUNCTIONS do_siteconfig do_siteconfig_gencache
index 130fdc4cfb3c350def760e0b5e5f013989945907..df29097fb8ca8fb7591f6852cdc0d4ec4750852c 100644 (file)
@@ -97,7 +97,7 @@ def siteinfo_get_files(d):
                        sitefiles += fname + " "
 
        # Now check for siteconfig cache files
-       path_siteconfig = os.path.join(bb.data.getVar('STAGING_DATADIR', d, 1), bb.data.getVar('TARGET_SYS', d, 1) + "_config_site.d")
+       path_siteconfig = bb.data.getVar('SITECONFIG_SYSROOTCACHE', d, 1)
        if os.path.isdir(path_siteconfig):
                for i in os.listdir(path_siteconfig):
                        fname = os.path.join(path_siteconfig, i)
@@ -127,5 +127,5 @@ def siteinfo_get_bits(d):
 #
 SITEINFO_ENDIANESS  = "${@siteinfo_get_endianess(d)}"
 SITEINFO_BITS       = "${@siteinfo_get_bits(d)}"
-
+SITECONFIG_SYSROOTCACHE = "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d"