diff options
author | Khem Raj <raj.khem@gmail.com> | 2015-03-12 15:54:28 +0000 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2015-03-12 15:54:28 +0000 |
commit | 0671c7a953cc168559f14f2104e0f7ceac3dd5ae (patch) | |
tree | 16a64ff412d42718e8380011d364c7ff45e5fbbc | |
parent | 11fd48dea8d00acfb84adf156d7cf47ea9c7a354 (diff) | |
download | meta-clang-0671c7a953cc168559f14f2104e0f7ceac3dd5ae.tar.gz |
classes: Add a mechanism, to select components to be able to select default compiler
We add clang as an alternative compiler, it sitll uses underlying
binutils and compiler runtime, it will only do the compilation and defer
link, to GNU ld/gold, to compile a component usign clang add
TOOLCHAIN_pn-<recipe-name> = "clang"
DEPENDS_append_pn-<recipe-name> = " clang-cross "
And OE will start using clang to compile <recipe-name>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | classes/clang.bbclass | 10 | ||||
-rw-r--r-- | conf/clang.conf | 9 | ||||
-rw-r--r-- | conf/layer.conf | 6 |
3 files changed, 25 insertions, 0 deletions
diff --git a/classes/clang.bbclass b/classes/clang.bbclass new file mode 100644 index 0000000..f6cb648 --- /dev/null +++ b/classes/clang.bbclass | |||
@@ -0,0 +1,10 @@ | |||
1 | |||
2 | # Add the necessary override | ||
3 | TOOLCHAINOVERRIDES = ":toolchain-${TOOLCHAIN}" | ||
4 | TOOLCHAINOVERRIDES[vardepsexclude] = "TOOLCHAIN" | ||
5 | |||
6 | OVERRIDES .= "${TOOLCHAINOVERRIDES}" | ||
7 | OVERRIDES[vardepsexclude] += "TOOLCHAINOVERRIDES" | ||
8 | |||
9 | require conf/clang.conf | ||
10 | |||
diff --git a/conf/clang.conf b/conf/clang.conf new file mode 100644 index 0000000..8565721 --- /dev/null +++ b/conf/clang.conf | |||
@@ -0,0 +1,9 @@ | |||
1 | TOOLCHAIN ?= "" | ||
2 | |||
3 | CC_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS}" | ||
4 | CXX_toolchain-clang = "${TARGET_PREFIX}clang++ ${TOOLCHAIN_OPTIONS}" | ||
5 | CPP_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS} -E" | ||
6 | CCLD_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS}" | ||
7 | |||
8 | TOOLCHAIN_pn-lzo = "clang" | ||
9 | DEPENDS_append_pn-lzo = " clang-cross " | ||
diff --git a/conf/layer.conf b/conf/layer.conf index 91c6ff0..ec86d64 100644 --- a/conf/layer.conf +++ b/conf/layer.conf | |||
@@ -7,3 +7,9 @@ BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend" | |||
7 | BBFILE_COLLECTIONS += "clang-layer" | 7 | BBFILE_COLLECTIONS += "clang-layer" |
8 | BBFILE_PATTERN_clang-layer := "^${LAYERDIR}/" | 8 | BBFILE_PATTERN_clang-layer := "^${LAYERDIR}/" |
9 | BBFILE_PRIORITY_clang-layer = "7" | 9 | BBFILE_PRIORITY_clang-layer = "7" |
10 | |||
11 | #PREFERRED_PROVIDER_gcc-cross-initial-${TARGET_ARCH}_forcevariable = "clang-cross" | ||
12 | #PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial_forcevariable = "clang-cross" | ||
13 | PREFERRED_PROVIDER_libgcc-initial = "libgcc-initial" | ||
14 | |||
15 | INHERIT += "clang" | ||