commit:     07911fadb2494944810e4a49cc72291539506d3a
Author:     Horodniceanu Andrei <a.horodniceanu <AT> protonmail <DOT> com>
AuthorDate: Sat Mar 11 17:13:13 2023 +0000
Commit:     Marco Leise <marco.leise <AT> gmx <DOT> de>
CommitDate: Sat Mar 11 18:26:39 2023 +0000
URL:        https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=07911fad

eclass/dlang.eclass: Change gdc slot calculation.

Signed-off-by: Horodniceanu Andrei <a.horodniceanu <AT> protonmail.com>

 .../gdmd/{gdmd-11.2.1.ebuild => gdmd-11.ebuild}    |  6 ++--
 .../gdmd/{gdmd-11.3.0.ebuild => gdmd-12.ebuild}    |  6 ++--
 eclass/dlang-compilers.eclass                      |  7 ++--
 eclass/dlang.eclass                                | 41 ++++++++++++++++------
 profiles/use.desc                                  |  7 ++--
 5 files changed, 46 insertions(+), 21 deletions(-)

diff --git a/dev-util/gdmd/gdmd-11.2.1.ebuild b/dev-util/gdmd/gdmd-11.ebuild
similarity index 79%
rename from dev-util/gdmd/gdmd-11.2.1.ebuild
rename to dev-util/gdmd/gdmd-11.ebuild
index 48216ba..59d7b8b 100644
--- a/dev-util/gdmd/gdmd-11.2.1.ebuild
+++ b/dev-util/gdmd/gdmd-11.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -8,8 +8,8 @@ HOMEPAGE="https://www.gdcproject.org/";
 LICENSE="GPL-3+"
 
 SLOT="${PV}"
-KEYWORDS=" amd64 arm arm64 ~ia64 ~m68k ~mips ppc ~ppc64 ~riscv ~s390 x86"
-RDEPEND="=sys-devel/gcc-${PV}*[d]"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv 
~s390 ~sparc ~x86"
+RDEPEND="sys-devel/gcc:${PV}[d]"
 RELEASE="0.1.0"
 
SRC_URI="https://codeload.github.com/D-Programming-GDC/gdmd/tar.gz/script-${RELEASE}
 -> gdmd-${RELEASE}.tar.gz"
 PATCHES="${FILESDIR}/${PN}-no-dmd-conf.patch"

diff --git a/dev-util/gdmd/gdmd-11.3.0.ebuild b/dev-util/gdmd/gdmd-12.ebuild
similarity index 79%
rename from dev-util/gdmd/gdmd-11.3.0.ebuild
rename to dev-util/gdmd/gdmd-12.ebuild
index 0d5b47f..e123d22 100644
--- a/dev-util/gdmd/gdmd-11.3.0.ebuild
+++ b/dev-util/gdmd/gdmd-12.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -8,8 +8,8 @@ HOMEPAGE="https://www.gdcproject.org/";
 LICENSE="GPL-3+"
 
 SLOT="${PV}"
-KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 x86"
-RDEPEND="=sys-devel/gcc-${PV}*[d]"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86"
+RDEPEND="sys-devel/gcc:${PV}[d]"
 RELEASE="0.1.0"
 
SRC_URI="https://codeload.github.com/D-Programming-GDC/gdmd/tar.gz/script-${RELEASE}
 -> gdmd-${RELEASE}.tar.gz"
 PATCHES="${FILESDIR}/${PN}-no-dmd-conf.patch"

diff --git a/eclass/dlang-compilers.eclass b/eclass/dlang-compilers.eclass
index a872872..baf547f 100644
--- a/eclass/dlang-compilers.eclass
+++ b/eclass/dlang-compilers.eclass
@@ -54,8 +54,11 @@ dlang-compilers_declare_versions() {
 
        # GDC (hppa, sparc: masked "d" USE-flag)
        __dlang_gdc_frontend=(
-               ["11.2.1"]="2.076 amd64 arm arm64 ~ia64 ~m68k ~mips ppc ~ppc64 
~riscv ~s390 x86"
-               ["11.3.0"]="2.076 ~alpha amd64 arm arm64 ~ia64 ~m68k ~mips ppc 
ppc64 ~riscv ~s390 x86"
+               ["11.3.1_p20221209"]="2.076 ~alpha ~amd64 ~arm ~arm64 ~hppa 
~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+               ["11.3.1_p20230120"]="2.076 ~alpha ~amd64 ~arm ~arm64 ~hppa 
~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+               ["11.3.1_p20230303"]="2.076 ~alpha ~amd64 ~arm ~arm64 ~hppa 
~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+               ["12.2.1_p20230121"]="2.100 ~alpha ~amd64 ~arm ~arm64 ~hppa 
~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86"
+               ["12.2.1_p20230304"]="2.100 ~alpha ~amd64 ~arm ~arm64 ~hppa 
~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
        )
 
        # LDC

diff --git a/eclass/dlang.eclass b/eclass/dlang.eclass
index 5c86088..8c1eda4 100644
--- a/eclass/dlang.eclass
+++ b/eclass/dlang.eclass
@@ -274,7 +274,8 @@ dlang_system_imports() {
        if [[ "${DLANG_VENDOR}" == "DigitalMars" ]]; then
                echo "/usr/lib/dmd/${DC_VERSION}/import"
        elif [[ "${DLANG_VENDOR}" == "GNU" ]]; then
-               echo "/usr/lib/gcc/${CHOST_default}/${DC_VERSION}/include/d"
+               # gcc's SLOT is its major version component.
+               echo "/usr/lib/gcc/${CHOST_default}/$(ver_cut 1 
${DC_VERSION})/include/d"
        elif [[ "${DLANG_VENDOR}" == "LDC" ]]; then
                echo "/usr/lib/ldc2/${DC_VERSION}/include/d"
                echo "/usr/lib/ldc2/${DC_VERSION}/include/d/ldc"
@@ -324,7 +325,7 @@ __dlang_compiler_masked_archs_for_version_range() {
 
        local iuse=$1
        if [[ "$iuse" == gdc* ]]; then
-               local depend="$iuse? ( "=dev-util/gdmd-$(ver_rs 1-2 . 
${iuse#gdc-})*" )"
+               local depend="$iuse? ( $2 dev-util/gdmd:$(ver_cut 1 
${iuse#gdc-}) )"
        else
                local depend="$iuse? ( $2 )"
        fi
@@ -407,8 +408,8 @@ __dlang_filter_compilers() {
        # GDC (doesn't support sub-slots, to stay compatible with upstream GCC)
        for dc_version in "${!__dlang_gdc_frontend[@]}"; do
                mapping="${__dlang_gdc_frontend[${dc_version}]}"
-               iuse=gdc-$(ver_rs 1- _ $dc_version)
-               depend="=sys-devel/gcc-$dc_version*[d,-d-bootstrap(-)]"
+               iuse=gdc-$(ver_rs 1-2 _ $dc_version)
+               depend="~sys-devel/gcc-$dc_version[d,-d-bootstrap(-)]"
                __dlang_compiler_masked_archs_for_version_range "$iuse" 
"$depend" "$mapping" "$1" "$2"
        done
 
@@ -524,7 +525,7 @@ __dlang_compiler_to_dlang_version() {
 }
 
 __dlang_build_configurations() {
-       local variants use_flag use_flags
+       local variants version_component use_flag use_flags
 
        if [ -z ${DLANG_USE_COMPILER+x} ]; then
                use_flags="${USE}"
@@ -534,12 +535,29 @@ __dlang_build_configurations() {
        for use_flag in $use_flags; do
                case ${use_flag} in
                        dmd-* | gdc-* | ldc-* | ldc2-*)
+                               # On the left are possible $use_flag,
+                               # on the right, the correct $version_component:
+                               #
+                               # dmd-2_088              dmd-2.088
+                               # gdc-12_2_0             gdc-12.2.0
+                               # gdc-11_3_1_p20230303   gdc-11.3.1_p20230303
+                               # ldc-1_29               ldc-1.29
+                               # ldc2-1_30              ldc2-1.30
+                               #
+                               # Note: for ldc2 there is an empty separater 
betwen the 'c' and the '2'.
+                               # Same thing for gdc, between the 'p' and the 
'2'.
+                               if [[ "${use_flag}" =~ ldc2-* ]]; then
+                                       version_component=$(ver_rs 3 . 
${use_flag})
+                               else
+                                       version_component=$(ver_rs 2-3 . 
${use_flag})
+                               fi
+
                                if [ "${DLANG_PACKAGE_TYPE}" == "multi" ]; then
                                        for abi in 
$(multilib_get_enabled_abis); do
-                                               variants="${variants} 
${abi}-${use_flag//_/.}"
+                                               variants="${variants} 
${abi}-${version_component}"
                                        done
                                else
-                                       variants="default-${use_flag//_/.}"
+                                       variants="default-${version_component}"
                                fi
                                ;;
                        selfhost)
@@ -595,12 +613,13 @@ __dlang_use_build_vars() {
                export DLANG_UNITTEST_FLAG="-unittest"
        elif [[ "${DLANG_VENDOR}" == "GNU" ]]; then
                # Note that ldc2 expects the compiler name to be 'gdmd', not 
'x86_64-pc-linux-gnu-gdmd'.
-               export 
DC="/usr/${CHOST_default}/gcc-bin/${DC_VERSION}/${CHOST_default}-gdc"
-               export DMD="/usr/${CHOST_default}/gcc-bin/${DC_VERSION}/gdmd"
+               # gcc's SLOT is its major version component.
+               export DC="/usr/${CHOST_default}/gcc-bin/$(ver_cut 1 
${DC_VERSION})/${CHOST_default}-gdc"
+               export DMD="/usr/${CHOST_default}/gcc-bin/$(ver_cut 1 
${DC_VERSION})/gdmd"
                if [[ "${DLANG_PACKAGE_TYPE}" == "multi" ]] && 
multilib_is_native_abi; then
-                       export 
LIBDIR_${ABI}="lib/gcc/${CHOST_default}/${DC_VERSION}"
+                       export 
LIBDIR_${ABI}="lib/gcc/${CHOST_default}/$(ver_cut 1 ${DC_VERSION})"
                else
-                       export 
LIBDIR_${ABI}="lib/gcc/${CHOST_default}/${DC_VERSION}/${MODEL}"
+                       export 
LIBDIR_${ABI}="lib/gcc/${CHOST_default}/$(ver_cut 1 ${DC_VERSION})/${MODEL}"
                fi
                export DCFLAGS="${GDCFLAGS} -shared-libphobos"
                export DLANG_LINKER_FLAG="-Xlinker "

diff --git a/profiles/use.desc b/profiles/use.desc
index f8d195d..4898598 100644
--- a/profiles/use.desc
+++ b/profiles/use.desc
@@ -34,7 +34,10 @@ dmd-2_096 - Build for DMD 2.096
 dmd-2_097 - Build for DMD 2.097
 dmd-2_098 - Build for DMD 2.098
 dmd-2_099 - Build for DMD 2.099
-gdc-11_2_1 - Build for GCC 11.2.1
-gdc-11_3_0 - Build for GCC 11.3.0
+gdc-11_3_1_p20221209 - Build for GCC 11.3.1_p20221209
+gdc-11_3_1_p20230120 - Build for GCC 11.3.1_p20230120
+gdc-11_3_1_p20230303 - Build for GGG 11.3.1_p20230303
+gdc-12_2_1_p20230121 - Build for GGG 12.2.1_p20230121
+gdc-12_2_1_p20230304 - Build for GGG 12.2.1_p20230304
 ldc2-1_29 - Build for ldc2 1.29
 ldc2-1_30 - Build for ldc2 1.30

Reply via email to