From fd1517e2b51a170f2427122c6b95396db251d827 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 10 Aug 2022 14:35:29 +0100 Subject: classes: Update classes to match new bitbake class scope functionality Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie --- meta/classes/cmake.bbclass | 223 --------------------------------------------- 1 file changed, 223 deletions(-) delete mode 100644 meta/classes/cmake.bbclass (limited to 'meta/classes/cmake.bbclass') diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass deleted file mode 100644 index 554b948c32..0000000000 --- a/meta/classes/cmake.bbclass +++ /dev/null @@ -1,223 +0,0 @@ -# -# Copyright OpenEmbedded Contributors -# -# SPDX-License-Identifier: MIT -# - -# Path to the CMake file to process. -OECMAKE_SOURCEPATH ??= "${S}" - -DEPENDS:prepend = "cmake-native " -B = "${WORKDIR}/build" - -# What CMake generator to use. -# The supported options are "Unix Makefiles" or "Ninja". -OECMAKE_GENERATOR ?= "Ninja" - -python() { - generator = d.getVar("OECMAKE_GENERATOR") - if "Unix Makefiles" in generator: - args = "-G '" + generator + "' -DCMAKE_MAKE_PROGRAM=" + d.getVar("MAKE") - d.setVar("OECMAKE_GENERATOR_ARGS", args) - d.setVarFlag("do_compile", "progress", "percent") - elif "Ninja" in generator: - args = "-G '" + generator + "' -DCMAKE_MAKE_PROGRAM=ninja" - d.appendVar("DEPENDS", " ninja-native") - d.setVar("OECMAKE_GENERATOR_ARGS", args) - d.setVarFlag("do_compile", "progress", r"outof:^\[(\d+)/(\d+)\]\s+") - else: - bb.fatal("Unknown CMake Generator %s" % generator) -} -OECMAKE_AR ?= "${AR}" - -# Compiler flags -OECMAKE_C_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CFLAGS}" -OECMAKE_CXX_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS}" -OECMAKE_C_FLAGS_RELEASE ?= "-DNDEBUG" -OECMAKE_CXX_FLAGS_RELEASE ?= "-DNDEBUG" -OECMAKE_C_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CPPFLAGS} ${LDFLAGS}" -OECMAKE_CXX_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} ${LDFLAGS}" - -def oecmake_map_compiler(compiler, d): - args = d.getVar(compiler).split() - if args[0] == "ccache": - return args[1], args[0] - return args[0], "" - -# C/C++ Compiler (without cpu arch/tune arguments) -OECMAKE_C_COMPILER ?= "${@oecmake_map_compiler('CC', d)[0]}" -OECMAKE_C_COMPILER_LAUNCHER ?= "${@oecmake_map_compiler('CC', d)[1]}" -OECMAKE_CXX_COMPILER ?= "${@oecmake_map_compiler('CXX', d)[0]}" -OECMAKE_CXX_COMPILER_LAUNCHER ?= "${@oecmake_map_compiler('CXX', d)[1]}" - -# clear compiler vars for allarch to avoid sig hash difference -OECMAKE_C_COMPILER_allarch = "" -OECMAKE_C_COMPILER_LAUNCHER_allarch = "" -OECMAKE_CXX_COMPILER_allarch = "" -OECMAKE_CXX_COMPILER_LAUNCHER_allarch = "" - -OECMAKE_RPATH ?= "" -OECMAKE_PERLNATIVE_DIR ??= "" -OECMAKE_EXTRA_ROOT_PATH ?= "" - -OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "ONLY" -OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM:class-native = "BOTH" - -EXTRA_OECMAKE:append = " ${PACKAGECONFIG_CONFARGS}" - -export CMAKE_BUILD_PARALLEL_LEVEL -CMAKE_BUILD_PARALLEL_LEVEL:task-compile = "${@oe.utils.parallel_make(d, False)}" -CMAKE_BUILD_PARALLEL_LEVEL:task-install = "${@oe.utils.parallel_make(d, True)}" - -OECMAKE_TARGET_COMPILE ?= "all" -OECMAKE_TARGET_INSTALL ?= "install" - -def map_host_os_to_system_name(host_os): - if host_os.startswith('mingw'): - return 'Windows' - if host_os.startswith('linux'): - return 'Linux' - return host_os - -# 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_host_arch_to_uname_arch(host_arch): - if host_arch == "powerpc": - return "ppc" - if host_arch == "powerpc64le": - return "ppc64le" - if host_arch == "powerpc64": - return "ppc64" - return host_arch - -cmake_do_generate_toolchain_file() { - if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then - cmake_crosscompiling="set( CMAKE_CROSSCOMPILING FALSE )" - fi - cat > ${WORKDIR}/toolchain.cmake <