commit: 1095e67550d6cbb6a7b635f95a56bb3ef04a7dc4 Author: Andrei Horodniceanu <a.horodniceanu <AT> proton <DOT> me> AuthorDate: Thu Aug 7 19:15:50 2025 +0000 Commit: Horodniceanu Andrei <a.horodniceanu <AT> proton <DOT> me> CommitDate: Thu Aug 7 19:15:50 2025 +0000 URL: https://gitweb.gentoo.org/repo/user/dlang.git/commit/?id=1095e675
dev-util/dub: drop 1.35.1, 1.37.0, 1.38.1, 1.38.1-r1 Signed-off-by: Andrei Horodniceanu <a.horodniceanu <AT> proton.me> dev-util/dub/Manifest | 3 - dev-util/dub/dub-1.35.1.ebuild | 46 ------ dev-util/dub/dub-1.37.0.ebuild | 182 --------------------- dev-util/dub/dub-1.38.1-r1.ebuild | 126 -------------- dev-util/dub/dub-1.38.1.ebuild | 169 ------------------- .../dub-1.36.0-fix-wno-error-not-applying.patch | 110 ------------- 6 files changed, 636 deletions(-) diff --git a/dev-util/dub/Manifest b/dev-util/dub/Manifest index 779d2f7..6149a58 100644 --- a/dev-util/dub/Manifest +++ b/dev-util/dub/Manifest @@ -1,6 +1,3 @@ -DIST dub-1.35.1.tar.gz 1494965 BLAKE2B 400e210584660f7ac67732006ca6d88156adbbf2bf221aa244e317bf7c2772a6a01d9e141252fbf0cfde4c07302ee533593f3a2f418f9e120edc7359a83180cf SHA512 a371a7ec7003a4a4fb642a3567fce0685c99f4940a02de94d026bdc6fe4e84512b16e4bb57673da4d3b8e25177cc3df329da41862086cecc7b98aec1ebf9e4e7 -DIST dub-1.37.0.tar.gz 1515440 BLAKE2B 13bb5b5541af6ae11e45cf130e9bfb706e7fb59797e497a33e419500262fd70ef1ac657b2b230224010d78b36361f7974d38b22fd36fa70f580c3b7f7a578457 SHA512 dc4331b77681d05bc5c6f36f5179d2a1220f3e1cbfc64ba27104fb2b716bd7e2b70c5b3b4d0e8b786caf36632c2fd774bbd51b235389ff38cfde87138fc9de18 -DIST dub-1.38.1.tar.gz 1517185 BLAKE2B 8d25b1f43059bc95cf921bd2aa8842abc82ef0d18321d2c9b46698a0d4a24a3fd4d740b20af7ba11cf6659f527b553378578040c9c0bac5d4629b4e024b3764a SHA512 d08afc9c5266fa5df78cefd3439f4477a80a6441446e202ee5d07bfac35db7521b836eca7f0944dfa98b53da948759ee1c91f6b6903c6e04b6d155c7ed805e80 DIST dub-1.40.0-man-pages.tar.gz 10397 BLAKE2B 2f2f28e7be3d4bda379b436b9d8765b6c93688283d4de880046a19adae9c42311deb9722dfc76a8ccbb798ba840458546802f72d79bf20710cee57bc65bccc08 SHA512 d392f796acfe72a156d993684212e4cbb997151de65185035092378aa7184cba2bc7c56b9a20d42bf6560e5e2fc590bd30d3fa00d0cd8ffa6ea4d955fcea1c34 DIST dub-1.40.0.tar.gz 1525761 BLAKE2B 07b128a7783d1337104ccc8227b7078db5549832912e000019a627a3aa41de0628d66aede403417eb136178684b1a4289ed780c1acaf4b4db00262aec16065c2 SHA512 c8ffa874be206f6e8041635062cd1fa71853d8ccaf9c5eb70353f492b8659c81ab2277e4c19824945f3a527cd4f87b35adc2fa7572b0bf5f80abded63de32ba6 DIST gitcompatibledubpackage-1.0.1.zip 1354 BLAKE2B 60c3ff78c9cc0ca16f36bfdb4d91f6ec7e8d1bc7fb2fae9488e3f24b33fc3b578157f3c2fd9f892743b1fba7ec473267d9027febd3c27ac2af52733e146c341d SHA512 0adb8a97cce0aaac1dbaea978aacf801071457c06413e618b0feb1adaf4169c7a1acbfac2d9c192fada4f2f8bd44e1ea3b9fce8c7cb3fb8bf364eba75f559122 diff --git a/dev-util/dub/dub-1.35.1.ebuild b/dev-util/dub/dub-1.35.1.ebuild deleted file mode 100644 index 3c503a8..0000000 --- a/dev-util/dub/dub-1.35.1.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Package and build management system for D" -HOMEPAGE="https://code.dlang.org/" -LICENSE="MIT" - -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="debug" - -GITHUB_URI="https://codeload.github.com/dlang" -SRC_URI="${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${PN}-${PV}.tar.gz" - -# Upstream recommends the latest version available -DLANG_VERSION_RANGE="2.100-2.106" -DLANG_PACKAGE_TYPE="single" - -inherit dlang - -d_src_compile() { - local imports=source versions="DubApplication DubUseCurl" - dlang_compile_bin bin/dub $(<build-files.txt) - - ## Currently broken with gdc - # Generate man pages - #bin/dub scripts/man/gen_man.d || die "Could not generate man pages." -} - -d_src_test() { - echo "Test phase disabled due to multiple problems." - #DUB="${S}/bin/dub" test/run-unittest.sh || die "Test phase failed" -} - -d_src_install() { - dobin bin/dub - dodoc README.md - - ## Currently broken with gdc - # All the files in the directory below, with the exception of gen_man.d and README, are man pages. - # To keep the ebuild simple, we will just glob on the files that end in .1 since there are currently - # no man pages in a different section. - #doman scripts/man/*.1 -} diff --git a/dev-util/dub/dub-1.37.0.ebuild b/dev-util/dub/dub-1.37.0.ebuild deleted file mode 100644 index c998570..0000000 --- a/dev-util/dub/dub-1.37.0.ebuild +++ /dev/null @@ -1,182 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Package and build management system for D" -HOMEPAGE="https://code.dlang.org/" - -DUB_TEST_DEPS=( - [email protected] - [email protected] - [email protected] -) -generate_dub_test_dependencies() { - local dep - for dep in "${DUB_TEST_DEPS[@]}"; do - local depName depVersion - depName="${dep%@*}" - depVersion="${dep#*@}" - echo "https://code.dlang.org/packages/${depName}/${depVersion}.zip -> ${depName}-${depVersion}.zip" - done -} - -GITHUB_URI="https://codeload.github.com/dlang" -SRC_URI=" - ${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${PN}-${PV}.tar.gz - test? ( - $(generate_dub_test_dependencies) - ) -" -LICENSE="MIT" - -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" - -IUSE="doc test" -RESTRICT="!test? ( test )" - -DLANG_COMPAT=( dmd-2_{106..108} gdc-1{3,4} ldc2-1_{35..38} ) - -inherit dlang-single shell-completion - -REQUIRED_USE=${DLANG_REQUIRED_USE} -DEPEND=${DLANG_DEPS} -BDEPEND=${DLANG_DEPS} -RDEPEND=${DLANG_DEPS} - -src_unpack() { - unpack "${P}.tar.gz" - - if use test; then - # Copy the archives locally. Some tests do need to perform an - # actual fetch operation so make all of them available as - # archives and let dub figure out the rest. - local store="${T}/dub-test-deps" - mkdir -p "${store}" || die - - local dep - for dep in "${DUB_TEST_DEPS[@]}"; do - local depName depVersion - depName="${dep%@*}" - depVersion="${dep#*@}" - - cp "${DISTDIR}/${depName}-${depVersion}.zip" "${store}" || die - done - - # Generate a settings.json file that points to the directory with all the deps. - # Note that "skipRegistry" doesn't seem to be respected. - cat <<EOF > "${T}/settings.json" -{ - "registryUrls": [ - "file://${store}" - ], - "skipRegistry": "standard" -} -EOF - fi -} - -src_compile() { - # gdc generates unaligned memory accesses with optimizations and avx - # enabled. It has been fixed upstream. See: - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171 - # Fixed in >=sys-devel/gcc-13.2.1_p20240330. Adding -mno-sse2 makes - # tests fail so defer to removing the common way users get avx - # instructions enabled (-march=native) and warn them. - if [[ ${ARCH} == amd64 && ${EDC} == gdc-13 && ${DCFLAGS} == *-march=native* ]]; then - ewarn "<sys-devel/gcc-13.2.1_p20240330 is known to generate invalid code" - ewarn "on amd64 with certain flags. For this reason -march=native will be" - ewarn "removed from your flags. Feel free to use -march=<cpu> to bypass this" - ewarn "precaution." - ewarn "" - ewarn "See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171" - dlang-filter-dflags "gdc*" "-march=native" - fi - - local imports=source versions="DubApplication DubUseCurl" - dlang_compile_bin bin/dub $(<build-files.txt) - - # Generate man pages. Rebuids dub so put it behind a USE flag. - if use doc; then - einfo "Generating man pages" - # You're supposed to be able to do ./bin/dub scrips/man/gen_man.d - # but it gives linking errors with gdc. - - # $imports is set up above. - versions=DubUseCurl - dlang_compile_bin scripts/man/gen_man{,.d} \ - $(sed '/^source\/app.d$/d' build-files.txt) - ./scripts/man/gen_man || die "Could not generate man pages" - fi -} - -src_test() { - # Setup the environment for the tests. - local -x DUB="${S}/bin/dub" - local -x DUB_HOME="${T}/dub-home" # where to put artifacts - - # Note, disabling tests is possible yet very hard. You have to - # create a bash variable containing a regex (to be used in =~) that - # matches all the tests that you want *to* run. It's probably easier - # to delete the subdirectory under ${S}/test. - - # Tries to connect to github.com and fails due to the network sandbox - rm -rf "${S}/test/git-dependency" || die - # Doesn't work on non amd64/x86 - if [[ ${ARCH} == arm64 ]]; then - rm -rf test/issue1447-build-settings-vars || die - fi - - local dropImportCTest - # We have an importC test and not all compilers pass it properly. - # gdc doesn't support #include's in its importC implementation yet. - # Only check == 13 since 12 is skipped by the script. - [[ ${EDC} == gdc-13 ]] && dropImportCTest=1 - # Nor does <=ldc2-1.32. - [[ ${EDC} == ldc* ]] && $(ver_test $(dlang_get_be_version) -le 1.32) && dropImportCTest=1 - # dmd can do #include's but there are some other errors about - # __float128 in <=dmd-2.102 on x86. - [[ ${EDC} == dmd* ]] && $(ver_test $(dlang_get_be_version) -le 2.102) \ - && [[ ${ARCH} == x86 ]] && dropImportCTest=1 - if [[ ${dropImportCTest} ]]; then - rm -rf "${S}/test/use-c-sources" || die - fi - - # Put the configuration file relative to the dub binary: - # <dub-bin-dir>/../etc/dub/settings.json as per - # https://dub.pm/dub-reference/settings so that it's picked up - # automatically. - mkdir -p "${S}/bin/../etc/dub" || die - cp "${T}/settings.json" "${S}/bin/../etc/dub/" \ - || die "Could not copy dub configuration file" - - # See https://bugs.gentoo.org/921581 we have to remove -op (preserve - # source path for output files) from the flags lest the sandbox - # trips us up. This shouldn't be a problem anymore with dlang-single. - dlang-filter-dflags "*" "--op" "-op" - - # Append -Wno-error or equivalent - DCFLAGS+=" $(dlang_get_wno_error_flag)" - - # Run the unittests in the source files. - # "skipRegistry" from settings.json isn't respected. Nothing breaks - # but the info messages are clearer (they don't include references to URLs). - DFLAGS="${DCFLAGS}" "${DUB}" --skip-registry=all test -v -c application - - # Run the integration tests. - DFLAGS="${DCFLAGS}" FRONTEND="$(dlang_get_fe_version)" test/run-unittest.sh \ - || die "Tests failed" -} - -src_install() { - dobin bin/dub - dodoc README.md - - # Make sure there are no man files in any other section. - use doc && doman scripts/man/*.1 - - newbashcomp scripts/bash-completion/${PN}.bash ${PN} - dozshcomp scripts/zsh-completion/_${PN} - dofishcomp scripts/fish-completion/${PN}.fish -} diff --git a/dev-util/dub/dub-1.38.1-r1.ebuild b/dev-util/dub/dub-1.38.1-r1.ebuild deleted file mode 100644 index 43cf734..0000000 --- a/dev-util/dub/dub-1.38.1-r1.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DLANG_COMPAT=( dmd-2_{106..109} gdc-1{3,4} ldc2-1_{35..40} ) -DUB_DEPENDENCIES=( - [email protected] - [email protected] - [email protected] -) -inherit dlang-single dub shell-completion - -DESCRIPTION="Package and build management system for D" -HOMEPAGE="https://code.dlang.org/" - -GITHUB_URI="https://codeload.github.com/dlang" -SRC_URI=" - ${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${P}.tar.gz - test? ( ${DUB_DEPENDENCIES_URIS} ) -" -LICENSE="MIT" - -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE="doc test" -RESTRICT="!test? ( test )" - -RDEPEND+=" virtual/pkgconfig" - -src_unpack() { - dub_gen_settings - unpack "${P}.tar.gz" - use test && dub_copy_dependencies_locally "${DUB_DEPENDENCIES[@]}" -} - -src_configure() { - # gdc generates unaligned memory accesses with optimizations and avx - # enabled. It has been fixed upstream. See: - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171 - # Fixed in >=sys-devel/gcc-13.2.1_p20240330. Adding -mno-sse2 makes - # tests fail so defer to removing the common way users get avx - # instructions enabled (-march=native) and warn them. - if [[ ${ARCH} == amd64 && ${EDC} == gdc-13 && ${DCFLAGS} == *-march=native* ]]; then - ewarn "<sys-devel/gcc-13.2.1_p20240330 is known to generate invalid code" - ewarn "on amd64 with certain flags. For this reason -march=native will be" - ewarn "removed from your flags. Feel free to use -march=<cpu> to bypass this" - ewarn "precaution." - ewarn "" - ewarn "See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171" - dlang-filter-dflags "gdc*" "-march=native" - fi -} - -src_compile() { - local imports=source versions="DubApplication DubUseCurl" - dlang_compile_bin bin/dub $(<build-files.txt) - - # Generate man pages. Rebuilds dub so put it behind a USE flag. - if use doc; then - einfo "Generating man pages" - # You're supposed to be able to do ./bin/dub scrips/man/gen_man.d - # but it gives linking errors with gdc. - - # $imports is set up above. - versions=DubUseCurl - dlang_compile_bin scripts/man/gen_man{,.d} \ - $(sed '/^source\/app.d$/d' build-files.txt) - ./scripts/man/gen_man || die "Could not generate man pages" - fi -} - -src_test() { - # Setup the environment for the tests. - local -x DUB="${S}/bin/dub" - - # Note, disabling tests is possible yet very hard. You have to - # create a bash variable containing a regex (to be used in =~) that - # matches all the tests that you want *to* run. It's probably easier - # to delete the subdirectory under ${S}/test. - - # Tries to connect to github.com and fails due to the network sandbox - rm -rf "${S}/test/git-dependency" || die - # Doesn't work on non amd64/x86 - if [[ ${ARCH} != @(amd64|x86) ]]; then - rm -rf test/issue1447-build-settings-vars || die - fi - - # gdc-13 doesn't support #include's in its importC implementation. - if [[ ${EDC} == gdc-13 ]]; then - rm -rf "${S}/test/use-c-sources" || die - fi - - # See https://bugs.gentoo.org/921581 we have to remove -op (preserve - # source path for output files) from the flags lest the sandbox - # trips us up. This shouldn't be a problem anymore with dlang-single. - dlang-filter-dflags "*" "--op" "-op" - - # Use -Wno-error or equivalent - local -x DFLAGS="${DCFLAGS} ${DLANG_LDFLAGS} $(dlang_get_wno_error_flag)" - - # Run the unittests in the source files. - "${DUB}" test --verbose -c application || die - - # Some tests overwrite DUB_HOME messing up the configuration file - # so put it in one of the other available locations - mkdir -p "${S}/bin/../etc/dub" || die - cp "${DUB_HOME}/settings.json" "${S}/bin/../etc/dub/settings.json" || die - - # Run the integration tests. - FRONTEND="$(dlang_get_fe_version)" test/run-unittest.sh \ - || die "Tests failed" -} - -src_install() { - dobin bin/dub - dodoc README.md - - # Make sure there are no man files in any other section. - use doc && doman scripts/man/*.1 - - newbashcomp scripts/bash-completion/${PN}.bash ${PN} - dozshcomp scripts/zsh-completion/_${PN} - dofishcomp scripts/fish-completion/${PN}.fish -} diff --git a/dev-util/dub/dub-1.38.1.ebuild b/dev-util/dub/dub-1.38.1.ebuild deleted file mode 100644 index 0f3b69a..0000000 --- a/dev-util/dub/dub-1.38.1.ebuild +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Package and build management system for D" -HOMEPAGE="https://code.dlang.org/" - -DUB_TEST_DEPS=( - [email protected] - [email protected] - [email protected] -) -generate_dub_test_dependencies() { - local dep - for dep in "${DUB_TEST_DEPS[@]}"; do - local depName depVersion - depName="${dep%@*}" - depVersion="${dep#*@}" - echo "https://code.dlang.org/packages/${depName}/${depVersion}.zip -> ${depName}-${depVersion}.zip" - done -} - -GITHUB_URI="https://codeload.github.com/dlang" -SRC_URI=" - ${GITHUB_URI}/${PN}/tar.gz/v${PV} -> ${PN}-${PV}.tar.gz - test? ( - $(generate_dub_test_dependencies) - ) -" -LICENSE="MIT" - -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE="doc test" -RESTRICT="!test? ( test )" - -DLANG_COMPAT=( dmd-2_{106..109} gdc-1{3,4} ldc2-1_{35..39} ) - -inherit dlang-single shell-completion - -REQUIRED_USE=${DLANG_REQUIRED_USE} -DEPEND=${DLANG_DEPS} -BDEPEND=${DLANG_DEPS} -RDEPEND=${DLANG_DEPS} - -src_unpack() { - unpack "${P}.tar.gz" - - if use test; then - # Copy the archives locally. Some tests do need to perform an - # actual fetch operation so make all of them available as - # archives and let dub figure out the rest. - local store="${T}/dub-test-deps" - mkdir -p "${store}" || die - - local dep - for dep in "${DUB_TEST_DEPS[@]}"; do - local depName depVersion - depName="${dep%@*}" - depVersion="${dep#*@}" - - cp "${DISTDIR}/${depName}-${depVersion}.zip" "${store}" || die - done - - # Generate a settings.json file that points to the directory with all the deps. - cat <<EOF > "${T}/settings.json" -{ - "registryUrls": [ - "file://${store}" - ], - "skipRegistry": "standard" -} -EOF - fi -} - -src_compile() { - # gdc generates unaligned memory accesses with optimizations and avx - # enabled. It has been fixed upstream. See: - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171 - # Fixed in >=sys-devel/gcc-13.2.1_p20240330. Adding -mno-sse2 makes - # tests fail so defer to removing the common way users get avx - # instructions enabled (-march=native) and warn them. - if [[ ${ARCH} == amd64 && ${EDC} == gdc-13 && ${DCFLAGS} == *-march=native* ]]; then - ewarn "<sys-devel/gcc-13.2.1_p20240330 is known to generate invalid code" - ewarn "on amd64 with certain flags. For this reason -march=native will be" - ewarn "removed from your flags. Feel free to use -march=<cpu> to bypass this" - ewarn "precaution." - ewarn "" - ewarn "See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114171" - dlang-filter-dflags "gdc*" "-march=native" - fi - - local imports=source versions="DubApplication DubUseCurl" - dlang_compile_bin bin/dub $(<build-files.txt) - - # Generate man pages. Rebuids dub so put it behind a USE flag. - if use doc; then - einfo "Generating man pages" - # You're supposed to be able to do ./bin/dub scrips/man/gen_man.d - # but it gives linking errors with gdc. - - # $imports is set up above. - versions=DubUseCurl - dlang_compile_bin scripts/man/gen_man{,.d} \ - $(sed '/^source\/app.d$/d' build-files.txt) - ./scripts/man/gen_man || die "Could not generate man pages" - fi -} - -src_test() { - # Setup the environment for the tests. - local -x DUB="${S}/bin/dub" - local -x DUB_HOME="${T}/dub-home" # where to put artifacts - - # Note, disabling tests is possible yet very hard. You have to - # create a bash variable containing a regex (to be used in =~) that - # matches all the tests that you want *to* run. It's probably easier - # to delete the subdirectory under ${S}/test. - - # Tries to connect to github.com and fails due to the network sandbox - rm -rf "${S}/test/git-dependency" || die - # Doesn't work on non amd64/x86 - if [[ ${ARCH} == arm64 ]]; then - rm -rf test/issue1447-build-settings-vars || die - fi - - # gdc-13 doesn't support #include's in its importC implementation. - if [[ ${EDC} == gdc-13 ]]; then - rm -rf "${S}/test/use-c-sources" || die - fi - - # Put the configuration file relative to the dub binary: - # <dub-bin-dir>/../etc/dub/settings.json as per - # https://dub.pm/dub-reference/settings so that it's picked up - # automatically. - mkdir -p "${S}/bin/../etc/dub" || die - cp "${T}/settings.json" "${S}/bin/../etc/dub/" \ - || die "Could not copy dub configuration file" - - # See https://bugs.gentoo.org/921581 we have to remove -op (preserve - # source path for output files) from the flags lest the sandbox - # trips us up. This shouldn't be a problem anymore with dlang-single. - dlang-filter-dflags "*" "--op" "-op" - - # Append -Wno-error or equivalent - DCFLAGS+=" $(dlang_get_wno_error_flag)" - - # Run the unittests in the source files. - DFLAGS="${DCFLAGS}" "${DUB}" test -v -c application - - # Run the integration tests. - DFLAGS="${DCFLAGS}" FRONTEND="$(dlang_get_fe_version)" test/run-unittest.sh \ - || die "Tests failed" -} - -src_install() { - dobin bin/dub - dodoc README.md - - # Make sure there are no man files in any other section. - use doc && doman scripts/man/*.1 - - newbashcomp scripts/bash-completion/${PN}.bash ${PN} - dozshcomp scripts/zsh-completion/_${PN} - dofishcomp scripts/fish-completion/${PN}.fish -} diff --git a/dev-util/dub/files/dub-1.36.0-fix-wno-error-not-applying.patch b/dev-util/dub/files/dub-1.36.0-fix-wno-error-not-applying.patch deleted file mode 100644 index 835414e..0000000 --- a/dev-util/dub/files/dub-1.36.0-fix-wno-error-not-applying.patch +++ /dev/null @@ -1,110 +0,0 @@ -commit 2ace85947547a5d97ecf740ec4e3e36903b5ad1a -Author: Andrei Horodniceanu <[email protected]> -Date: Sat Jan 13 11:42:16 2024 +0200 - - Let uesr $DFLAGS override build settings as much as possible - - Signed-off-by: Andrei Horodniceanu <[email protected]> - -diff --git a/source/dub/compilers/dmd.d b/source/dub/compilers/dmd.d -index 78fd9d4b..5b59d2b9 100644 ---- a/source/dub/compilers/dmd.d -+++ b/source/dub/compilers/dmd.d -@@ -230,6 +230,11 @@ config /etc/dmd.conf - { - enforceBuildRequirements(settings); - -+ // Keep the current dflags at the end of the array so that they will overwrite other flags. -+ // This allows user $DFLAGS to modify flags added by us. -+ const dflagsTail = settings.dflags; -+ settings.dflags = []; -+ - if (!(fields & BuildSetting.options)) { - foreach (t; s_options) - if (settings.options & t[0]) -@@ -282,6 +287,8 @@ config /etc/dmd.conf - if (platform.platform.canFind("posix") && (settings.options & BuildOption.pic)) - settings.addDFlags("-fPIC"); - -+ settings.addDFlags(dflagsTail); -+ - assert(fields & BuildSetting.dflags); - assert(fields & BuildSetting.copyFiles); - } -diff --git a/source/dub/compilers/gdc.d b/source/dub/compilers/gdc.d -index 0d34446e..3df8eda6 100644 ---- a/source/dub/compilers/gdc.d -+++ b/source/dub/compilers/gdc.d -@@ -89,6 +89,11 @@ class GDCCompiler : Compiler { - { - enforceBuildRequirements(settings); - -+ // Keep the current dflags at the end of the array so that they will overwrite other flags. -+ // This allows user $DFLAGS to modify flags added by us. -+ const dflagsTail = settings.dflags; -+ settings.dflags = []; -+ - if (!(fields & BuildSetting.options)) { - foreach (t; s_options) - if (settings.options & t[0]) -@@ -138,6 +143,8 @@ class GDCCompiler : Compiler { - if (settings.options & BuildOption.pic) - settings.addDFlags("-fPIC"); - -+ settings.addDFlags(dflagsTail); -+ - assert(fields & BuildSetting.dflags); - assert(fields & BuildSetting.copyFiles); - } -diff --git a/source/dub/compilers/ldc.d b/source/dub/compilers/ldc.d -index 3cb90e5b..3959df61 100644 ---- a/source/dub/compilers/ldc.d -+++ b/source/dub/compilers/ldc.d -@@ -107,6 +107,11 @@ config /etc/ldc2.conf (x86_64-pc-linux-gnu) - import std.format : format; - enforceBuildRequirements(settings); - -+ // Keep the current dflags at the end of the array so that they will overwrite other flags. -+ // This allows user $DFLAGS to modify flags added by us. -+ const dflagsTail = settings.dflags; -+ settings.dflags = []; -+ - if (!(fields & BuildSetting.options)) { - foreach (t; s_options) - if (settings.options & t[0]) -@@ -170,6 +175,8 @@ config /etc/ldc2.conf (x86_64-pc-linux-gnu) - } - } - -+ settings.addDFlags(dflagsTail); -+ - assert(fields & BuildSetting.dflags); - assert(fields & BuildSetting.copyFiles); - } -diff --git a/source/dub/package_.d b/source/dub/package_.d -index 307ad78d..79be1ed2 100644 ---- a/source/dub/package_.d -+++ b/source/dub/package_.d -@@ -422,10 +422,6 @@ class Package { - */ - void addBuildTypeSettings(ref BuildSettings settings, in BuildPlatform platform, string build_type) - const { -- import std.process : environment; -- string dflags = environment.get("DFLAGS", ""); -- settings.addDFlags(dflags.split()); -- - if (auto pbt = build_type in m_info.buildTypes) { - logDiagnostic("Using custom build type '%s'.", build_type); - pbt.getPlatformSettings(settings, platform, this.path); -@@ -450,6 +446,11 @@ class Package { - case "syntax": settings.addOptions(syntaxOnly); break; - } - } -+ -+ // Add environment DFLAGS last so that user specified values are not overriden by us. -+ import std.process : environment; -+ string dflags = environment.get("DFLAGS", ""); -+ settings.addDFlags(dflags.split()); - } - - /** Returns the selected configuration for a certain dependency.
