* Bug #14150 fixed : The Windows SDK is not found on Windows 8.1
[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     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Lib\winv6.3\um\x64\;";
99 endfunction
100 //=============================================================================
101 function newLIB = getNewLIBx86(LIB, msvsPath, sdkPath, bIsExpress)
102     newLIB = "";
103     if ~bIsExpress then
104         newLIB =  msvsPath + filesep() + "VC\ATLMFC\LIB" + pathsep();
105     end
106     newLIB = newLIB + ..
107     msvsPath + filesep() + "VC\LIB" + pathsep() + ..
108     sdkPath + filesep() + "lib" + pathsep() + ..
109     LIB + pathsep() + ..
110     getenv("PROGRAMFILES") + "\Windows Kits\8.1\Lib\winv6.3\um\x86\;";
111     getenv("PROGRAMFILES") + "\Windows Kits\8.0\Lib\winv6.3\um\x86\;";
112 endfunction
113 //=============================================================================
114 function newPATH = getNewPATHx64(PATH, msvsPath, sdkPath, bIsExpress)
115     newPATH = "";
116
117     if bIsExpress then
118         newPATH = msvsPath + "\VC\BIN\x86_amd64" + pathsep();
119         newPATH = newPATH + msvsPath + "\VC\BIN" + pathsep();
120     else
121         newPATH = msvsPath + "\VC\BIN\amd64" + pathsep();
122     end
123
124     newPATH = newPATH + ..
125     msvsPath + "\VC\VCPackages" + pathsep() + ..
126     msvsPath + "\Common7\IDE" + pathsep() + ..
127     msvsPath + "\Common7\Tools" + pathsep() + ..
128     msvsPath + "\Common7\Tools\bin" + pathsep() + ..
129     sdkPath + "\bin\x64" + pathsep() + ..
130     sdkPath + "\bin\win64\x64" + pathsep() + ..
131     sdkPath + "\bin" + pathsep() + PATH;
132 endfunction
133 //=============================================================================
134 function newPATH = getNewPATHx86(PATH, msvsPath, sdkPath, bIsExpress)
135     newPATH = msvsPath + "\Common7\IDE\" + pathsep() + ..
136     msvsPath + "\VC\bin" + pathsep() + ..
137     msvsPath + "\Common7\Tools"+ pathsep() + ..
138     msvsPath + "\VC\VCPackages" + pathsep() + ..
139     sdkPath + "\bin" + pathsep() + PATH + pathsep();
140 endfunction
141 //=============================================================================
142 function newLIBPATH = getNewLIBPATHx64(LIBPATH, msvsPath, sdkPath, bIsExpress)
143     newLIBPATH = "";
144
145     if bIsExpress then
146         Vc64Path = dlwGet64BitPath();
147         newLIBPATH = Vc64Path +  "\VC\LIB\amd64" + pathsep() + LIBPATH;
148     else
149         newLIBPATH = msvsPath + "\VC\ATLMFC\LIB\amd64" + pathsep() + ..
150         msvsPath + "\VC\LIB\amd64" + pathsep() + LIBPATH;
151     end
152
153 endfunction
154 //=============================================================================
155 function newLIBPATH = getNewLIBPATHx86(LIBPATH, msvsPath, sdkPath, bIsExpress)
156     newLIBPATH = "";
157
158     if ~bIsExpress then
159         newLIBPATH = msvsPath + "\VC\ATLMFC\LIB" + pathsep();
160     end
161
162     newLIBPATH = newLIBPATH + ..
163     msvsPath + "\VC\LIB";
164 endfunction
165 //=============================================================================
166 function newINCLUDE = getNewINCLUDEx64(INCLUDE, msvsPath, sdkPath, bIsExpress)
167     newINCLUDE = "";
168     if bIsExpress then
169         Vc64Path = dlwGet64BitPath();
170         newINCLUDE = Vc64Path + "\VC\INCLUDE" + pathsep();
171     else
172         newINCLUDE = msvsPath + "\VC\INCLUDE" + pathsep() + ..
173         msvsPath + "\VC\ATLMFC\INCLUDE" + pathsep();
174     end
175
176     newINCLUDE = newINCLUDE + pathsep() + INCLUDE + ..
177     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.1\Include\um;" + ..
178     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.1\Include\shared;" + ..
179     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Include\um;" + ..
180     getenv("PROGRAMFILES(X86)") + "\Windows Kits\8.0\Include\shared;";
181
182 endfunction
183 //=============================================================================
184 function newINCLUDE = getNewINCLUDEx86(INCLUDE, msvsPath, sdkPath, bIsExpress)
185     newINCLUDE = "";
186
187     if ~bIsExpress then
188         newINCLUDE = msvsPath + "\VC\ATLMFC\INCLUDE"  + pathsep();
189     end
190
191     newINCLUDE = newINCLUDE + msvsPath + ..
192     "\VC\INCLUDE" + pathsep() + INCLUDE + ..
193     getenv("PROGRAMFILES") + "\Windows Kits\8.1\Include\um;" + ..
194     getenv("PROGRAMFILES") + "\Windows Kits\8.1\Include\shared;" +  ..
195     getenv("PROGRAMFILES") + "\Windows Kits\8.0\Include\um;" + ..
196     getenv("PROGRAMFILES") + "\Windows Kits\8.0\Include\shared;";
197     ;
198 endfunction
199 //=============================================================================