<div dir="ltr"><div dir="ltr">The hashes don&#39;t match anything public and git isn&#39;t happy:<div><br></div><div><div>Applying: cmake.bbclass: allow cmake to find hosttools</div><div>error: sha1 information is lacking or useless (meta/classes/cmake.bbclass).</div><div>error: could not build fake ancestor</div><div>Patch failed at 0001 cmake.bbclass: allow cmake to find hosttools</div></div><div><br></div><div>Ross</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, 9 Oct 2018 at 14:36, Pascal Bach &lt;<a href="mailto:pascal.bach@siemens.com">pascal.bach@siemens.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Currently the generated toolchain file is unable to find hosttools as they<br>
do not appear in the search paths.<br>
<br>
One example where this is useful is for projects that query git for their version<br>
number as git is usually provided via HOSTTOOLS.<br>
<br>
Just adding HOSTTOOLS_DIR is not enough as binaries are located directly under<br>
${HOSTTOOLS_DIR}. Like ${HOSTTOOLS_DIR}/git for example.<br>
CMake however only searches in [s]bin sub directories of the paths specified in<br>
CMAKE_FIND_ROOT_PATH. Explicitly adding / to CMAKE_SYSTEM_PROGRAM_PATH makes<br>
CMake look in the right location.<br>
<br>
Signed-off-by: Pascal Bach &lt;<a href="mailto:pascal.bach@siemens.com" target="_blank">pascal.bach@siemens.com</a>&gt;<br>
---<br>
 meta/classes/cmake.bbclass | 6 +++++-<br>
 1 file changed, 5 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass<br>
index 684f71299a..421d85fd9d 100644<br>
--- a/meta/classes/cmake.bbclass<br>
+++ b/meta/classes/cmake.bbclass<br>
@@ -92,7 +92,7 @@ set( CMAKE_CXX_LINK_FLAGS &quot;${OECMAKE_CXX_LINK_FLAGS}&quot; CACHE STRING &quot;LDFLAGS&quot; )<br>
<br>
 # only search in the paths provided so cmake doesnt pick<br>
 # up libraries and tools from the native build machine<br>
-set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN})<br>
+set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE} ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH} ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR})<br>
 set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ${OECMAKE_FIND_ROOT_PATH_MODE} )<br>
 set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE} )<br>
 set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ${OECMAKE_FIND_ROOT_PATH_MODE} )<br>
@@ -113,6 +113,10 @@ list(APPEND CMAKE_MODULE_PATH &quot;${STAGING_DATADIR}/cmake/Modules/&quot;)<br>
 # add for non /usr/lib libdir, e.g. /usr/lib64<br>
 set( CMAKE_SYSTEM_LIBRARY_PATH ${libdir} ${base_libdir})<br>
<br>
+# by default CMake only looks in [s]bin subdirectories of CMAKE_FIND_ROOT_PATH<br>
+# adding / makes CMake look for binaries in hosttools too.<br>
+set( CMAKE_SYSTEM_PROGRAM_PATH /)<br>
+<br>
 # avoid treating imports as system includes<br>
 set( CMAKE_NO_SYSTEM_FROM_IMPORTED ON)<br>
<br>
-- <br>
2.11.0<br>
<br>
-- <br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div>