Subject: emacs ada-mode : updated build.sh script.

From: Koen Meersman <[email-masked]>
Date: Fri, 3 Apr 2020 13:46:00 +0200

Package: emacs, ada-mode

--

I have updated build.sh a bit:

  * if build.sh called with extra options then these options are passed to
gprbuild.
    (to allow using more CPU's, passing other gnat options, ... without
modifying the *.gpr files.)
  * Not using ' $GPR_PROJECT_PATH' to wisi directory, as GPR_PROJECT_PATH
is used by gprbuild. (and can point to own compiled gnatcoll_xref and
others)
  * Allow calling build.sh multiple times
           - first call gprclean, to clean project
           - not removing ' ada_lr1_parse_table.txt.gz'

If you agree on these changes, can someone apply this patch to ada-mode?

Thanks,

Koen

The patch :

--- build.sh.orig       2020-04-03 11:33:25.771222460 +0000
+++ build.sh    2020-04-03 11:34:37.337921847 +0000
@@ -1,29 +1,38 @@
 #!/bin/sh
 # Build executables for Ada mode.
+#    build.sh <other gprbuild options>
+#    e.g. 'build.sh -j0' : use all available processors to compile
+#         'build.sh -wn' : treat warnings as warnings.
+#         'build.sh -vh' : Verbose output (high verbosity)
 #
 # See install.sh for install
-
+#
 # In December 2016, GNATCOLL changed its Xref interface. First, the
 # GPR was split out; and second, one of the subprogram
 # interfaces.changed.
 #
+
 # Determine whether the split-out gnatcoll_xref.gpr is available.
+# To get ada-mode compiling with gnatcoll_xref, make sure the gnatcoll
directory is added to $GPR_PROJECT_PATH
+# i.e. the following file should exist: $GPR_PROJECT_PATH/gnatcoll_xref.gpr
 echo 'with "gnatcoll_xref"; abstract project check_xref is end
check_xref;' > check_xref.gpr;
-gprbuild -P check_xref.gpr > /dev/null 2>&1;
+gprbuild -f -P check_xref.gpr > /dev/null 2>&1;
 if test $? -eq 0 ; then HAVE_GNATCOLL_XREF="yes"; else
HAVE_GNATCOLL_XREF="no"; fi
-
 echo "HAVE_GNATCOLL_XREF=$HAVE_GNATCOLL_XREF"

+WISI_DIR="../wisi-3.0.1"
+TOP_GPR="ada_mode_wisi_parse.gpr"
+
 gnatprep -DHAVE_GNATCOLL_XREF=$HAVE_GNATCOLL_XREF
gpr_query-process_refresh.adb.gp gpr_query-process_refresh.adb

 # support for libadalang is still experimental
 gnatprep -DHAVE_GNATCOLL_XREF=$HAVE_GNATCOLL_XREF -DHAVE_LIBADALANG="no"
-DELPA="yes" ada_mode_wisi_parse.gpr.gp ada_mode_wisi_parse.gpr

-export GPR_PROJECT_PATH="../wisi-3.0.1"
+gnatprep -DELPA="yes" $WISI_DIR/wisi.gpr.gp $WISI_DIR/wisi.gpr

-gnatprep -DELPA="yes" $GPR_PROJECT_PATH/wisi.gpr.gp
$GPR_PROJECT_PATH/wisi.gpr
+gprclean -r -P $TOP_GPR -aP$WISI_DIR

-gprbuild -p -j8 -P ada_mode_wisi_parse.gpr
-gzip -d -q ada_lr1_parse_table.txt.gz
+gprbuild -p -j8 -P $TOP_GPR -aP $WISI_DIR "$@"

+gzip -c -d -q ada_lr1_parse_table.txt.gz >ada_lr1_parse_table.txt
 # end of file

---
Koen Meersman
Sint Lambertuslaan 85
2812 Muizen
+ 32 (0)15 34 66 08
+ 32 (0)476 60 69 30
[email-masked]