summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2015-03-12 15:54:28 +0000
committerKhem Raj <raj.khem@gmail.com>2015-03-12 15:54:28 +0000
commit0671c7a953cc168559f14f2104e0f7ceac3dd5ae (patch)
tree16a64ff412d42718e8380011d364c7ff45e5fbbc
parent11fd48dea8d00acfb84adf156d7cf47ea9c7a354 (diff)
downloadmeta-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.bbclass10
-rw-r--r--conf/clang.conf9
-rw-r--r--conf/layer.conf6
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
3TOOLCHAINOVERRIDES = ":toolchain-${TOOLCHAIN}"
4TOOLCHAINOVERRIDES[vardepsexclude] = "TOOLCHAIN"
5
6OVERRIDES .= "${TOOLCHAINOVERRIDES}"
7OVERRIDES[vardepsexclude] += "TOOLCHAINOVERRIDES"
8
9require 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 @@
1TOOLCHAIN ?= ""
2
3CC_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS}"
4CXX_toolchain-clang = "${TARGET_PREFIX}clang++ ${TOOLCHAIN_OPTIONS}"
5CPP_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS} -E"
6CCLD_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS}"
7
8TOOLCHAIN_pn-lzo = "clang"
9DEPENDS_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"
7BBFILE_COLLECTIONS += "clang-layer" 7BBFILE_COLLECTIONS += "clang-layer"
8BBFILE_PATTERN_clang-layer := "^${LAYERDIR}/" 8BBFILE_PATTERN_clang-layer := "^${LAYERDIR}/"
9BBFILE_PRIORITY_clang-layer = "7" 9BBFILE_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"
13PREFERRED_PROVIDER_libgcc-initial = "libgcc-initial"
14
15INHERIT += "clang"