diff options
| -rw-r--r-- | meta/classes/cmake.bbclass | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 94ed8061bb..8243f7ce8c 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass | |||
| @@ -70,15 +70,22 @@ CMAKE_BUILD_PARALLEL_LEVEL_task-install = "${@oe.utils.parallel_make(d, True)}" | |||
| 70 | OECMAKE_TARGET_COMPILE ?= "all" | 70 | OECMAKE_TARGET_COMPILE ?= "all" |
| 71 | OECMAKE_TARGET_INSTALL ?= "install" | 71 | OECMAKE_TARGET_INSTALL ?= "install" |
| 72 | 72 | ||
| 73 | def map_host_os_to_system_name(host_os): | ||
| 74 | if host_os.startswith('mingw'): | ||
| 75 | return 'Windows' | ||
| 76 | if host_os.startswith('linux'): | ||
| 77 | return 'Linux' | ||
| 78 | return host_os | ||
| 79 | |||
| 73 | # CMake expects target architectures in the format of uname(2), | 80 | # CMake expects target architectures in the format of uname(2), |
| 74 | # which do not always match TARGET_ARCH, so all the necessary | 81 | # which do not always match TARGET_ARCH, so all the necessary |
| 75 | # conversions should happen here. | 82 | # conversions should happen here. |
| 76 | def map_target_arch_to_uname_arch(target_arch): | 83 | def map_host_arch_to_uname_arch(host_arch): |
| 77 | if target_arch == "powerpc": | 84 | if host_arch == "powerpc": |
| 78 | return "ppc" | 85 | return "ppc" |
| 79 | if target_arch == "powerpc64": | 86 | if host_arch == "powerpc64": |
| 80 | return "ppc64" | 87 | return "ppc64" |
| 81 | return target_arch | 88 | return host_arch |
| 82 | 89 | ||
| 83 | cmake_do_generate_toolchain_file() { | 90 | cmake_do_generate_toolchain_file() { |
| 84 | if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then | 91 | if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then |
| @@ -88,8 +95,8 @@ cmake_do_generate_toolchain_file() { | |||
| 88 | # CMake system name must be something like "Linux". | 95 | # CMake system name must be something like "Linux". |
| 89 | # This is important for cross-compiling. | 96 | # This is important for cross-compiling. |
| 90 | $cmake_crosscompiling | 97 | $cmake_crosscompiling |
| 91 | set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` ) | 98 | set( CMAKE_SYSTEM_NAME ${@map_host_os_to_system_name(d.getVar('HOST_OS'))} ) |
| 92 | set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH'))} ) | 99 | set( CMAKE_SYSTEM_PROCESSOR ${@map_host_arch_to_uname_arch(d.getVar('HOST_ARCH'))} ) |
| 93 | set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) | 100 | set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) |
| 94 | set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) | 101 | set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) |
| 95 | set( CMAKE_C_COMPILER_LAUNCHER ${OECMAKE_C_COMPILER_LAUNCHER} ) | 102 | set( CMAKE_C_COMPILER_LAUNCHER ${OECMAKE_C_COMPILER_LAUNCHER} ) |
