summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/clang/libclc_git.bb
blob: ed31de503ae2538ee2a157ef8b88b4eaaac5397c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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"