summaryrefslogtreecommitdiffstats
path: root/scilab/modules/development_tools/macros/tbx_build_gateway_loader.sci
blob: b363a9141977b7e3f45f6b5c934a571fb5ba8cd6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) 2008 - INRIA - Simon LIPP <simon.lipp@scilab.org>
//
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution.  The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt

// Generate a loader_gateway.sce script for the gateway
function tbx_build_gateway_loader(langs, gateway_path)
	oldpath = pwd();
	
	if(exists('gateway_path', 'local')) then
		chdir(gateway_path);
	end
	
	mprintf(gettext('Generating loader_gateway.sce...\n'));
	loader = [
	  "// This file is released into the public domain",
	  "// Generated by builder_gateway.sce: Please, do not edit this file",
	  "//",
	  "",
	  "try"
	  "  v = getversion(''scilab'');",
	  "catch",
	  "  v = [ 5 0 ]; // or older ",
	  "end",
 	  "if (v(1) <= 5) & (v(2) < 2) then",
	  "  // new API in scilab 5.2",
	  "  error(gettext(''Scilab 5.2 or more is required.''));",
	  "end",
	  "",
	  "sci_gateway_dir = get_absolute_file_path(''loader_gateway.sce'');",
	  "current_dir     = pwd();",
	  ""];
	
	for i = 1:size(langs, "*")
		loader = [loader, 
		  "chdir(sci_gateway_dir);",
		  "if ( isdir(''"+langs(i)+"'') ) then",
		  "  chdir(''"+langs(i)+"'');",
		  "  exec(''loader.sce'');",
		  "end",
		  ""
		];
	end
	
	loader = [loader,
	  "chdir(current_dir);",
	  "// ====================================================================",
	  "clear sci_gateway_dir;",
	  "clear current_dir;",
	  "clear v;",
	  "// ===================================================================="
	];
	
	mputl(loader,'loader_gateway.sce');
	
	chdir(oldpath);
endfunction