* Bug 15658 fixed: tbx_builder_src() wrong for ./src/java 17/20417/3
Samuel GOUGEON [Thu, 2 Aug 2018 12:49:41 +0000 (14:49 +0200)]
  http://bugzilla.scilab.org/15658

  Test (with no C compiler installed/detected):
   * download BTD @ https://atoms.scilab.org/toolboxes/BTD
   * run its builder: the module must be built.

Change-Id: Ib3abe7b2cdc93329af522193b8b6df926b5df134

scilab/CHANGES.md
scilab/modules/modules_manager/macros/tbx_builder_src.sci

index 134902d..9c07077 100644 (file)
@@ -572,6 +572,7 @@ Known issues
 * [#15652](http://bugzilla.scilab.org/show_bug.cgi?id=15652): An appended comment // after a comma in an multiline literal array now generates an error (regression).
 * [#15653](http://bugzilla.scilab.org/show_bug.cgi?id=15653): sparse - complex substraction was corrupted
 * [#15655](http://bugzilla.scilab.org/show_bug.cgi?id=15655): `clear a; a(1:4,:,1) = (1:4)` raised an error  (regression).
+* [#15658](http://bugzilla.scilab.org/show_bug.cgi?id=15658): `tbx_builder_src` required a C|C++|fortran compiler to compile only Java sources.
 * [#15659](http://bugzilla.scilab.org/show_bug.cgi?id=15659): `plot(x,fun)` could be very slow and crash Scilab.
 * [#15660](http://bugzilla.scilab.org/show_bug.cgi?id=15660): `atomsInstall` and `atomsRemove` displayed concatenated notifications instead of stacked ones.
 * [#15670](http://bugzilla.scilab.org/show_bug.cgi?id=15670): `set(H, prop1,val1, prop2,val2, ..)`: Setting multiple properties for a vector of handles yielded an error.
index 6255229..ae1bedb 100644 (file)
@@ -2,9 +2,9 @@
 // Copyright (C) 2008 - INRIA - Simon LIPP <simon.lipp@scilab.org>
 // Copyright (C) 2010 - DIGITEO - Pierre MARECHAL
 // Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2016 - Scilab Enterprises - Pierre-Aimé AGNEL
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2016 - Scilab Enterprises - Pierre-Aimé AGNEL
+// Copyright (C) 2018 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -38,12 +38,6 @@ function tbx_builder_src(module)
         error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"),"tbx_builder_src",module));
     end
 
-    // Check the compiler
-
-    if ~haveacompiler() then
-        error(msprintf(gettext("%s: This module requires a C or Fortran compiler and it has not been found.\n"),"tbx_builder_src"));
-    end
-
     // check there is a builder file is  present and if so execute it with tbx_builder
     builder_src_dir = module + "/src/";
     if isdir(builder_src_dir)
@@ -56,6 +50,13 @@ function tbx_builder_src(module)
             warning(_("No builder file found, nothing to be done"));
             return
         end
+        // Check the compiler (not needed if only Java sources)
+        if sum(members(convstr(languages), ["c" "cpp" "fortran"]))>0
+            if ~haveacompiler() then
+                msg = gettext("%s: This module requires a C or Fortran compiler and it has not been found.\n")
+                error(msprintf(msg, "tbx_builder_src"))
+            end
+        end
         if ~isempty(builder_src_file)
             builder_src_file = pathconvert(builder_src_dir + "/" + builder_src_file, %F);
             tbx_builder(builder_src_file);