Files
poky/meta/recipes-devtools/clang/libclc_git.bb
Ross Burton 56e1ae0ccf libclc: split out of clang
Split the libclc subproject out of the clang recipe and into a dedicated
libclc recipe.

This is useful because libclc is the OpenCL runtime library and as such
isn't target-specific and needs a native clang to build, not a target
libllvm.

Verified that nothing is dropped by adding clang and libclc to an image
and verifying that the file list is the same before and after this
change.

We need to patch the libclc CMakeLists to allow it to use an out-of-tree
prepare_builtins binary, discussion is ongoing with upstream to resolve
this properly.

(From OE-Core rev: 33a8742a1280b4c6779a7aa487c2dd4a713babe6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-07-21 23:00:18 +01:00

44 lines
1.5 KiB
BlitzBasic

SUMMARY = "Implementation of the library requirements of the OpenCL C programming language."
HOMEPAGE = "https://libclc.llvm.org"
SECTION = "devel"
require common-clang.inc
require common-source.inc
LIC_FILES_CHKSUM = "file://libclc/LICENSE.TXT;md5=7cc795f6cbb2d801d84336b83c8017db"
inherit cmake pkgconfig
# Depend explicitly on clang-native instead of using TOOLCHAIN as the build
# objects from this recipe are build explicitly using clang for GPU targets.
# We could INHIBIT_DEFAULT_DEPS to avoid any other toolchain but then we need
# to wrestle CMake to configure without a toolchain.
DEPENDS += "clang-native spirv-llvm-translator-native"
OECMAKE_SOURCEPATH = "${S}/libclc"
B_NATIVE = "${B}-native"
# Semicolon-separated list of targets to build
LIBCLC_TARGETS ?= "all"
EXTRA_OECMAKE = "-DLIBCLC_TARGETS_TO_BUILD=${LIBCLC_TARGETS} \
-DPREPARE_BUILTINS=${B_NATIVE}/prepare_builtins"
# Need to build a native prepare_builtins binary in target builds. The easiest
# way to do this is with a second native cmake build tree.
do_build_prepare_builtins() {
cmake --fresh -G Ninja \
-S ${OECMAKE_SOURCEPATH} -B ${B_NATIVE} \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain-native.cmake \
-DLIBCLC_TARGETS_TO_BUILD=
cmake --build ${B_NATIVE} --target prepare_builtins
}
do_build_prepare_builtins:class-native() {
:
}
do_configure[prefuncs] += "do_build_prepare_builtins"
FILES:${PN} += "${datadir}/clc"
BBCLASSEXTEND = "native nativesdk"