On Tue, 2023-01-03 at 00:19 +0100, Maciej Barć wrote:
> edune is a thin wrapper for dune, which will help to run special,
> uncommon dune commands;
> dune-compile is a function to selectively pick which packages will be
> compiled "for-release" (as dune call it);
> dune-compile without any arguments replaces the current dune_src_compile
> 
> Signed-off-by: Maciej Barć <x...@gentoo.org>
> ---
>  eclass/dune.eclass | 49 +++++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 44 insertions(+), 5 deletions(-)
> 
> diff --git a/eclass/dune.eclass b/eclass/dune.eclass
> index 4bc73eda8..384908a40 100644
> --- a/eclass/dune.eclass
> +++ b/eclass/dune.eclass
> @@ -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
>  
>  # @ECLASS: dune.eclass
> @@ -29,7 +29,7 @@ _DUNE_ECLASS=1
>  # Set before inheriting the eclass.
>  : ${DUNE_PKG_NAME:=${PN}}
>  
> -inherit multiprocessing
> +inherit edo multiprocessing
>  
>  # Do not complain about CFLAGS etc since ml projects do not use them.
>  QA_FLAGS_IGNORED='.*'
> @@ -44,15 +44,54 @@ BDEPEND="
>       dev-ml/dune
>  "
>  
> +# @FUNCTION: edune
> +# @USAGE: <arg> ...
> +# @DESCRIPTION:
> +# A thin wrapper for the `dune` command.
> +# Runs `dune` with given arguments and dies on failure.
> +#
> +# Example use:
> +# @CODE
> +# edune clean
> +# @CODE
> +edune() {
> +     debug-print-function ${FUNCNAME} "${@}"
> +
> +     edo dune "${@}"

How do you pronounce it? ;-)

> +}
> +
> +# @FUNCTION: dune-compile
> +# @USAGE: [package] ...
> +# @DESCRIPTION:
> +# Compiles either all of packages sources in current directory or selected
> +# packages. In case of all packages the package detection is done via dune
> +# itself.
> +#
> +# Example use:
> +# @CODE
> +# dune-compile menhir menhirLib menhirSdk
> +# @CODE
> +dune-compile() {
> +     local -a myduneopts=(
> +             -j $(makeopts_jobs)
> +             --profile release
> +     )
> +     if [[ -n "${1}" ]] ; then
> +             myduneopts+=( --for-release-of-packages="$(IFS="," ; echo 
> "${*}")" )
> +     fi
> +
> +     edune build @install "${myduneopts[@]}"
> +}
> +
>  dune_src_compile() {
>       ebegin "Building"
> -     dune build @install -j $(makeopts_jobs) --profile release
> +     dune-compile
>       eend $? || die
>  }
>  
>  dune_src_test() {
>       ebegin "Testing"
> -     dune runtest -j $(makeopts_jobs) --profile release
> +     edune runtest -j $(makeopts_jobs) --profile release
>       eend $? || die
>  }
>  
> @@ -80,7 +119,7 @@ dune-install() {
>       local pkg
>       for pkg in "${pkgs[@]}" ; do
>               ebegin "Installing ${pkg}"
> -             dune install ${myduneopts[@]} ${pkg}
> +             edune install ${myduneopts[@]} ${pkg}
>               eend $? || die
>  
>               # Move docs to the appropriate place.

-- 
Best regards,
Michał Górny


Reply via email to