diff options
Diffstat (limited to 'meta/classes/cmake.bbclass')
-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} ) |