It appears there is additional output between the ebegin / eend. You may want to consider dropping ebegin and eend. In general, the pattern ebegin, edo, eend should probably be avoided.

I would like to keep the "Building ... [ OK ]" (made by ebegin) output as it was before the change.

I think other ML team members could state their opinions, so please do say how we want to log the build/test/install.

On 1/3/23 07:55, Florian Schmaus wrote:
On 03/01/2023 00.19, 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ć <[email protected]>
---
  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 "${@}"
+}
+
+# @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.

It appears there is additional output between the ebegin / eend. You may want to consider dropping ebegin and eend. In general, the pattern ebegin, edo, eend should probably be avoided.

- Flow


--
Have a great day!

~ Maciej XGQT Barć

Attachment: OpenPGP_0x14D74A1F43A6AC3C.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to