add VS2013 detection
[scilab.git] / scilab / modules / dynamic_link / macros / windows / dlwSetEnvCommonVc12.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) Scilab Enterprises - 2014 - Antoine ELIAS
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9
10 //=============================================================================
11 function bOK = dlwSetEnvCommonVc12(MSVSDir, IsExpress, bWin64)
12     bOK = %F;
13
14     windowsSdkPath = dlwGetSdkPath();
15     if (windowsSdkPath <> []) then
16         err = setenv("WindowsSdkDir", windowsSdkPath);
17     else
18         windowsSdkPath = "";
19     end
20
21     err = setenv("VSINSTALLDIR", MSVSDir);
22     if (err == %F) then
23         bOK = %F;
24         return
25     end
26
27     DevEnvDir = MSVSDir + "\Common7\IDE";
28     err = setenv("DevEnvDir", DevEnvDir);
29     if (err == %F) then
30         bOK = %F;
31         return
32     end
33
34     err = setenv("VCINSTALLDIR", MSVSDir + "\VC\");
35     if (err == %F) then
36         bOK = %F;
37         return
38     end
39
40     PATH = getenv("PATH", "");
41     INCLUDE = getenv("INCLUDE", "");
42     LIB = getenv("LIB", "");
43     LIBPATH = getenv("LIBPATH", "");
44
45     if bWin64 then
46         PATH = getNewPATHx64(PATH, MSVSDir, windowsSdkPath, IsExpress);
47         INCLUDE = getNewINCLUDEx64(INCLUDE, MSVSDir, windowsSdkPath, IsExpress);
48         LIB = getNewLIBx64(LIB, MSVSDir, windowsSdkPath, IsExpress);
49         LIBPATH = getNewLIBPATHx64(LIBPATH, MSVSDir, windowsSdkPath, IsExpress);
50     else
51         PATH = getNewPATHx86(PATH, MSVSDir, windowsSdkPath, IsExpress);
52         INCLUDE = getNewINCLUDEx86(INCLUDE, MSVSDir, windowsSdkPath, IsExpress);
53         LIB = getNewLIBx86(LIB, MSVSDir, windowsSdkPath, IsExpress);
54         LIBPATH = getNewLIBPATHx86(LIBPATH, MSVSDir, windowsSdkPath, IsExpress);
55     end
56
57     err = setenv("PATH", PATH);
58     if (err == %F) then
59         bOK = %F;
60         return
61     end
62
63     err = setenv("INCLUDE", INCLUDE);
64     if (err == %F) then
65         bOK = %F;
66         return
67     end
68
69     err = setenv("LIB", LIB);
70     if (err == %F) then
71         bOK = %F;
72         return
73     end
74
75     err = setenv("LIBPATH", LIBPATH);
76     if (err == %F) then
77         bOK = %F;
78         return
79     end
80
81     bOK = %T;
82 endfunction
83 //=============================================================================
84 function newLIB = getNewLIBx64(LIB, msvsPath, sdkPath, bIsExpress)
85     newLIB = "";
86
87     if bIsExpress then
88         Vc64Path = dlwGet64BitPath();
89         newLIB = Vc64Path + "\VC\LIB\amd64" + pathsep();
90     else
91         newLIB = msvsPath + "\VC\ATLMFC\LIB\amd64" + pathsep() + ..
92         msvsPath + "\VC\LIB\amd64" + pathsep();
93     end
94
95     newLIB = newLIB + ..
96     sdkPath + "\lib\x64" + pathsep() + LIB + pathsep() + ..
97     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.1\Lib\winv6.3\um\x64\;";
98 endfunction
99 //=============================================================================
100 function newLIB = getNewLIBx86(LIB, msvsPath, sdkPath, bIsExpress)
101     newLIB = "";
102     if ~bIsExpress then
103         newLIB =  msvsPath + filesep() + "VC\ATLMFC\LIB" + pathsep();
104     end
105     newLIB = newLIB + ..
106     msvsPath + filesep() + "VC\LIB" + pathsep() + ..
107     sdkPath + filesep() + "lib" + pathsep() + ..
108     LIB + pathsep() + ..
109     getenv("PROGRAMFILES") + "\Windows Kits\8.1\Lib\winv6.3\um\x86\;";
110 endfunction
111 //=============================================================================
112 function newPATH = getNewPATHx64(PATH, msvsPath, sdkPath, bIsExpress)
113     newPATH = "";
114
115     if bIsExpress then
116         newPATH = msvsPath + "\VC\BIN\x86_amd64" + pathsep();
117         newPATH = newPATH + msvsPath + "\VC\BIN" + pathsep();
118     else
119         newPATH = msvsPath + "\VC\BIN\amd64" + pathsep();
120     end
121
122     newPATH = newPATH + ..
123     msvsPath + "\VC\VCPackages" + pathsep() + ..
124     msvsPath + "\Common7\IDE" + pathsep() + ..
125     msvsPath + "\Common7\Tools" + pathsep() + ..
126     msvsPath + "\Common7\Tools\bin" + pathsep() + ..
127     sdkPath + "\bin\x64" + pathsep() + ..
128     sdkPath + "\bin\win64\x64" + pathsep() + ..
129     sdkPath + "\bin" + pathsep() + PATH;
130 endfunction
131 //=============================================================================
132 function newPATH = getNewPATHx86(PATH, msvsPath, sdkPath, bIsExpress)
133     newPATH = msvsPath + "\Common7\IDE\" + pathsep() + ..
134     msvsPath + "\VC\bin" + pathsep() + ..
135     msvsPath + "\Common7\Tools"+ pathsep() + ..
136     msvsPath + "\VC\VCPackages" + pathsep() + ..
137     sdkPath + "\bin" + pathsep() + PATH + pathsep();
138 endfunction
139 //=============================================================================
140 function newLIBPATH = getNewLIBPATHx64(LIBPATH, msvsPath, sdkPath, bIsExpress)
141     newLIBPATH = "";
142
143     if bIsExpress then
144         Vc64Path = dlwGet64BitPath();
145         newLIBPATH = Vc64Path +  "\VC\LIB\amd64" + pathsep() + LIBPATH;
146     else
147         newLIBPATH = msvsPath + "\VC\ATLMFC\LIB\amd64" + pathsep() + ..
148         msvsPath + "\VC\LIB\amd64" + pathsep() + LIBPATH;
149     end
150
151 endfunction
152 //=============================================================================
153 function newLIBPATH = getNewLIBPATHx86(LIBPATH, msvsPath, sdkPath, bIsExpress)
154     newLIBPATH = "";
155
156     if ~bIsExpress then
157         newLIBPATH = msvsPath + "\VC\ATLMFC\LIB" + pathsep();
158     end
159
160     newLIBPATH = newLIBPATH + ..
161     msvsPath + "\VC\LIB";
162 endfunction
163 //=============================================================================
164 function newINCLUDE = getNewINCLUDEx64(INCLUDE, msvsPath, sdkPath, bIsExpress)
165     newINCLUDE = "";
166     if bIsExpress then
167         Vc64Path = dlwGet64BitPath();
168         newINCLUDE = Vc64Path + "\VC\INCLUDE" + pathsep();
169     else
170         newINCLUDE = msvsPath + "\VC\INCLUDE" + pathsep() + ..
171         msvsPath + "\VC\ATLMFC\INCLUDE" + pathsep();
172     end
173
174     newINCLUDE = newINCLUDE + ..
175     sdkPath + "\include" + pathsep() + INCLUDE + ..
176     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Include\um;" + ..
177     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Include\shared;";
178
179 endfunction
180 //=============================================================================
181 function newINCLUDE = getNewINCLUDEx86(INCLUDE, msvsPath, sdkPath, bIsExpress)
182     newINCLUDE = "";
183
184     if ~bIsExpress then
185         newINCLUDE = msvsPath + "\VC\ATLMFC\INCLUDE"  + pathsep();
186     end
187
188     newINCLUDE = newINCLUDE + ..
189     msvsPath + "\VC\INCLUDE"  + pathsep() + ..
190     sdkPath + "\include" + pathsep() + INCLUDE + ..
191     getenv("PROGRAMFILES") + "\Windows Kits\8.0\Include\um;" + ..
192     getenv("PROGRAMFILES") + "\Windows Kits\8.0\Include\shared;";
193     ;
194 endfunction
195 //=============================================================================