[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