diff options
Diffstat (limited to 'meta/classes/base.bbclass')
-rw-r--r-- | meta/classes/base.bbclass | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 14293f83c4..fec351a890 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -119,6 +119,25 @@ def get_lic_checksum_file_list(d): | |||
119 | bb.fatal(d.getVar('PN') + ": LIC_FILES_CHKSUM contains an invalid URL: " + url) | 119 | bb.fatal(d.getVar('PN') + ": LIC_FILES_CHKSUM contains an invalid URL: " + url) |
120 | return " ".join(filelist) | 120 | return " ".join(filelist) |
121 | 121 | ||
122 | def setup_hosttools_dir(dest, toolsvar, d, fatal=True): | ||
123 | tools = d.getVar(toolsvar).split() | ||
124 | origbbenv = d.getVar("BB_ORIGENV", False) | ||
125 | path = origbbenv.getVar("PATH") | ||
126 | bb.utils.mkdirhier(dest) | ||
127 | notfound = [] | ||
128 | for tool in tools: | ||
129 | desttool = os.path.join(dest, tool) | ||
130 | if not os.path.exists(desttool): | ||
131 | srctool = bb.utils.which(path, tool) | ||
132 | if "ccache" in srctool: | ||
133 | srctool = bb.utils.which(path, tool, direction=1) | ||
134 | if srctool: | ||
135 | os.symlink(srctool, desttool) | ||
136 | else: | ||
137 | notfound.append(tool) | ||
138 | if notfound and fatal: | ||
139 | bb.fatal("These tools appear to be unavailable in PATH, please install them in order to proceed:\n%s" % " ".join(notfound)) | ||
140 | |||
122 | addtask fetch | 141 | addtask fetch |
123 | do_fetch[dirs] = "${DL_DIR}" | 142 | do_fetch[dirs] = "${DL_DIR}" |
124 | do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}" | 143 | do_fetch[file-checksums] = "${@bb.fetch.get_checksum_file_list(d)}" |
@@ -219,6 +238,9 @@ python base_eventhandler() { | |||
219 | pkgarch_mapping(e.data) | 238 | pkgarch_mapping(e.data) |
220 | oe.utils.features_backfill("DISTRO_FEATURES", e.data) | 239 | oe.utils.features_backfill("DISTRO_FEATURES", e.data) |
221 | oe.utils.features_backfill("MACHINE_FEATURES", e.data) | 240 | oe.utils.features_backfill("MACHINE_FEATURES", e.data) |
241 | # Works with the line in layer.conf which changes PATH to point here | ||
242 | setup_hosttools_dir(d.expand('${TMPDIR}/hosttools'), 'HOSTTOOLS', d) | ||
243 | setup_hosttools_dir(d.expand('${TMPDIR}/hosttools'), 'HOSTTOOLS_NONFATAL', d, fatal=False) | ||
222 | 244 | ||
223 | if isinstance(e, bb.event.BuildStarted): | 245 | if isinstance(e, bb.event.BuildStarted): |
224 | localdata = bb.data.createCopy(e.data) | 246 | localdata = bb.data.createCopy(e.data) |