diff options
author | Kristian Amlie <kristian.amlie@mender.io> | 2017-01-25 15:46:15 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-01-31 14:43:01 +0000 |
commit | 2313a77d8474c742e1cd8cee246f6c05847dd3c6 (patch) | |
tree | 772d2c12eb7f2b705e33904d4e7d000aee1536ed | |
parent | 5302fb4620b8fc403ec41ca9bc863fe387dcee6c (diff) | |
download | poky-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.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/crosssdk.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/native.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/sstate.bbclass | 9 |
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 | ||
39 | DEPENDS_GETTEXT = "gettext-native" | 39 | DEPENDS_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. | ||
43 | SSTATE_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 | ||
11 | STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}" | 11 | STAGING_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. | ||
15 | SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" | ||
16 | |||
13 | TARGET_ARCH = "${SDK_ARCH}" | 17 | TARGET_ARCH = "${SDK_ARCH}" |
14 | TARGET_VENDOR = "${SDK_VENDOR}" | 18 | TARGET_VENDOR = "${SDK_VENDOR}" |
15 | TARGET_OS = "${SDK_OS}" | 19 | TARGET_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 | ||
116 | PATH_prepend = "${COREBASE}/scripts/native-intercept:" | 116 | PATH_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. | ||
120 | SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" | ||
121 | |||
118 | python native_virtclass_handler () { | 122 | python 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}" | |||
34 | SSTATE_DUPWHITELIST += "${DEPLOY_DIR}/sdk/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt" | 34 | SSTATE_DUPWHITELIST += "${DEPLOY_DIR}/sdk/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt" |
35 | 35 | ||
36 | SSTATE_SCAN_FILES ?= "*.la *-config *_config" | 36 | SSTATE_SCAN_FILES ?= "*.la *-config *_config" |
37 | SSTATE_SCAN_CMD ?= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f' | 37 | SSTATE_SCAN_CMD ??= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f' |
38 | SSTATE_SCAN_CMD_NATIVE ??= 'grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} ${SSTATE_BUILDDIR}' | ||
38 | 39 | ||
39 | BB_HASHFILENAME = "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}" | 40 | BB_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: |