[OE-core] [PATCH] cmake.bbclass: allow cmake to find hosttools
Pascal Bach
pascal.bach at siemens.com
Tue Oct 9 14:28:30 UTC 2018
On 09.10.2018 16:06, Burton, Ross wrote:
> 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
I noticed too, the patch was based on another patch I sent. Should have sent these as a patch set even tough
they are not really related.
I will resubmit.
Pascal
>
> Ross
>
> On Tue, 9 Oct 2018 at 14:36, Pascal Bach <pascal.bach at siemens.com <mailto: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 <mailto: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 <mailto:Openembedded-core at lists.openembedded.org>
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
More information about the Openembedded-core
mailing list