Use SDK_TOOLCHAINS_LANGS to tether clang toolchain into SDKs
Signed-off-by: Khem Raj <[email protected]>
---
documentation/ref-manual/variables.rst | 2 +-
meta/classes-recipe/populate_sdk_base.bbclass | 2 ++
.../packagegroup-clang-cross-canadian.bb | 18 ++++++++++++++++++
.../packagegroup-clang-sdk-target.bb | 15 +++++++++++++++
.../packagegroup-core-buildessential.bb | 5 +++++
.../packagegroups/packagegroup-core-sdk.bb | 1 +
6 files changed, 42 insertions(+), 1 deletion(-)
create mode 100644
meta/recipes-core/packagegroups/packagegroup-clang-cross-canadian.bb
create mode 100644
meta/recipes-core/packagegroups/packagegroup-clang-sdk-target.bb
diff --git a/documentation/ref-manual/variables.rst
b/documentation/ref-manual/variables.rst
index 07ed143ac56..77dbe2814cb 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -7715,7 +7715,7 @@ system and gives an overview of their function and
contents.
:term:`SDK_TOOLCHAIN_LANGS`
Specifies programming languages to support in the SDK, as a
- space-separated list. Currently supported items are ``rust`` and ``go``.
+ space-separated list. Currently supported items are ``clang``, ``rust``
and ``go``.
:term:`SDK_UPDATE_URL`
An optional URL for an update server for the extensible SDK. If set,
diff --git a/meta/classes-recipe/populate_sdk_base.bbclass
b/meta/classes-recipe/populate_sdk_base.bbclass
index 031c65f05f3..68a772c3bd2 100644
--- a/meta/classes-recipe/populate_sdk_base.bbclass
+++ b/meta/classes-recipe/populate_sdk_base.bbclass
@@ -64,12 +64,14 @@ SDK_TOOLCHAIN_LANGS:remove:mipsarchn32 = "rust"
TOOLCHAIN_HOST_TASK ?= " \
nativesdk-packagegroup-sdk-host \
packagegroup-cross-canadian-${MACHINE} \
+ ${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'clang',
'packagegroup-clang-cross-canadian-${MACHINE}', '', d)} \
${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'go',
'packagegroup-go-cross-canadian-${MACHINE}', '', d)} \
${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'rust',
'packagegroup-rust-cross-canadian-${MACHINE}', '', d)} \
"
TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
TOOLCHAIN_TARGET_TASK ?= " \
${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')} \
+ ${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'clang',
multilib_pkg_extend(d, 'packagegroup-clang-sdk-target'), '', d)} \
${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'go', multilib_pkg_extend(d,
'packagegroup-go-sdk-target'), '', d)} \
${@bb.utils.contains('SDK_TOOLCHAIN_LANGS', 'rust', multilib_pkg_extend(d,
'libstd-rs'), '', d)} \
target-sdk-provides-dummy \
diff --git
a/meta/recipes-core/packagegroups/packagegroup-clang-cross-canadian.bb
b/meta/recipes-core/packagegroups/packagegroup-clang-cross-canadian.bb
new file mode 100644
index 00000000000..2a6303cc824
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-clang-cross-canadian.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Host SDK package for Clang cross canadian toolchain"
+PN = "packagegroup-clang-cross-canadian-${MACHINE}"
+
+inherit cross-canadian packagegroup
+
+PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
+
+CLANG="clang-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+
+RDEPENDS:${PN} = " \
+ ${@all_multilib_tune_values(d, 'CLANG')} \
+ nativesdk-binutils \
+ nativesdk-clang \
+ nativesdk-glibc-dev \
+ nativesdk-libgcc-dev \
+ nativesdk-compiler-rt-dev \
+ nativesdk-libcxx-dev \
+"
diff --git a/meta/recipes-core/packagegroups/packagegroup-clang-sdk-target.bb
b/meta/recipes-core/packagegroups/packagegroup-clang-sdk-target.bb
new file mode 100644
index 00000000000..2b30642427c
--- /dev/null
+++ b/meta/recipes-core/packagegroups/packagegroup-clang-sdk-target.bb
@@ -0,0 +1,15 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+SUMMARY = "Target packages for the Clang SDK"
+
+inherit packagegroup
+
+RDEPENDS:${PN} = " \
+ clang \
+ libcxx \
+ compiler-rt \
+"
diff --git
a/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
b/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
index 2cd67ad05f8..d140f1f54af 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
@@ -29,3 +29,8 @@ RDEPENDS:packagegroup-core-buildessential = "\
pkgconfig \
"
+RDEPENDS:packagegroup-core-buildessential:append:toolchain-clang = "\
+ clang \
+ libcxx \
+ compiler-rt \
+ "
diff --git a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
index 84e1a41d9a0..c2385a97b44 100644
--- a/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
@@ -30,6 +30,7 @@ RDEPENDS:packagegroup-core-sdk = "\
tcl \
${@bb.utils.contains('TARGET_TOOLCHAIN_LANGS', 'go',
'packagegroup-go-sdk-target', '', d)} \
${@bb.utils.contains('TARGET_TOOLCHAIN_LANGS', 'rust',
'packagegroup-rust-sdk-target', '', d)} \
+ ${@bb.utils.contains('TARGET_TOOLCHAIN_LANGS', 'clang',
'packagegroup-clang-sdk-target', '', d)} \
"
SANITIZERS = "libasan-dev libubsan-dev"
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#206744):
https://lists.openembedded.org/g/openembedded-core/message/206744
Mute This Topic: https://lists.openembedded.org/mt/109411617/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-