summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Amlie <kristian.amlie@mender.io>2017-01-25 15:46:15 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-31 14:43:01 +0000
commit2313a77d8474c742e1cd8cee246f6c05847dd3c6 (patch)
tree772d2c12eb7f2b705e33904d4e7d000aee1536ed
parent5302fb4620b8fc403ec41ca9bc863fe387dcee6c (diff)
downloadpoky-2313a77d8474c742e1cd8cee246f6c05847dd3c6.tar.gz
sstate: Make SSTATE_SCAN_CMD vars configurable using weak defaults.
For this we move them out of the python section so they can be overridden on a per-recipe basis. The motivation for this change is that not all tool chains need the path modifications provided by the command, and these will provide alternative or empty commands. The Go compiler is such an example. (From OE-Core rev: 7d2a2160336413736dd4640f5b84ba4d74bb00f5) Signed-off-by: Kristian Amlie <kristian.amlie@mender.io> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/cross.bbclass4
-rw-r--r--meta/classes/crosssdk.bbclass4
-rw-r--r--meta/classes/native.bbclass4
-rw-r--r--meta/classes/sstate.bbclass9
4 files changed, 14 insertions, 7 deletions
diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass
index ee8e150e4c..2602153a97 100644
--- a/meta/classes/cross.bbclass
+++ b/meta/classes/cross.bbclass
@@ -38,6 +38,10 @@ TOOLCHAIN_OPTIONS = ""
38 38
39DEPENDS_GETTEXT = "gettext-native" 39DEPENDS_GETTEXT = "gettext-native"
40 40
41# This class encodes staging paths into its scripts data so can only be
42# reused if we manipulate the paths.
43SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}"
44
41# Path mangling needed by the cross packaging 45# Path mangling needed by the cross packaging
42# Note that we use := here to ensure that libdir and includedir are 46# Note that we use := here to ensure that libdir and includedir are
43# target paths. 47# target paths.
diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass
index c5c29ea3da..a5ffd977b0 100644
--- a/meta/classes/crosssdk.bbclass
+++ b/meta/classes/crosssdk.bbclass
@@ -10,6 +10,10 @@ python () {
10 10
11STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}" 11STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
12 12
13# This class encodes staging paths into its scripts data so can only be
14# reused if we manipulate the paths.
15SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}"
16
13TARGET_ARCH = "${SDK_ARCH}" 17TARGET_ARCH = "${SDK_ARCH}"
14TARGET_VENDOR = "${SDK_VENDOR}" 18TARGET_VENDOR = "${SDK_VENDOR}"
15TARGET_OS = "${SDK_OS}" 19TARGET_OS = "${SDK_OS}"
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index 4d4aaadc02..ec91fc3c80 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -115,6 +115,10 @@ MACHINEOVERRIDES = ""
115 115
116PATH_prepend = "${COREBASE}/scripts/native-intercept:" 116PATH_prepend = "${COREBASE}/scripts/native-intercept:"
117 117
118# This class encodes staging paths into its scripts data so can only be
119# reused if we manipulate the paths.
120SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}"
121
118python native_virtclass_handler () { 122python native_virtclass_handler () {
119 classextend = e.data.getVar('BBCLASSEXTEND') or "" 123 classextend = e.data.getVar('BBCLASSEXTEND') or ""
120 if "native" not in classextend: 124 if "native" not in classextend:
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 31789da50a..aeb7466d35 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -34,7 +34,8 @@ SSTATE_DUPWHITELIST += "${DEPLOY_DIR_SRC}"
34SSTATE_DUPWHITELIST += "${DEPLOY_DIR}/sdk/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt" 34SSTATE_DUPWHITELIST += "${DEPLOY_DIR}/sdk/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt"
35 35
36SSTATE_SCAN_FILES ?= "*.la *-config *_config" 36SSTATE_SCAN_FILES ?= "*.la *-config *_config"
37SSTATE_SCAN_CMD ?= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f' 37SSTATE_SCAN_CMD ??= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f'
38SSTATE_SCAN_CMD_NATIVE ??= 'grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} ${SSTATE_BUILDDIR}'
38 39
39BB_HASHFILENAME = "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}" 40BB_HASHFILENAME = "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}"
40 41
@@ -94,12 +95,6 @@ python () {
94 d.setVar('BB_HASHFILENAME', "True ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}") 95 d.setVar('BB_HASHFILENAME', "True ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}")
95 d.setVar('SSTATE_EXTRAPATHWILDCARD', "*/") 96 d.setVar('SSTATE_EXTRAPATHWILDCARD', "*/")
96 97
97 # These classes encode staging paths into their scripts data so can only be
98 # reused if we manipulate the paths
99 if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('sdk', d) or bb.data.inherits_class('crosssdk', d):
100 scan_cmd = "grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} ${SSTATE_BUILDDIR}"
101 d.setVar('SSTATE_SCAN_CMD', scan_cmd)
102
103 unique_tasks = sorted(set((d.getVar('SSTATETASKS') or "").split())) 98 unique_tasks = sorted(set((d.getVar('SSTATETASKS') or "").split()))
104 d.setVar('SSTATETASKS', " ".join(unique_tasks)) 99 d.setVar('SSTATETASKS', " ".join(unique_tasks))
105 for task in unique_tasks: 100 for task in unique_tasks: