Add Scilab 5.5.2 6.0.2 and 6.1.0 from upstream

This commit log Scilab version at ./configure to ease maintenance. It
uses Scilab include next to the bin directory which will work for both
system-wide install and binaries from scilab.org.

SCILAB_VERSION is define as an automake variable for easier
failure investigation.

Note: the Ubuntu Scilab version is used when available, in the current
CI config there is:
 * Scilab 5.5 from scilab.org
 * Scilab 6.0 from Ubuntu 18.04
 * Scilab 6.1 from Ubuntu 20.04
This commit is contained in:
Clément DAVID 2021-04-13 15:06:04 +02:00
commit ce6c0c47f6
4 changed files with 38 additions and 22 deletions

View file

@ -180,7 +180,10 @@ jobs:
VER: '3.0' VER: '3.0'
CPPSTD: c++11 CPPSTD: c++11
- SWIGLANG: scilab - SWIGLANG: scilab
os: ubuntu-18.04 # scilab-6.1 in ubuntu-20.04 not yet working VER: '5.5.2'
- SWIGLANG: scilab
os: ubuntu-18.04 # scilab 6.0
- SWIGLANG: scilab
- SWIGLANG: tcl - SWIGLANG: tcl
# c++11 testing # c++11 testing
- SWIGLANG: csharp - SWIGLANG: csharp
@ -213,7 +216,9 @@ jobs:
CPPSTD: c++11 CPPSTD: c++11
- SWIGLANG: scilab - SWIGLANG: scilab
CPPSTD: c++11 CPPSTD: c++11
os: ubuntu-18.04 # scilab-6.1 in ubuntu-20.04 not yet working os: ubuntu-18.04 # scilab 6.0
- SWIGLANG: scilab
CPPSTD: c++11
- SWIGLANG: tcl - SWIGLANG: tcl
CPPSTD: c++11 CPPSTD: c++11
# c++14 testing # c++14 testing
@ -249,7 +254,9 @@ jobs:
CPPSTD: c++14 CPPSTD: c++14
- SWIGLANG: scilab - SWIGLANG: scilab
CPPSTD: c++14 CPPSTD: c++14
os: ubuntu-18.04 # scilab-6.1 in ubuntu-20.04 not yet working os: ubuntu-18.04 # scilab 6.0
- SWIGLANG: scilab
CPPSTD: c++14
- SWIGLANG: tcl - SWIGLANG: tcl
CPPSTD: c++14 CPPSTD: c++14
# c++17 testing (using gcc11) # c++17 testing (using gcc11)
@ -298,7 +305,6 @@ jobs:
- SWIGLANG: scilab - SWIGLANG: scilab
CPPSTD: c++17 CPPSTD: c++17
GCC: 11 GCC: 11
os: ubuntu-18.04 # scilab-6.1 in ubuntu-20.04 not yet working
- SWIGLANG: tcl - SWIGLANG: tcl
CPPSTD: c++17 CPPSTD: c++17
GCC: 11 GCC: 11

View file

@ -1357,6 +1357,7 @@ r_clean:
SCILAB = @SCILAB@ SCILAB = @SCILAB@
SCILAB_INC= @SCILABINCLUDE@ SCILAB_INC= @SCILABINCLUDE@
SCILAB_OPT = @SCILABOPT@ SCILAB_OPT = @SCILABOPT@
SCILAB_VERSION = @SCILAB_VERSION@
SCILAB_LIBPREFIX = lib SCILAB_LIBPREFIX = lib
# ---------------------------------------------------------------- # ----------------------------------------------------------------
@ -1389,7 +1390,7 @@ scilab_run:
# ----------------------------------------------------------------- # -----------------------------------------------------------------
scilab_version: scilab_version:
echo `$(SCILAB) -version | head -1` echo `$(SCILAB) -nwni -version | head -1`
# ----------------------------------------------------------------- # -----------------------------------------------------------------
# Cleaning the scilab examples # Cleaning the scilab examples

View file

@ -137,11 +137,14 @@ case "$SWIGLANG" in
fi fi
;; ;;
"scilab") "scilab")
# Travis has the wrong version of Java pre-installed resulting in error using scilab: if [[ -z "$VER" ]]; then
# /usr/bin/scilab-bin: error while loading shared libraries: libjava.so: cannot open shared object file: No such file or directory $RETRY sudo apt-get -qq install scilab scilab-include
echo "JAVA_HOME was set to $JAVA_HOME" else
unset JAVA_HOME $RETRY wget --progress=dot:giga "https://www.scilab.org/download/$VER/scilab-$VER.bin.linux-x86_64.tar.gz"
$RETRY sudo apt-get -qq install scilab # $HOME/.local/bin is in PATH and writeable
mkdir -p "$HOME/.local"
tar -xzf "scilab-$VER.bin.linux-x86_64.tar.gz" --strip-components=1 -C "$HOME/.local"
fi
;; ;;
"tcl") "tcl")
$RETRY sudo apt-get -qq install tcl-dev $RETRY sudo apt-get -qq install tcl-dev

View file

@ -1218,7 +1218,7 @@ if test x"${SCILABBIN}" = xno; then
else else
# Check for Scilab executable # Check for Scilab executable
if test "x$SCILABBIN" = xyes; then if test "x$SCILABBIN" = xyes; then
AC_CHECK_PROGS(SCILAB, scilab) AC_PATH_PROG(SCILAB, scilab)
else else
AC_MSG_CHECKING(for scilab) AC_MSG_CHECKING(for scilab)
if test -f "$SCILABBIN"; then if test -f "$SCILABBIN"; then
@ -1231,18 +1231,18 @@ else
if test -n "$SCILAB"; then if test -n "$SCILAB"; then
# Check for Scilab version (needs api_scilab so needs version 5.3.3 or higher) # Check for Scilab version (needs api_scilab so needs version 5.3.3 or higher)
SCILAB_FULL_VERSION=`$SCILAB -version | head -1 | sed -e 's|Scilab version \"\(.*\)\"|\1|g'` SCILAB_VERSION=`$SCILAB -nwni -version | head -1 | sed -e 's|Scilab version \"\(.*\)\"|\1|g'`
AC_MSG_CHECKING(Scilab version is 5.3.3 or higher) AC_MSG_CHECKING(Scilab version is 5.3.3 or higher)
SCILAB_MAJOR_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f1` SCILAB_MAJOR_VERSION=`echo $SCILAB_VERSION | cut -d. -f1`
SCILAB_MINOR_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f2` SCILAB_MINOR_VERSION=`echo $SCILAB_VERSION | cut -d. -f2`
SCILAB_MAINTENANCE_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f3` SCILAB_MAINTENANCE_VERSION=`echo $SCILAB_VERSION | cut -d. -f3`
SCILAB_VERSION="$SCILAB_MAJOR_VERSION$SCILAB_MINOR_VERSION$SCILAB_MAINTENANCE_VERSION" SCILAB_VERSION_NO_DOTS="$SCILAB_MAJOR_VERSION$SCILAB_MINOR_VERSION$SCILAB_MAINTENANCE_VERSION"
if test $SCILAB_VERSION -ge 533; then if test -n "$SCILAB_VERSION_NO_DOTS" && test "$SCILAB_VERSION_NO_DOTS" -ge 533; then
AC_MSG_RESULT(yes) AC_MSG_RESULT(yes - $SCILAB_VERSION)
else else
AC_MSG_RESULT(no) AC_MSG_RESULT(no - $SCILAB_VERSION)
SCILAB= SCILAB=
fi fi
@ -1250,22 +1250,27 @@ else
# Set Scilab startup options depending on version # Set Scilab startup options depending on version
AC_MSG_CHECKING(for Scilab startup options) AC_MSG_CHECKING(for Scilab startup options)
SCILABOPT="-nwni -nb" SCILABOPT="-nwni -nb"
if test $SCILAB_VERSION -ge 540; then if test $SCILAB_VERSION_NO_DOTS -ge 540; then
SCILABOPT+=" -noatomsautoload" SCILABOPT+=" -noatomsautoload"
fi fi
if test $SCILAB_VERSION -ge 600; then if test $SCILAB_VERSION_NO_DOTS -ge 600; then
SCILABOPT+=" -quit" SCILABOPT+=" -quit"
fi fi
AC_MSG_RESULT($SCILABOPT) AC_MSG_RESULT($SCILABOPT)
# Check for Scilab header files # Check for Scilab header files
AC_MSG_CHECKING(for Scilab header files) AC_MSG_CHECKING(for Scilab header files)
headers="`AS_DIRNAME(["$SCILAB"])`/../include"
if test "$SCILABINCDIR" != ""; then if test "$SCILABINCDIR" != ""; then
dirs="$SCILABINCDIR" dirs="$SCILABINCDIR"
elif test -d "$SCI"; then
dirs="$SCI/include $SCI/../../include"
elif test -d "$headers"; then
dirs="$headers"
elif test -n "$PKG_CONFIG "; then elif test -n "$PKG_CONFIG "; then
dirs=`$PKG_CONFIG scilab --cflags-only-I | sed -e 's/-I//g'` dirs=`$PKG_CONFIG scilab --cflags-only-I | sed -e 's/-I//g'`
else else
dirs="" dirs="/usr/include"
fi fi
for i in $dirs; do for i in $dirs; do
if test -r $i/api_scilab.h; then if test -r $i/api_scilab.h; then
@ -1290,6 +1295,7 @@ fi
AC_SUBST(SCILAB) AC_SUBST(SCILAB)
AC_SUBST(SCILABINCLUDE) AC_SUBST(SCILABINCLUDE)
AC_SUBST(SCILABOPT) AC_SUBST(SCILABOPT)
AC_SUBST(SCILAB_VERSION)
#---------------------------------------------------------------- #----------------------------------------------------------------