[OE-core] [PATCH 03/22] classes/cmake: add arch conversion routine
cmake expects target architecture strings in the format of uname(2), which do not always match TARGET_ARCH (e.g. powerpc vs ppc). Signed-off-by: Alexander Kanavin alexander.kana...@linux.intel.com --- meta/classes/cmake.bbclass | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index c174246..ae3cc02 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -30,12 +30,22 @@ OECMAKE_EXTRA_ROOT_PATH ?= OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = ONLY OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = BOTH +# CMake expects target architectures in the format of uname(2), +# which do not always match TARGET_ARCH, so all the necessary +# conversions should happen here. +def map_target_arch_to_uname_arch(target_arch): +if target_arch == powerpc: +return ppc +if target_arch == powerpc64: +return ppc64 +return target_arch + cmake_do_generate_toolchain_file() { cat ${WORKDIR}/toolchain.cmake EOF # CMake system name must be something like Linux. # This is important for cross-compiling. set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u/' -e 's/^\(Linux\).*/\1/'` ) -set( CMAKE_SYSTEM_PROCESSOR ${TARGET_ARCH} ) +set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH', True))} ) set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) set( CMAKE_ASM_COMPILER ${OECMAKE_C_COMPILER} ) -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 03/22] classes/cmake: add arch conversion routine
cmake expects target architecture strings in the format of uname(2), which do not always match TARGET_ARCH (e.g. powerpc vs ppc). Signed-off-by: Alexander Kanavin alexander.kana...@linux.intel.com --- meta/classes/cmake.bbclass | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index c174246..ae3cc02 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -30,12 +30,22 @@ OECMAKE_EXTRA_ROOT_PATH ?= OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = ONLY OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = BOTH +# CMake expects target architectures in the format of uname(2), +# which do not always match TARGET_ARCH, so all the necessary +# conversions should happen here. +def map_target_arch_to_uname_arch(target_arch): +if target_arch == powerpc: +return ppc +if target_arch == powerpc64: +return ppc64 +return target_arch + cmake_do_generate_toolchain_file() { cat ${WORKDIR}/toolchain.cmake EOF # CMake system name must be something like Linux. # This is important for cross-compiling. set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u/' -e 's/^\(Linux\).*/\1/'` ) -set( CMAKE_SYSTEM_PROCESSOR ${TARGET_ARCH} ) +set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH', True))} ) set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) set( CMAKE_ASM_COMPILER ${OECMAKE_C_COMPILER} ) -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core