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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to