blob: 894284f7d38d3b5df954bbea19c5ead83a054132 [file] [log] [blame]
Andrew Ristb52bc4b2012-03-29 00:49:41 +00001// *************************************************************
2//
3// Licensed to the Apache Software Foundation (ASF) under one
4// or more contributor license agreements. See the NOTICE file
5// distributed with this work for additional information
6// regarding copyright ownership. The ASF licenses this file
7// to you under the Apache License, Version 2.0 (the
8// "License"); you may not use this file except in compliance
9// with the License. You may obtain a copy of the License at
10//
11// http://www.apache.org/licenses/LICENSE-2.0
12//
13// Unless required by applicable law or agreed to in writing,
14// software distributed under the License is distributed on an
15// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16// KIND, either express or implied. See the License for the
17// specific language governing permissions and limitations
18// under the License.
19//
20// *************************************************************
Armin Le Grand8a6f84c2013-07-27 11:40:32 +000021
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000022// This script asks for variables, which are necessary for building the
23// examples of the Office Development Kit. The script duplicates the template
24// script and inserts the variables into the copied script.
25// The Script was developed for the operating systems Microsoft Windows.
Armin Le Grand8a6f84c2013-07-27 11:40:32 +000026var regKeyOfficeCurrentUser6432Node = "HKEY_CURRENT_USER\\Software\\Wow6432Node\\OpenOffice\\UNO\\InstallPath\\";
27var regKeyOfficeLocaleMachine6432Node = "HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\OpenOffice\\UNO\\InstallPath\\";
28var regKeyOfficeCurrentUser = "HKEY_CURRENT_USER\\Software\\OpenOffice\\UNO\\InstallPath\\";
29var regKeyOfficeLocaleMachine = "HKEY_LOCAL_MACHINE\\Software\\OpenOffice\\UNO\\InstallPath\\";
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000030var regKeyDotNetInstallRoot = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\.NETFramework\\InstallRoot";
31var regKeyDotNet1_1 = "HKLM\\Software\\Microsoft\\.NETFramework\\policy\\v1.1\\4322";
32var sDirDotNet1_1 = "v1.1.4322";
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +000033var regKeyDotNet2_0 = "HKLM\\Software\\Microsoft\\.NETFramework\\Policy\\v2.0\\50727";
34var sDirDotNet2_0 = "v2.0.50727";
35
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000036var regKeyJDK = "HKLM\\Software\\JavaSoft\\Java Development Kit\\";
Rüdiger Timmbde5b812008-07-11 13:13:03 +000037//var regKeyVC70 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir";
38//var regKeyVC71 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir";
39var regKeyVC90 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir";
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000040
Rüdiger Timmbde5b812008-07-11 13:13:03 +000041//var regKeyVCExpress80 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir";
42var regKeyVCExpress90 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir";
Armin Le Grand8a6f84c2013-07-27 11:40:32 +000043var regKeyVCExpress90_2 = "HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir";
Rüdiger Timmbde5b812008-07-11 13:13:03 +000044var regKeyWindowsSDK = "HKLM\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\CurrentInstallFolder";
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +000045
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000046var WshShell = WScript.CreateObject("WScript.Shell");
47var WshSysEnv = WshShell.Environment("process");
48var aFileSystemObject = new ActiveXObject("Scripting.FileSystemObject");
49var stdin = WScript.StdIn;
50var stdout = WScript.StdOut;
51
52stdout.WriteLine("\n" +
Rüdiger Timmf5009e982005-02-03 11:36:07 +000053" *** Configure your SDK environment ***\n\n" +
54" NOTE: This script is working only for Windows 2000, Windows XP or newer versions!\n");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000055
Rüdiger Timmbde5b812008-07-11 13:13:03 +000056var oo_sdk_name=WshSysEnv("OO_SDK_NAME");
Vladimir Glazounov8ea78a32008-01-28 15:14:26 +000057var stldebug="";
Rüdiger Timmbde5b812008-07-11 13:13:03 +000058var oo_sdk_home=getSdkHome();
Rüdiger Timmbde5b812008-07-11 13:13:03 +000059var oo_user_sdk_dir=WshSysEnv("APPDATA") + "\\" + oo_sdk_name;
60var oo_user_sdk_env_script=oo_user_sdk_dir + "\\setsdkenv_windows.bat";
Rüdiger Timm8fad15f2005-11-09 08:28:12 +000061
Rüdiger Timmbde5b812008-07-11 13:13:03 +000062var office_home=getOfficeHome();
63var office_base_home=getOfficeBaseHome();
Rüdiger Timmbde5b812008-07-11 13:13:03 +000064
65var oo_sdk_make_home=getMakeHome();
66var oo_sdk_zip_home=getZipHome();
Armin Le Grand8a6f84c2013-07-27 11:40:32 +000067var oo_sdk_cat_home=getCatHome();
68var oo_sdk_sed_home=getSedHome();
Juergen Schmidt40487922009-11-05 14:21:50 +000069var oo_sdk_manifest_used="";
Rüdiger Timmbde5b812008-07-11 13:13:03 +000070var oo_sdk_windowssdk="";
71var oo_sdk_cpp_home=getCppHome();
72var oo_sdk_cli_home=getCliHome();
73var oo_sdk_java_home=getJavaHome();
74var oo_sdk_out=getOutputDir();
75var sdk_auto_deployment=getAutoDeployment();
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000076
Rüdiger Timm8fad15f2005-11-09 08:28:12 +000077writeBatFile(oo_user_sdk_dir, oo_user_sdk_env_script);
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000078
79stdout.Write(
Rüdiger Timm8fad15f2005-11-09 08:28:12 +000080 "\n ******************************************************************\n" +
81 " * ... \"" + oo_user_sdk_env_script + "\"\n" +
82 " * batch file has been prepared.\n" +
83 " * This batch file will be used in the future to prepare your\n" +
84 " * personal configured SDK environment.\n" +
85 " ******************************************************************\n\n");
86// " * For each time you want to use this configured SDK environment,\n" +
87// " * you have to run the \"setsdkenv_windows.bat\" file in a new shell!\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +000088
89// done -------------------------------------------------------------------------
90
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +000091
Rüdiger Timmf5009e982005-02-03 11:36:07 +000092function skipChoice(msg)
93{
94 stdout.Write("\n Do you want to skip the choice of " + msg + " (YES/NO) [YES]:");
95 var sChoice = stdin.ReadLine();
96 if (sChoice == "" || sChoice.toLowerCase() == "yes")
97 return true;
98
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +000099 return false;
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000100}
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000101
102function getSdkHome()
103{
104 var sSuggestedHome = WshSysEnv("OO_SDK_HOME");
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000105 if (sSuggestedHome.length == 0) {
106 var scriptname = WScript.ScriptFullName;
107 sSuggestedHome = scriptname.substr(0,scriptname.length-10);
108 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000109
110 while(true)
111 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000112 stdout.Write("\n Enter the Office Software Development Kit directory [" +
113 sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000114 var sHome = stdin.ReadLine();
115 if (sHome.length == 0)
116 {
117 //No user input, use default.
118 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
119 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000120 stdout.WriteLine("\n Error: Could not find directory \"" +
121 sSuggestedHome + "\". An SDK is required, please" +
122 " specify the path to a valid installation.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000123 continue;
124 }
125 sHome = sSuggestedHome;
126 }
127 else
128 {
129 //validate the user input
130 if ( ! aFileSystemObject.FolderExists(sHome))
131 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000132 stdout.WriteLine("\n Error: The directory \"" + sHome +
133 "\" does not exist. Please enter the path to a" +
134 "valid SDK installation.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000135 continue;
136 }
137 }
138 //Check if this is an sdk folder by looking for the idl sub - dir
139 var idlDir = sHome + "\\idl";
140 if (! aFileSystemObject.FolderExists(idlDir))
141 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000142 stdout.WriteLine("\n Error: Could not find directory \"" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000143 idlDir + "\". An SDK is required, please specify " +
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000144 "the path to a valid SDK installation.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000145 continue;
146 }
Vladimir Glazounov8ea78a32008-01-28 15:14:26 +0000147
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000148 if (aFileSystemObject.FileExists(sHome + "\\lib\\stlport_vc71_stldebug.lib")) {
Vladimir Glazounov8ea78a32008-01-28 15:14:26 +0000149 stldebug="_stldebug";
150 }
151
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000152 return sHome;
153 }
154}
155
Oliver Boltecdd1edd2005-06-17 08:37:09 +0000156function getOfficeOrUre()
157{
158 var suggestion = "Office";
159 var choice;
160 while (choice != "office" && choice != "ure") {
161 stdout.Write(
162 "\n Use an installed Office or an installed UNO Runtime"
163 + " Environment (Office/URE) [" + suggestion + "]:");
164 choice = stdin.ReadLine();
165 if (choice == "") {
166 choice = suggestion;
167 }
168 choice = choice.toLowerCase();
169 }
170 return choice;
171}
172
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000173function getOfficeHome()
174{
175 var sSuggestedHome = WshSysEnv("OFFICE_HOME");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000176 if (sSuggestedHome.length == 0)
177 {
178 try {
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000179 sSuggestedHome = WshShell.RegRead(regKeyOfficeCurrentUser6432Node);
180 //The registry entry points to the program folder but we need the
181 //installation folder
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000182 } catch(exc) {}
183 if (sSuggestedHome.length == 0)
184 {
185 try {
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000186 sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine6432Node);
187 //The registry entry points to the program folder but we need
188 //the installation folder
189 } catch (exc) {}
190 }
191 if (sSuggestedHome.length == 0)
192 {
193 try {
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000194 sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine);
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000195 //The registry entry points to the program folder but we need
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000196 //the installation folder
197 } catch (exc) {}
198 }
199 if (sSuggestedHome.length == 0)
200 {
201 try {
202 sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine);
203 //The registry entry points to the program folder but we need
204 //the installation folder
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000205 } catch (exc) {}
206 }
207
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000208 var index=0;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000209 if ((index = sSuggestedHome.lastIndexOf("\\")) != -1)
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000210 sSuggestedHome = sSuggestedHome.substr(0, index);
211
212 if (sSuggestedHome.length == 0)
213 sSuggestedHome = searchOffice();
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000214 }
215
216 while(true)
217 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000218 stdout.Write("\n Enter the Office base installation directory [" +
219 sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000220 var sHome = stdin.ReadLine();
221 if (sHome.length == 0)
222 {
223 //No user input, use default.
224 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
225 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000226 stdout.WriteLine("\n Error: Could not find directory \"" +
227 sSuggestedHome + "\" An office installation is " +
228 "required, please specify the path to a valid " +
229 "office installation.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000230 sSuggestedHome = "";
231 continue;
232 }
233 sHome = sSuggestedHome;
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000234 } else
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000235 {
236 //validate the user input
237 if ( ! aFileSystemObject.FolderExists(sHome))
238 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000239 stdout.WriteLine("\n Error: The directory \"" + sHome +
240 "\" does not exist. Please specify the path to " +
241 "a valid office installation.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000242 continue;
243 }
244 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000245 //Check if this is a valid office installtion folder by looking for the
246 //program sub-directory
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000247 var progDir = sHome + "\\program";
248 if (! aFileSystemObject.FolderExists(progDir))
249 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000250 stdout.WriteLine("\n Error: Could not find directory \"" +
251 progDir + "\". An office installation is required, " +
252 "please specify the path to a valid office " +
253 "installation.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000254 continue;
255 }
256 return sHome;
257 }
258}
259
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000260function searchOffice()
261{
262 var tmp = oo_sdk_home;
263 var officepath ="";
Release Engineers72b0b032009-08-06 07:01:05 +0000264 var index=-1;
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000265
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000266 if ((index = tmp.lastIndexOf("\\sdk")) != -1) {
Release Engineers72b0b032009-08-06 07:01:05 +0000267 tmp = tmp.substr(0, index);
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000268 }
269
Release Engineers72b0b032009-08-06 07:01:05 +0000270 if (aFileSystemObject.FileExists(tmp + "\\program\\soffice.exe")) {
271 return tmp;
272 }
273
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000274 return "";
275}
276
Release Engineers72b0b032009-08-06 07:01:05 +0000277
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000278function getOfficeBaseHome()
279{
280 var officebase = oo_sdk_home;
281 var index=officebase.lastIndexOf("\\");
282
283 officebase = officebase.substr(0, index);
284
285 return officebase;
286}
287
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000288function getMakeHome()
289{
290 var sSuggestedHome = WshSysEnv("OO_SDK_MAKE_HOME");
291
292 while(true)
293 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000294 stdout.Write("\n Enter GNU make (3.79.1 or higher) tools directory [" +
295 sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000296 var sHome = stdin.ReadLine();
297 if (sHome.length == 0)
298 {
299 //No user input, use default.
300 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
301 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000302 stdout.WriteLine("\n Error: Could not find directory \"" +
303 sSuggestedHome + "\". GNU make is required, " +
304 "please specify a GNU make tools directory.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000305 sSuggestedHome = "";
306 continue;
307 }
308 sHome = sSuggestedHome;
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000309 } else
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000310 {
311 //validate the user input
312 if ( ! aFileSystemObject.FolderExists(sHome))
313 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000314 stdout.WriteLine("\n Error: The directory \"" + sHome +
315 "\" does not exist. GNU make is required, " +
316 "please specify a GNU make tools directory.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000317 continue;
318 }
319 }
320 //Check for the make executable
321 var sMakePath = sHome + "\\make.exe";
322 if (! aFileSystemObject.FileExists(sMakePath))
Rüdiger Timm49fad312005-03-29 11:02:26 +0000323 {
324 sMakePath = sHome + "\\mingw32-make.exe";
325 }
326 if (! aFileSystemObject.FileExists(sMakePath))
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000327 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000328 stdout.WriteLine("\n Error: Could not find \"" + sMakePath +
329 "\". GNU make is required, please specify a GNU " +
330 "make tools directory.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000331 continue;
332 }
333 return sHome;
334 }
335}
336
337function getZipHome()
338{
339 var sSuggestedHome = WshSysEnv("OO_SDK_ZIP_HOME");
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000340
341 if (sSuggestedHome.length == 0 && oo_sdk_make_home.length > 0) {
342 sSuggestedHome = oo_sdk_make_home;
343 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000344
345 while(true)
346 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000347 stdout.Write("\n Enter a zip (2.3 or higher) tools directory [" +
348 sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000349 var sHome = stdin.ReadLine();
350 if (sHome.length == 0)
351 {
352 //No user input, use default.
353 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
354 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000355 stdout.WriteLine("\n Error: Could not find directory \"" +
356 sSuggestedHome + "\". zip is required, please " +
357 "specify a zip tools directory.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000358 sSuggestedHome = "";
359 continue;
360 }
361 sHome = sSuggestedHome;
362 }
363 else
364 {
365 //validate the user input
366 if ( ! aFileSystemObject.FolderExists(sHome))
367 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000368 stdout.WriteLine("\n Error: The directory \"" + sHome +
369 "\" does not exist. zip is required, please " +
370 "specify a zip tools directory.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000371 continue;
372 }
373 }
374 //Check for the make executable
375 var sZipPath = sHome + "\\zip.exe";
376 if (! aFileSystemObject.FileExists(sZipPath))
377 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000378 stdout.WriteLine("\n Error: Could not find \"" + sZipPath +
379 "\". zip is required, please specify a zip tools " +
380 "directory.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000381 continue;
382 }
383 return sHome;
384 }
385}
386
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000387function getCatHome()
388{
389 var sSuggestedHome = WshSysEnv("OO_SDK_CAT_HOME");
390
391 if (sSuggestedHome.length == 0 && oo_sdk_make_home.length > 0) {
392 sSuggestedHome = oo_sdk_make_home;
393 }
394
395 while(true)
396 {
397 stdout.Write("\n Enter a cat (2.0 or higher) tools directory [" +
398 sSuggestedHome + "]:");
399 var sHome = stdin.ReadLine();
400 if (sHome.length == 0)
401 {
402 //No user input, use default.
403 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
404 {
405 stdout.WriteLine("\n Error: Could not find directory \"" +
406 sSuggestedHome + "\". cat is required, please " +
407 "specify a cat tools directory." +
408 "\nYou can get cat from " +
409 "http://sourceforge.net/projects/unxutils/files/latest/download");
410 sSuggestedHome = "";
411 continue;
412 }
413 sHome = sSuggestedHome;
414 }
415 else
416 {
417 //validate the user input
418 if ( ! aFileSystemObject.FolderExists(sHome))
419 {
420 stdout.WriteLine("\n Error: The directory \"" + sHome +
421 "\" does not exist. cat is required, please " +
422 "specify a cat tools directory." +
423 "\nYou can get cat from " +
424 "http://sourceforge.net/projects/unxutils/files/latest/download");
425 continue;
426 }
427 }
428 //Check for the make executable
429 var sCatPath = sHome + "\\cat.exe";
430 if (! aFileSystemObject.FileExists(sCatPath))
431 {
432 stdout.WriteLine("\n Error: Could not find \"" + sCatPath +
433 "\". cat is required, please specify a cat tools " +
434 "directory." +
435 "\nYou can get cat from " +
436 "http://sourceforge.net/projects/unxutils/files/latest/download");
437 continue;
438 }
439 return sHome;
440 }
441}
442
443function getSedHome()
444{
445 var sSuggestedHome = WshSysEnv("OO_SDK_SED_HOME");
446
447 if (sSuggestedHome.length == 0 && oo_sdk_make_home.length > 0) {
448 sSuggestedHome = oo_sdk_make_home;
449 }
450
451 while(true)
452 {
453 stdout.Write("\n Enter a sed (3.02 or higher) tools directory [" +
454 sSuggestedHome + "]:");
455 var sHome = stdin.ReadLine();
456 if (sHome.length == 0)
457 {
458 //No user input, use default.
459 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
460 {
461 stdout.WriteLine("\n Error: Could not find directory \"" +
462 sSuggestedHome + "\". sed is required, please " +
463 "specify a sed tools directory." +
464 "\nYou can get sed from " +
465 "http://sourceforge.net/projects/unxutils/files/latest/download");
466 sSuggestedHome = "";
467 continue;
468 }
469 sHome = sSuggestedHome;
470 }
471 else
472 {
473 //validate the user input
474 if ( ! aFileSystemObject.FolderExists(sHome))
475 {
476 stdout.WriteLine("\n Error: The directory \"" + sHome +
477 "\" does not exist. sed is required, please " +
478 "specify a sed tools directory." +
479 "\nYou can get sed from " +
480 "http://sourceforge.net/projects/unxutils/files/latest/download");
481 continue;
482 }
483 }
484 //Check for the make executable
485 var sSedPath = sHome + "\\sed.exe";
486 if (! aFileSystemObject.FileExists(sSedPath))
487 {
488 stdout.WriteLine("\n Error: Could not find \"" + sSedPath +
489 "\". sed is required, please specify a sed tools " +
490 "directory." +
491 "\nYou can get sed from " +
492 "http://sourceforge.net/projects/unxutils/files/latest/download");
493 continue;
494 }
495 return sHome;
496 }
497}
498
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000499function getCppHome()
500{
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000501 var sSuggestedHome = WshSysEnv("OO_SDK_CPP_HOME");
502 if (sSuggestedHome.length == 0)
503 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000504 var sVC="";
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000505 try {
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000506 sVC = WshShell.RegRead(regKeyVCExpress90);
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000507 }catch (exc) {}
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000508 if (sVC.length == 0)
509 {
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000510 try {
511 sVC = WshShell.RegRead(regKeyVCExpress90_2);
512 }catch (exc) {}
513 }
514 if (sVC.length == 0)
515 {
516 try {
517 sVC = WshShell.RegRead(regKeyVC90);
518 }catch (exc) {}
519 }
520 // check Windows SDK if VC 9
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000521 if (sVC.length > 0)
522 {
Juergen Schmidt40487922009-11-05 14:21:50 +0000523 oo_sdk_manifest_used="true";
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000524 try {
525 oo_sdk_windowssdk = WshShell.RegRead(regKeyWindowsSDK);
526 }catch (exc) {}
527 }
528 if (sVC.length == 0)
529 {
530 try {
531 sVC = WshShell.RegRead(regKeyVCExpress80);
532 }catch (exc) {}
Juergen Schmidt40487922009-11-05 14:21:50 +0000533 if (sVC.length > 0)
534 oo_sdk_manifest_used="true";
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000535 }
536 if (sVC.length == 0)
537 {
538 try {
539 sVC = WshShell.RegRead(regKeyVC80);
540 }catch (exc) {}
Juergen Schmidt40487922009-11-05 14:21:50 +0000541 if (sVC.length > 0)
542 oo_sdk_manifest_used="true";
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000543 }
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +0000544 if (sVC.length == 0)
545 {
546 try {
547 sVC = WshShell.RegRead(regKeyVC71);
548 }catch (exc) {}
549 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000550 if (sVC.length > 0)
551 {
552 sVC += "bin";
553 if (aFileSystemObject.FileExists(sVC + "\\cl.exe"))
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000554 sSuggestedHome = sVC;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000555 }
556 }
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000557
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000558 var bSkip = false;
559 while(true)
560 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000561 stdout.Write("\n Enter the directory of the C++ compiler (optional) [" +
562 sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000563 var sHome = stdin.ReadLine();
564 if (sHome.length == 0)
565 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000566 //No user input, check OO_SDK_CPP_HOME or suggested value
Juergen Schmidt40487922009-11-05 14:21:50 +0000567 if ( sSuggestedHome.length == 0 ) {
568 bSkip = true;
569 } else {
570 if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
571 {
572 stdout.WriteLine("\n Error: Could not find directory \"" +
573 sSuggestedHome + "\".");
574 sSuggestedHome = "";
575 bSkip = true;
576 }
577 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000578
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000579 sHome = sSuggestedHome;
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000580 } else
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000581 {
582 //validate the user input
583 if ( ! aFileSystemObject.FolderExists(sHome))
584 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000585 stdout.WriteLine("\n Error: Could not find directory \"" +
586 sHome + "\".");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000587 bSkip = true;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000588 }
589 }
590
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000591 if ( !bSkip) {
592 //Check if the C++ compiler exist
593 var cl = sHome + "\\cl.exe";
Jens-Heiner Rechtien94c076d2007-07-31 12:51:56 +0000594 var mt = sHome + "\\mt.exe";
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000595
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000596 if (! aFileSystemObject.FileExists(cl))
597 {
598 stdout.WriteLine("\n Error: Could not find the C++ compiler \""
599 + cl + "\".");
600 sHome = "";
601 bSkip = true;
Jens-Heiner Rechtien94c076d2007-07-31 12:51:56 +0000602 } else {
603 if (aFileSystemObject.FileExists(mt)) {
604 oo_sdk_vc8_used="true";
605 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000606 }
607 }
608
609 if ( bSkip ) {
610 if ( skipChoice("the C++ compiler") ) {
611 return "";
612 } else {
613 bSkip = false;
614 continue;
615 }
616 }
Jens-Heiner Rechtien94c076d2007-07-31 12:51:56 +0000617
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000618 return sHome;
619 }
620}
621
622function getCliHome()
623{
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000624 var sSuggestedHome = WshSysEnv("OO_SDK_CLI_HOME");
625
626 if (sSuggestedHome.length == 0)
627 {
628 try {
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +0000629 var _ver = WshShell.RegRead(regKeyDotNet2_0);
630 if (_ver.length > 0)
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000631 {
632 sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot);
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +0000633 sSuggestedHome += sDirDotNet2_0;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000634 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
635 sSuggestedHome = "";
636 }
Ivo Hinkelmannae0bc592006-12-20 11:22:40 +0000637
638 if (sSuggestedHome.length == 0)
639 {
640 _ver = WshShell.RegRead(regKeyDotNet1_1);
641 if (_ver.length > 0)
642 {
643 sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot);
644 sSuggestedHome += sDirDotNet1_1;
645 if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
646 sSuggestedHome = "";
647 }
648 }
649 } catch (exc) {}
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000650 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000651
652 var bSkip = false;
653 while(true)
654 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000655 stdout.Write("\n Enter the directory of the C# and VB.NET compilers (optional) [" + sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000656 var sHome = stdin.ReadLine();
657 if (sHome.length == 0)
658 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000659 //No user input, check OO_SDK_CLI_HOME or suggested value
660 if ( sSuggestedHome.length == 0 ) {
661 bSkip = true;
662 } else {
663 if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
664 {
665 stdout.WriteLine("\n Error: Could not find directory \"" +
666 sSuggestedHome + "\".");
667 sSuggestedHome = "";
668 bSkip = true;
669 }
670 }
671
672 sHome = sSuggestedHome;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000673 }
674 else
675 {
676 //validate the user input
677 if ( ! aFileSystemObject.FolderExists(sHome))
678 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000679 stdout.WriteLine("\n Error: The directory \"" + sHome +
680 "\" does not exist.");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000681 bSkip = true;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000682 }
683 }
684
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000685 if ( !bSkip ) {
686 //Check if the C# and VB.NET compiler exist
687 var csc = sHome + "\\csc.exe";
688 var vbc = sHome + "\\vbc.exe";
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000689
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000690 if (! aFileSystemObject.FileExists(csc))
691 {
692 stdout.WriteLine("\n Error: Could not find the C# compiler \"" +
693 csc + "\".");
694 bSkip = true;
695 }
696 if (! aFileSystemObject.FileExists(vbc))
697 {
698 stdout.WriteLine("\n Error: Could not find the VB.NET compiler \"" +
699 vbc + "\".");
700 bSkip = true;
701 }
702 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000703
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000704 if ( bSkip ) {
705 if ( skipChoice("the C# and VB.NET compilers") ) {
706 return "";
707 } else {
708 bSkip = false;
709 continue;
710 }
711 }
712
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000713 return sHome;
714 }
715}
716
717function getJavaHome()
718{
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000719 var sSuggestedHome = WshSysEnv("OO_SDK_JAVA_HOME");
720 if (sSuggestedHome.length == 0)
721 {
722 try {
723 var currentVersion = WshShell.RegRead(regKeyJDK + "CurrentVersion");
724 if (currentVersion.length > 0)
725 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000726 sSuggestedHome = WshShell.RegRead(regKeyJDK + currentVersion +
727 "\\JavaHome");
728 if ( ! aFileSystemObject.FolderExists(sSuggestedHome) )
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000729 sSuggestedHome = "";
730 }
731 } catch (exc) {}
732 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000733
734 var bSkip = false;
735 while(true)
736 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000737 stdout.Write("\n Enter JAVA SDK (1.4.1_01 or higher) installation directory (optional) [" + sSuggestedHome + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000738 var sHome = stdin.ReadLine();
739 if (sHome.length == 0)
740 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000741 //No user input, check OO_SDK_JAVA_HOME or suggested value
742 if ( sSuggestedHome.length == 0 ) {
743 bSkip = true;
744 } else {
745 if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
746 {
747 stdout.WriteLine("\n Error: Could not find directory \"" +
748 sSuggestedHome + "\".");
749 sSuggestedHome = "";
750 bSkip=true;
751 }
752 }
753
754 sHome = sSuggestedHome;
755 } else
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000756 {
757 //validate the user input
758 if ( ! aFileSystemObject.FolderExists(sHome))
759 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000760 stdout.WriteLine("\n Error: The directory \"" + sHome +
761 "\" does not exist.");
762 bSkip = true;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000763 }
764 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000765
766 if ( !bSkip) {
767 //Check if this is an sdk folder by looking for the javac compiler
768 var javacompiler = sHome + "\\bin\\javac.exe";
769 if (! aFileSystemObject.FileExists(javacompiler))
770 {
771 stdout.WriteLine("\n Error: Could not find \"" +
772 javacompiler + "\".");
773 bSkip = true;
774 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000775 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000776
777 if ( bSkip ) {
778 if ( skipChoice("the Java SDK") ) {
779 return "";
780 } else {
781 bSkip = false;
782 continue;
783 }
784 }
785
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000786 return sHome;
787 }
788}
789
790function getOutputDir()
791{
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000792 var defaultdir = "c:\\" + oo_sdk_name;
793 var sSuggestedDir = WshSysEnv("OO_SDK_OUT");
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000794 if (sSuggestedDir.length == 0)
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000795 sSuggestedDir = defaultdir;
796
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000797 var bSkip = false;
798 while(true)
799 {
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000800 stdout.Write(
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000801 "\n Default output directory is the \"c:\\" + oo_sdk_name + "\".\n" +
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000802 " Enter an existent directory if you prefer a different one. But note" +
803 " that only\n a path without spaces is allowed because of a" +
804 " limitation of gnu make. (optional) [" + sSuggestedDir + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000805 var sDir = stdin.ReadLine();
806 if (sDir.length == 0)
807 {
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000808 //No user input, check OO_SDK_OUT or suggested value
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000809 if ( sSuggestedDir.length == 0 ) {
810 bSkip = true;
811 } else {
Rüdiger Timmbde5b812008-07-11 13:13:03 +0000812 if (sSuggestedDir == oo_user_sdk_dir || sSuggestedDir == defaultdir) {
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000813 var fso = new ActiveXObject("Scripting.FileSystemObject");
814 if ( !fso.FolderExists(sSuggestedDir) )
815 fso.CreateFolder(sSuggestedDir);
816 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000817 if ( !aFileSystemObject.FolderExists(sSuggestedDir) )
818 {
819 stdout.WriteLine("\n Error: Could not find directory \"" +
820 sSuggestedDir + "\".");
821 sSuggestedDir = "";
822 bSkip = true;
823 }
824 }
825
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000826 sDir = sSuggestedDir;
827 }
828 else
829 {
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000830 if (sDir.indexOf(' ') != -1) {
831 stdout.WriteLine("\n Error: your specified output directory " +
832 "\"" + sDir + "\" " +
833 "contains one or more spaces.\n That " +
834 "causes problems with gnu make. Please specifiy" +
835 " a directory without spaces.");
836 bSkip = true;
837 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000838 //validate the user input
839 if ( ! aFileSystemObject.FolderExists(sDir))
840 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000841 stdout.WriteLine("\n Error: Could not find directory \"" +
842 sDir + "\".");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000843 bSkip = true;
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000844 }
845 }
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000846
847 if ( bSkip ) {
848 if ( skipChoice("a special output directory") ) {
849 return "";
850 } else {
851 bSkip = false;
852 continue;
853 }
854 }
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000855
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000856 return sDir;
857 }
858}
859
860function getAutoDeployment()
861{
862 var sSuggestedAuto = WshSysEnv("SDK_AUTO_DEPLOYMENT");
863 if (sSuggestedAuto.length == 0)
864 sSuggestedAuto = "YES";
865
866 while(true)
867 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000868 stdout.Write("\n Automatic deployment of UNO components (YES/NO) ["+
869 sSuggestedAuto + "]:");
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000870 var sAuto = stdin.ReadLine();
871 if (sAuto.length == 0)
872 sAuto = sSuggestedAuto;
873 else
874 {
875 sAutoU = sAuto.toUpperCase();
876 if (sAutoU != "YES" && sAutoU != "NO")
877 {
Rüdiger Timmf5009e982005-02-03 11:36:07 +0000878 stdout.WriteLine("\n Error: The value \"" + sAuto + "\" is " +
879 "invalid. Please answer YES or NO.")
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000880 continue;
881 }
882 sAuto = sAutoU;
883 }
884 return sAuto;
885 }
886}
887
888//The function uses sp2bv.exe to obtain a file URL from a
889//system path. The URL is already escaped for use as bootstrap variable.
890//($ -> \$). Then the resulting string is escaped for use in a bat file.
891//That is % signs are made to double % (% -> %%);
892function makeBootstrapFileUrl(systemPath)
893{
894 var oExec = WshShell.Exec("sp2bv.exe \"" + systemPath + "\"");
895 var output="";
896 while (true)
897 {
898 if (!oExec.StdOut.AtEndOfStream)
899 {
900 var next = oExec.StdOut.Read(1);
901 if (next == '%')
902 output += "%%";
903 else
904 output += next;
905 }
906 else
907 break;
908 }
909 return output;
910}
911
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000912function writeBatFile(fdir, file)
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000913{
914 var fso = new ActiveXObject("Scripting.FileSystemObject");
Rüdiger Timm8fad15f2005-11-09 08:28:12 +0000915 if ( !fso.FolderExists(fdir) )
916 fso.CreateFolder(fdir);
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000917 var newFile = fso.CreateTextFile(file, true);
Juergen Schmidt40487922009-11-05 14:21:50 +0000918
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000919 newFile.Write(
920 "@echo off\n" +
Armin Le Grand3c1d4742014-07-14 19:09:11 +0000921 "REM This script sets all environment variables, which\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000922 "REM are necessary for building the examples of the Office Development Kit.\n" +
923 "REM The Script was developed for the operating systems Windows.\n" +
924 "REM The SDK name\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000925 "REM Example: @set \"OO_SDK_NAME=openoffice4.0_sdk\"\n" +
926 "@set \"OO_SDK_NAME=" + oo_sdk_name +
927 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000928 "REM Installation directory of the Software Development Kit.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000929 "REM Example: @set \"OO_SDK_HOME=C:\\Program Files\\OpenOffice\\4\\sdk\"\n" +
930 "@set \"OO_SDK_HOME=" + oo_sdk_home +
931 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000932 "REM Office installation directory.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000933 "REM Example: @set \"OFFICE_HOME=C:\\Program Files\\OpenOffice 4\"\n" +
934 "@set \"OFFICE_HOME=" + office_home +
935 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000936 "REM Directory of the make command.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000937 "REM Example: @set \"OO_SDK_MAKE_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
938 "@set \"OO_SDK_MAKE_HOME=" + oo_sdk_make_home +
939 "\"\n\n" +
940 "REM Directory of the zip tool.\n" +
941 "REM Example: @set \"OO_SDK_ZIP_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
942 "@set \"OO_SDK_ZIP_HOME=" + oo_sdk_zip_home +
943 "\"\n\n" +
944 "REM Directory of the cat tool.\n" +
945 "REM Example: @set \"OO_SDK_CAT_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
946 "@set \"OO_SDK_CAT_HOME=" + oo_sdk_cat_home +
947 "\"\n\n" +
948 "REM Directory of the sed tool.\n" +
949 "REM Example: @set \"OO_SDK_SED_HOME=C:\\UnxUtils\\usr\\local\\wbin\"\n" +
950 "@set \"OO_SDK_SED_HOME=" + oo_sdk_sed_home +
951 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000952 "REM Directory of the C++ compiler.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000953 "REM Example: @set \"OO_SDK_CPP_HOME=C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\bin\"\n" +
954 "@set \"OO_SDK_CPP_HOME=" + oo_sdk_cpp_home +
955 "\"\n@set \"CPP_MANIFEST=" + oo_sdk_manifest_used +
956 "\"\n@set \"CPP_WINDOWS_SDK=" + oo_sdk_windowssdk +
957 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000958 "REM Directory of the C# and VB.NET compilers.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000959 "REM Example: @set \"OO_SDK_CLI_HOME=C:\\WINXP\\Microsoft.NET\\Framework\\v1.0.3705\"\n" +
960 "@set \"OO_SDK_CLI_HOME=" + oo_sdk_cli_home +
961 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000962 "REM Java SDK installation directory.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000963 "REM Example: @set \"OO_SDK_JAVA_HOME=C:\\Program Files\\Java\\jdk1.6.0_05\"\n" +
964 "@set \"OO_SDK_JAVA_HOME=" + oo_sdk_java_home +
965 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000966 "REM Special output directory\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000967 "REM Example: @set \"OO_SDK_OUT=C:\\" + oo_sdk_name + "\"\n" +
968 "@set \"OO_SDK_OUT=" + oo_sdk_out +
969 "\"\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000970 "REM Automatic deployment\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000971 "REM Example: @set \"SDK_AUTO_DEPLOYMENT=YES\"\n" +
972 "@set \"SDK_AUTO_DEPLOYMENT=" + sdk_auto_deployment +
973 "\"\n\n" +
974 "REM Check installation path for the Office Development Kit.\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000975 "if not defined OO_SDK_HOME (\n" +
976 " echo Error: the variable OO_SDK_HOME is missing!\n" +
977 " goto :error\n" +
978 " )\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000979 "\n\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +0000980 "REM Check installation path for GNU make.\n" +
981 "if not defined OO_SDK_MAKE_HOME (\n" +
982 " echo Error: the variable OO_SDK_MAKE_HOME is missing!\n" +
983 " goto :error\n" +
984 " )\n" +
985 "\n" +
986 "REM Check installation path for the zip tool.\n" +
987 "if not defined OO_SDK_ZIP_HOME (\n" +
988 " echo Error: the variable OO_SDK_ZIP_HOME is missing!\n" +
989 " goto :error\n" +
990 " )\n" +
991 "\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +0000992 "REM Check installation path for the cat tool.\n" +
993 "if not defined OO_SDK_CAT_HOME (\n" +
994 " echo Error: the variable OO_SDK_CAT_HOME is missing!\n" +
995 " goto :error\n" +
996 " )\n" +
997 "\n" +
998 "REM Check installation path for the sed tool.\n" +
999 "if not defined OO_SDK_SED_HOME (\n" +
1000 " echo Error: the variable OO_SDK_SED_HOME is missing!\n" +
1001 " goto :error\n" +
1002 " )\n" +
1003 "\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001004 "REM Set library path. \n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001005 "@set \"LIB=%OO_SDK_HOME%\\lib;%LIB%\"\n" +
Rüdiger Timmbde5b812008-07-11 13:13:03 +00001006 "if defined CPP_WINDOWS_SDK (\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001007 " @set \"LIB=%LIB%;%CPP_WINDOWS_SDK%\\lib\"\n" +
Rüdiger Timmbde5b812008-07-11 13:13:03 +00001008 " )\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001009 "\n" +
1010 "REM Set office program path.\n" +
Oliver Boltecdd1edd2005-06-17 08:37:09 +00001011 "if defined OFFICE_HOME (\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001012 " @set \"OFFICE_PROGRAM_PATH=%OFFICE_HOME%\\program\"\n" +
1013 " )" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001014 "\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001015 "REM Set UNO path, necessary to ensure that the cpp examples using the\n" +
1016 "REM new UNO bootstrap mechanism use the configured office installation\n" +
1017 "REM (only set when using an Office).\n" +
1018 "if defined OFFICE_HOME (\n" +
1019 " @set \"UNO_PATH=%OFFICE_PROGRAM_PATH%\"\n" +
1020 " )\n" +
1021 "\n\n" +
1022 "@set \"OO_SDK_OFFICE_BIN_DIR=%OFFICE_PROGRAM_PATH%\"\n" +
1023 "@set \"OO_SDK_OFFICE_LIB_DIR=%OFFICE_PROGRAM_PATH%\"\n" +
1024 "@set \"OO_SDK_OFFICE_JAVA_DIR=%OFFICE_PROGRAM_PATH%\\classes\"\n" +
Rüdiger Timmbde5b812008-07-11 13:13:03 +00001025 "\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001026 "REM Set classpath\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001027 "@set \"CLASSPATH=%OO_SDK_OFFICE_JAVA_DIR%\\juh.jar;%OO_SDK_OFFICE_JAVA_DIR%\\jurt.jar;%OO_SDK_OFFICE_JAVA_DIR%\\ridl.jar;%OO_SDK_OFFICE_JAVA_DIR%\\unoloader.jar;%OO_SDK_OFFICE_JAVA_DIR%\\unoil.jar\"\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001028 "\n" +
1029 "REM Add directory of the SDK tools to the path.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001030 "set \"PATH=%OO_SDK_HOME%\\bin;%OO_SDK_OFFICE_BIN_DIR%;%OO_SDK_OFFICE_BIN_DIR%;%OO_SDK_HOME%\\WINexample.out\\bin;%OO_SDK_MAKE_HOME%;%OO_SDK_ZIP_HOME%;%OO_SDK_CAT_HOME%;%OO_SDK_SED_HOME%;%PATH%\"\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001031 "\n" +
1032 "REM Set PATH appropriate to the output directory\n" +
Rüdiger Timmbde5b812008-07-11 13:13:03 +00001033 "if defined OO_SDK_OUT (\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001034 " @set \"PATH=%OO_SDK_OUT%\\WINexample.out\\bin;%PATH%\"\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001035 " ) else (\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001036 " @set \"PATH=%OO_SDK_HOME%\\WINexample.out\\bin;%PATH%\"\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001037 " )\n" +
1038 "\n" +
Juergen Schmidt40487922009-11-05 14:21:50 +00001039 "REM Add directory of the Win SDK to the path, if necessary.\n" +
1040 "if defined CPP_WINDOWS_SDK (\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001041 " @set \"PATH=%CPP_WINDOWS_SDK\\bin%;%PATH%\"\n" +
1042 " @set \"INCLUDE=%CPP_WINDOWS_SDK\\Include%;%INCLUDE%\"\n" +
Juergen Schmidt40487922009-11-05 14:21:50 +00001043 ")\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001044 "REM Add directory of the C# and VB.NET compilers to the path, if necessary.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001045 "if defined OO_SDK_CLI_HOME @set \"PATH=%OO_SDK_CLI_HOME%;%PATH%\"\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001046 "\n" +
1047 "REM Add directory of the Java tools to the path, if necessary.\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001048 "if defined OO_SDK_JAVA_HOME @set \"PATH=%OO_SDK_JAVA_HOME%\\bin;%OO_SDK_JAVA_HOME%\\jre\\bin;%PATH%\"\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001049 "\n" +
1050 "REM Set environment for C++ compiler tools, if necessary.\n" +
1051 "if defined OO_SDK_CPP_HOME call \"%OO_SDK_CPP_HOME%\\VCVARS32.bat\"\n" +
1052 "\n" +
1053 "REM Set tilte to identify the prepared shell.\n" +
1054 "title Shell prepared for SDK\n" +
1055 "\nREM Prepare shell with all necessary environment variables.\n" +
1056 "echo.\n" +
Rüdiger Timm8fad15f2005-11-09 08:28:12 +00001057 "echo ******************************************************************\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001058 "echo *\n" +
1059 "echo * SDK environment is prepared for Windows\n" +
1060 "echo *\n" +
1061 "echo * SDK = %OO_SDK_HOME%\n" +
1062 "echo * Office = %OFFICE_HOME%\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001063 "echo * Make = %OO_SDK_MAKE_HOME%\n" +
1064 "echo * Zip = %OO_SDK_ZIP_HOME%\n" +
Armin Le Grand8a6f84c2013-07-27 11:40:32 +00001065 "echo * cat = %OO_SDK_CAT_HOME%\n" +
1066 "echo * sed = %OO_SDK_SED_HOME%\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001067 "echo * C++ Compiler = %OO_SDK_CPP_HOME%\n" +
1068 "echo * C# and VB.NET compilers = %OO_SDK_CLI_HOME%\n" +
1069 "echo * Java = %OO_SDK_JAVA_HOME%\n" +
Rüdiger Timmbde5b812008-07-11 13:13:03 +00001070 "echo * Special Output directory = %OO_SDK_OUT%\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001071 "echo * Auto deployment = %SDK_AUTO_DEPLOYMENT%\n" +
1072 "echo *\n" +
Rüdiger Timm8fad15f2005-11-09 08:28:12 +00001073 "echo ******************************************************************\n" +
1074 "echo.\n" +
Jens-Heiner Rechtienaa461c72004-11-09 12:45:24 +00001075 "goto end\n" +
1076 "\n" +
1077 " :error\n" +
1078 "Error: Please insert the necessary environment variables into the batch file.\n" +
1079 "\n" +
1080 " :end\n"
1081 );
1082 newFile.Close();
1083}