[OE-core] [PATCH] cmake.bbclass: allow cmake to find hosttools

Burton, Ross ross.burton at intel.com
Tue Oct 9 14:06:39 UTC 2018


The hashes don't match anything public and git isn't happy:

Applying: cmake.bbclass: allow cmake to find hosttools
error: sha1 information is lacking or useless (meta/classes/cmake.bbclass).
error: could not build fake ancestor
Patch failed at 0001 cmake.bbclass: allow cmake to find hosttools

Ross

On Tue, 9 Oct 2018 at 14:36, Pascal Bach <pascal.bach at siemens.com> wrote:

> Currently the generated toolchain file is unable to find hosttools as they
> do not appear in the search paths.
>
> One example where this is useful is for projects that query git for their
> version
> number as git is usually provided via HOSTTOOLS.
>
> Just adding HOSTTOOLS_DIR is not enough as binaries are located directly
> under
> ${HOSTTOOLS_DIR}. Like ${HOSTTOOLS_DIR}/git for example.
> CMake however only searches in [s]bin sub directories of the paths
> specified in
> CMAKE_FIND_ROOT_PATH. Explicitly adding / to CMAKE_SYSTEM_PROGRAM_PATH
> makes
> CMake look in the right location.
>
> Signed-off-by: Pascal Bach <pascal.bach at siemens.com>
> ---
>  meta/classes/cmake.bbclass | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
> index 684f71299a..421d85fd9d 100644
> --- a/meta/classes/cmake.bbclass
> +++ b/meta/classes/cmake.bbclass
> @@ -92,7 +92,7 @@ set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}"
> CACHE STRING "LDFLAGS" )
>
>  # only search in the paths provided so cmake doesnt pick
>  # up libraries and tools from the native build machine
> -set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE}
> ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH}
> ${EXTERNAL_TOOLCHAIN})
> +set( CMAKE_FIND_ROOT_PATH ${STAGING_DIR_HOST} ${STAGING_DIR_NATIVE}
> ${CROSS_DIR} ${OECMAKE_PERLNATIVE_DIR} ${OECMAKE_EXTRA_ROOT_PATH}
> ${EXTERNAL_TOOLCHAIN} ${HOSTTOOLS_DIR})
>  set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ${OECMAKE_FIND_ROOT_PATH_MODE} )
>  set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE} )
>  set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ${OECMAKE_FIND_ROOT_PATH_MODE} )
> @@ -113,6 +113,10 @@ list(APPEND CMAKE_MODULE_PATH
> "${STAGING_DATADIR}/cmake/Modules/")
>  # add for non /usr/lib libdir, e.g. /usr/lib64
>  set( CMAKE_SYSTEM_LIBRARY_PATH ${libdir} ${base_libdir})
>
> +# by default CMake only looks in [s]bin subdirectories of
> CMAKE_FIND_ROOT_PATH
> +# adding / makes CMake look for binaries in hosttools too.
> +set( CMAKE_SYSTEM_PROGRAM_PATH /)
> +
>  # avoid treating imports as system includes
>  set( CMAKE_NO_SYSTEM_FROM_IMPORTED ON)
>
> --
> 2.11.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20181009/9e0b5e6b/attachment-0002.html>


More information about the Openembedded-core mailing list