commit:     fbbd4a1e1131b02b02826edbac4932e1c83174ff
Author:     Marco Rebhan <me <AT> dblsaiko <DOT> net>
AuthorDate: Mon Feb 10 23:44:18 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Mon Feb 10 23:46:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=fbbd4a1e

dev-lang/swift: Add option to compile with libcxx

This is useful on llvm profile systems, where the default C++ compiler
is clang with libcxx.

Signed-off-by: Marco Rebhan <me <AT> dblsaiko.net>

 dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch | 9 ++++++++-
 dev-lang/swift/metadata.xml                                | 5 +++++
 dev-lang/swift/swift-6.0.3.ebuild                          | 9 ++++++++-
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch 
b/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch
index 5a0009840..654c4a51c 100644
--- a/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch
+++ b/dev-lang/swift/files/swift-6.0.3/gentoo-build-preset.patch
@@ -29,7 +29,7 @@
 
 --- a/swift/utils/build-presets.ini
 +++ b/swift/utils/build-presets.ini
-@@ -3051,3 +3051,17 @@ skip-test-cmark
+@@ -3051,3 +3051,24 @@ skip-test-cmark
 
  llvm-cmake-options=
    -DCLANG_DEFAULT_LINKER=gold
@@ -47,3 +47,10 @@
 +llvm-targets-to-build=host
 +skip-build-curl
 +skip-build-zlib
++
++[preset: gentoo,libcxx]
++mixin-preset=gentoo
++libcxx
++llvm-cmake-options=
++       -DCLANG_DEFAULT_LINKER=lld
++       -DCLANG_DEFAULT_CXX_STDLIB=libc++

diff --git a/dev-lang/swift/metadata.xml b/dev-lang/swift/metadata.xml
index e059c62b3..fc6ca1c2a 100644
--- a/dev-lang/swift/metadata.xml
+++ b/dev-lang/swift/metadata.xml
@@ -8,6 +8,11 @@
   <upstream>
     <remote-id type="github">swiftlang/swift</remote-id>
   </upstream>
+  <use>
+    <flag name="libcxx">
+      Use <pkg>llvm-runtimes/libcxx</pkg> as the default C++ runtime library.
+    </flag>
+  </use>
   <slots>
     <slot name="0">
       The original slot for swift-5.10.1; should no longer be used.

diff --git a/dev-lang/swift/swift-6.0.3.ebuild 
b/dev-lang/swift/swift-6.0.3.ebuild
index dd3fd5746..8853d13cc 100644
--- a/dev-lang/swift/swift-6.0.3.ebuild
+++ b/dev-lang/swift/swift-6.0.3.ebuild
@@ -64,6 +64,7 @@ LICENSE="Apache-2.0"
 SLOT="6/0"
 KEYWORDS="~amd64"
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+IUSE="libcxx"
 
 RESTRICT="strip"
 
@@ -182,10 +183,16 @@ src_compile() {
        swift_version="${swift_version#${CATEGORY}/}" # reduce to ${PVR} form
        swift_version="${swift_version%-r[[:digit:]]*}" # reduce to ${P} form
 
+       local swift_preset='gentoo'
+
+       if use libcxx; then
+               swift_preset='gentoo,libcxx'
+       fi
+
        local original_path="${PATH}"
        export PATH="/usr/lib64/${swift_version}/usr/bin:${original_path}"
        "${S}/swift/utils/build-script" \
-               --preset=gentoo \
+               --preset="${swift_preset}" \
                install_destdir="${S}/${P}" \
                installable_package="" \
                || die

Reply via email to