Setting CMAKE_AR, CMAKE_LINKER and CMAKE_RANLIB correctly in toolchain.cmake is necessary to correctly build -native packages using CMake.
The reason is that CMake is not able to find the above utilities by itself because CMAKE_FIND_ROOT_PATH_MODE_PROGRAM is set to ONLY so we need to tell it explicitly where to look. Signed-off-by: Pascal Bach <[email protected]> --- meta/classes/cmake.bbclass | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 995ddf1..cae0ad2 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -13,6 +13,9 @@ inherit autotools # C/C++ Compiler (without cpu arch/tune arguments) OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`" OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`" +OECMAKE_AR ?= "`echo ${AR} | sed 's/^\([^ ]*\).*/\1/'`" +OECMAKE_LINKER ?= "`echo ${LD} | sed 's/^\([^ ]*\).*/\1/'`" +OECMAKE_RANLIB ?= "`echo ${RANLIB} | sed 's/^\([^ ]*\).*/\1/'`" # Compiler flags OECMAKE_C_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CFLAGS}" @@ -35,6 +38,11 @@ set( CMAKE_SYSTEM_PROCESSOR ${TARGET_ARCH} ) set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) set( CMAKE_ASM_COMPILER ${OECMAKE_C_COMPILER} ) +# Force the use of cache here otherwise the values will be overridden (http://www.cmake.org/Bug/view.php?id=13038) +set( CMAKE_AR ar CACHE FILEPATH "Archiver" FORCE ) +set( CMAKE_LINKER ld CACHE FILEPATH "Linker" FORCE ) +set( CMAKE_RANLIB ranlib CACHE FILEPATH "Ranlib" FORCE ) + set( CMAKE_C_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "CFLAGS" ) set( CMAKE_CXX_FLAGS "${OECMAKE_CXX_FLAGS}" CACHE STRING "CXXFLAGS" ) set( CMAKE_ASM_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "ASM FLAGS" ) -- 1.9.1 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
