From 2866a7f256242e546ac78d73c69c454a9791a0f1 Mon Sep 17 00:00:00 2001
From: Allan Blanchard <allan.blanchard@cea.fr>
Date: Tue, 21 Jun 2022 17:03:44 +0200
Subject: [PATCH] [dune] configure plugin list

---
 .gitignore   |  3 +++
 configure.in | 31 +++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/.gitignore b/.gitignore
index 745373d76f6..aacaa22f309 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,6 +39,9 @@ autom4te.cache
 .Makefile.plugin.generated
 .ocamldebug
 
+# This file is generated (on need) during configure
+/src/plugins/dune
+
 #lint
 /.lint/
 
diff --git a/configure.in b/configure.in
index a14954b8336..a540a85790b 100644
--- a/configure.in
+++ b/configure.in
@@ -577,6 +577,37 @@ AC_CONFIG_FILES([share/Makefile.config], [chmod a-w share/Makefile.config])
 
 AC_OUTPUT()
 
+###########
+# Plugins #
+###########
+
+rm -f src/plugins/.disabled
+rm -f src/plugins/dune
+
+m4_foreach_w([__plugin],m4_esyscmd([ls src/plugins]),
+  [
+    m4_define([plugin_dir],[src/plugins/__plugin])
+    m4_syscmd(test -d plugin_dir)
+    m4_define([is_plugin],m4_sysval)
+    m4_if(is_plugin,0,[
+      AC_ARG_ENABLE(
+        __plugin,
+        AC_HELP_STRING([--disable-__plugin], [Disable __plugin]),
+        [ENABLE___plugin=$enableval],
+        [ENABLE___plugin=yes]
+      )
+      if test "$ENABLE___plugin" = no ; then
+        echo "__plugin" >> src/plugins/.disabled
+      fi
+    ],)
+  ])
+
+if test -f src/plugins/.disabled ; then
+  echo "(data_only_dirs $(cat src/plugins/.disabled))" > src/plugins/dune
+  chmod a-w  src/plugins/dune
+  rm src/plugins/.disabled
+fi
+
 ###########
 # Summary #
 ###########
-- 
GitLab