add VS2013 detection
[scilab.git] / scilab / modules / dynamic_link / macros / detectmsvc64tools.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA - Allan CORNET
3 // Copyright (C) DIGITEO - 2010 - Allan CORNET
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 bOK = detectmsvc64tools()
13
14     bOK = %F;
15     if getos() <> "Windows" then
16         return
17     end
18
19     //=============================================================================
20     // internal functions
21     //=============================================================================
22     function show = displayWarningMsVC()
23         settings_filename = "/.settings_warning_msvc";
24         settings_file = pathconvert(SCIHOME + settings_filename, %f, %t);
25         w = fileinfo(settings_file);
26         show = %t;
27         if isfile(settings_file) then
28             show = grep(mgetl(settings_file), "displayWarningMSVCx64=no") == [];
29         end
30     endfunction
31     //=============================================================================
32     function disableWarningMsVC()
33         settings_filename = "/.settings_warning_msvc";
34         settings_file = pathconvert(SCIHOME + settings_filename, %f, %t);
35         mputl("displayWarningMSVCx64=no", settings_file);
36     endfunction
37     //=============================================================================
38
39
40     // Load dynamic_link Internal lib if it's not already loaded
41     if ~ exists("dynamic_linkwindowslib") then
42         load("SCI/modules/dynamic_link/macros/windows/lib");
43     end
44
45     if win64() then
46         compiler = findmsvccompiler();
47         supported_compiler = ["msvc120pro", ..
48         "msvc120express", ..
49         "msvc110pro", ..
50         "msvc110express", ..
51         "msvc100pro", ..
52         "msvc100express", ..
53         "msvc90pro", ..
54         "msvc90std", ..
55         "msvc90express"];
56
57         if (find(supported_compiler == compiler) <> []) then
58             MSVCBIN64PATH = dlwGet64BitPath();
59             if dlwIsVc11Express() | dlwIsVc12Express() then
60                 MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\bin";
61             else
62                 MSVCBIN64PATH = MSVCBIN64PATH + filesep() + "VC\bin\amd64";
63             end
64
65             if isdir(MSVCBIN64PATH) then
66                 bOK = %T;
67             else
68                 show = displayWarningMsVC();
69                 if show then
70                     TXT = gettext("Microsoft Visual Studio C 2008 (or more recent) x64 Compiler not installed.");
71                     warning(TXT);
72                     clear TXT;
73                     disableWarningMsVC();
74                 end
75                 bOK = %F;
76             end
77         else
78             show = displayWarningMsVC();
79             if show then
80                 TXT = gettext("Microsoft Visual Studio C 2008 (or more recent) Compiler not found.");
81                 warning(TXT);
82                 clear TXT;
83                 disableWarningMsVC();
84             end
85             bOK = %F;
86         end
87     end
88
89 endfunction
90 //=============================================================================