allow user to forced used msvc compiler via SCILAB_PREFERED_MSVC env var
[scilab.git] / scilab / modules / dynamic_link / macros / windows / dlwFindMsVcCompiler.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) DIGITEO - 2010 - Allan CORNET
3 // Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10
11 //=============================================================================
12 function MSCompiler = dlwFindMsVcCompiler()
13     MSCompiler = "unknown"; // unknown
14
15     // We use always last version of MS compiler
16
17     val = getenv("SCILAB_PREFERED_MSVC", "");
18     if val <> "" then
19         funcs = list(dlwIsVc12Express,dlwIsVc12Pro,dlwIsVc11Express,dlwIsVc11Pro,dlwIsVc10Express,dlwIsVc10Pro);
20         compilers = ["msvc120express";
21                     "msvc120pro";
22                     "msvc110express";
23                     "msvc110pro";
24                     "msvc100express";
25                     "msvc100pro";];
26         idx = find(val == compilers);
27         if idx <> [] then
28             func = funcs(idx);
29             if func() then
30                 MSCompiler = val;
31                 return;
32             end
33         end
34
35 //        printf("SCILAB_PREFERED_MSVC ignored.\n");
36     end
37
38     if dlwIsVc12Express() then
39       MSCompiler = 'msvc120express';     // Microsoft Visual 2013 Express
40       return;
41     end
42
43     if dlwIsVc12Pro() then
44       MSCompiler = 'msvc120pro';       // Microsoft Visual 2013 Professional (or more)
45       return;
46     end
47
48     if dlwIsVc11Express() then
49       MSCompiler = 'msvc110express';     // Microsoft Visual 2012 Express
50       return;
51     end
52
53     if dlwIsVc11Pro() then
54       MSCompiler = 'msvc110pro';       // Microsoft Visual 2012 Professional (or more)
55       return;
56     end
57
58     if dlwIsVc10Pro() & dlwIsVc10Express() then
59       MSCompiler = 'msvc100express';     // Microsoft Visual 2010 Express with SDK extension
60       return;
61     end
62
63     if dlwIsVc10Express() then
64         MSCompiler = "msvc100express";     // Microsoft Visual 2010 Express
65         return;
66     end
67
68     if dlwIsVc10Pro() then
69         MSCompiler = "msvc100pro";       // Microsoft Visual 2010 Professional (or more)
70         return;
71     end
72
73     if dlwIsVc90Pro() then
74         MSCompiler = "msvc90pro";      // Microsoft Visual 2008 Studio Professional
75         return;
76     end
77
78     if dlwIsVc90Std() then
79         MSCompiler = "msvc90std";      // Microsoft Visual 2008 Studio Standard
80         return;
81     end
82
83     if dlwIsVc90Express() then
84         MSCompiler = "msvc90express";    // Microsoft Visual 2008 Express
85         return;
86     end
87
88     if dlwIsVc80Pro() then
89         MSCompiler = "msvc80pro";      // Microsoft Visual 2005 Studio Professional
90         return;
91     end
92
93     if dlwIsVc80Std() then
94         MSCompiler = "msvc80std";      // Microsoft Visual 2005 Studio Standard
95         return;
96     end
97
98     if dlwIsVc80Express() then
99         MSCompiler = "msvc80express";    // Microsoft Visual 2005 Express
100         return;
101     end
102
103     if dlwIsVc71() then
104         MSCompiler = "msvc71";         // Microsoft Visual Studio .NET 2003
105         return;
106     end
107
108     if dlwIsVc70() then
109         MSCompiler = "msvc70";         // Microsoft Visual Studio .NET 2002
110         return;
111     end
112 endfunction
113 //=============================================================================