From fbbd4a1e1131b02b02826edbac4932e1c83174ff Mon Sep 17 00:00:00 2001 From: Marco Rebhan Date: Tue, 11 Feb 2025 00:44:18 +0100 Subject: [PATCH] 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 --- .../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 5a00098402..654c4a51c5 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 e059c62b31..fc6ca1c2ab 100644 --- a/dev-lang/swift/metadata.xml +++ b/dev-lang/swift/metadata.xml @@ -8,6 +8,11 @@ swiftlang/swift + + + Use llvm-runtimes/libcxx as the default C++ runtime library. + + 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 dd3fd5746b..8853d13cc2 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