xref: /AOO41X/main/odk/cfgWin.js (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir// This script asks for variables, which are necessary for building the
2*cdf0e10cSrcweir// examples of the Office Development Kit. The script duplicates the template
3*cdf0e10cSrcweir// script and inserts the variables into the copied script.
4*cdf0e10cSrcweir// The Script was developed for the operating systems Microsoft Windows.
5*cdf0e10cSrcweirvar regKeyOfficeCurrentUser = "HKEY_CURRENT_USER\\Software\\OpenOffice.org\\UNO\\InstallPath\\";
6*cdf0e10cSrcweirvar regKeyOfficeLocaleMachine = "HKEY_LOCAL_MACHINE\\Software\\OpenOffice.org\\UNO\\InstallPath\\";
7*cdf0e10cSrcweirvar regKeyDotNetInstallRoot = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\.NETFramework\\InstallRoot";
8*cdf0e10cSrcweirvar regKeyDotNet1_1 = "HKLM\\Software\\Microsoft\\.NETFramework\\policy\\v1.1\\4322";
9*cdf0e10cSrcweirvar sDirDotNet1_1 = "v1.1.4322";
10*cdf0e10cSrcweirvar regKeyDotNet2_0 = "HKLM\\Software\\Microsoft\\.NETFramework\\Policy\\v2.0\\50727";
11*cdf0e10cSrcweirvar sDirDotNet2_0 = "v2.0.50727";
12*cdf0e10cSrcweir
13*cdf0e10cSrcweirvar regKeyJDK = "HKLM\\Software\\JavaSoft\\Java Development Kit\\";
14*cdf0e10cSrcweir//var regKeyVC70 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir";
15*cdf0e10cSrcweir//var regKeyVC71 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir";
16*cdf0e10cSrcweirvar regKeyVC90 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir";
17*cdf0e10cSrcweir
18*cdf0e10cSrcweir//var regKeyVCExpress80 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir";
19*cdf0e10cSrcweirvar regKeyVCExpress90 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir";
20*cdf0e10cSrcweir
21*cdf0e10cSrcweirvar regKeyWindowsSDK = "HKLM\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\CurrentInstallFolder";
22*cdf0e10cSrcweir
23*cdf0e10cSrcweirvar WshShell = WScript.CreateObject("WScript.Shell");
24*cdf0e10cSrcweirvar WshSysEnv = WshShell.Environment("process");
25*cdf0e10cSrcweirvar aFileSystemObject =  new ActiveXObject("Scripting.FileSystemObject");
26*cdf0e10cSrcweirvar stdin = WScript.StdIn;
27*cdf0e10cSrcweirvar stdout = WScript.StdOut;
28*cdf0e10cSrcweir
29*cdf0e10cSrcweirstdout.WriteLine("\n" +
30*cdf0e10cSrcweir" *** Configure your SDK environment ***\n\n" +
31*cdf0e10cSrcweir" NOTE: This script is working only for Windows 2000, Windows XP or newer versions!\n");
32*cdf0e10cSrcweir
33*cdf0e10cSrcweirvar oo_sdk_name=WshSysEnv("OO_SDK_NAME");
34*cdf0e10cSrcweirvar stldebug="";
35*cdf0e10cSrcweirvar oo_sdk_home=getSdkHome();
36*cdf0e10cSrcweirvar oo_user_sdk_dir=WshSysEnv("APPDATA") + "\\" + oo_sdk_name;
37*cdf0e10cSrcweirvar oo_user_sdk_env_script=oo_user_sdk_dir + "\\setsdkenv_windows.bat";
38*cdf0e10cSrcweir
39*cdf0e10cSrcweirvar office_home=getOfficeHome();
40*cdf0e10cSrcweirvar office_base_home=getOfficeBaseHome();
41*cdf0e10cSrcweirvar oo_sdk_ure_home=getUreHome();
42*cdf0e10cSrcweir
43*cdf0e10cSrcweirvar oo_sdk_make_home=getMakeHome();
44*cdf0e10cSrcweirvar oo_sdk_zip_home=getZipHome();
45*cdf0e10cSrcweirvar oo_sdk_manifest_used="";
46*cdf0e10cSrcweirvar oo_sdk_windowssdk="";
47*cdf0e10cSrcweirvar oo_sdk_cpp_home=getCppHome();
48*cdf0e10cSrcweirvar oo_sdk_cli_home=getCliHome();
49*cdf0e10cSrcweirvar oo_sdk_java_home=getJavaHome();
50*cdf0e10cSrcweirvar oo_sdk_out=getOutputDir();
51*cdf0e10cSrcweirvar sdk_auto_deployment=getAutoDeployment();
52*cdf0e10cSrcweir
53*cdf0e10cSrcweirwriteBatFile(oo_user_sdk_dir, oo_user_sdk_env_script);
54*cdf0e10cSrcweir
55*cdf0e10cSrcweirstdout.Write(
56*cdf0e10cSrcweir	"\n ******************************************************************\n" +
57*cdf0e10cSrcweir    " * ... \"" + oo_user_sdk_env_script + "\"\n" +
58*cdf0e10cSrcweir    " * batch file has been prepared.\n" +
59*cdf0e10cSrcweir    " * This batch file will be used in the future to prepare your\n" +
60*cdf0e10cSrcweir	" * personal configured SDK environment.\n" +
61*cdf0e10cSrcweir	" ******************************************************************\n\n");
62*cdf0e10cSrcweir//    " * For each time you want to use this configured SDK environment,\n" +
63*cdf0e10cSrcweir//    " * you have to run the \"setsdkenv_windows.bat\" file in a new shell!\n" +
64*cdf0e10cSrcweir
65*cdf0e10cSrcweir// done -------------------------------------------------------------------------
66*cdf0e10cSrcweir
67*cdf0e10cSrcweir
68*cdf0e10cSrcweirfunction skipChoice(msg)
69*cdf0e10cSrcweir{
70*cdf0e10cSrcweir	stdout.Write("\n Do you want to skip the choice of " + msg + " (YES/NO) [YES]:");
71*cdf0e10cSrcweir	var sChoice = stdin.ReadLine();
72*cdf0e10cSrcweir    if (sChoice == "" || sChoice.toLowerCase() == "yes")
73*cdf0e10cSrcweir	   return true;
74*cdf0e10cSrcweir
75*cdf0e10cSrcweir	return false;
76*cdf0e10cSrcweir}
77*cdf0e10cSrcweir
78*cdf0e10cSrcweirfunction getSdkHome()
79*cdf0e10cSrcweir{
80*cdf0e10cSrcweir	var sSuggestedHome = WshSysEnv("OO_SDK_HOME");
81*cdf0e10cSrcweir    if (sSuggestedHome.length == 0) {
82*cdf0e10cSrcweir        var scriptname = WScript.ScriptFullName;
83*cdf0e10cSrcweir        sSuggestedHome = scriptname.substr(0,scriptname.length-10);
84*cdf0e10cSrcweir    }
85*cdf0e10cSrcweir
86*cdf0e10cSrcweir    while(true)
87*cdf0e10cSrcweir    {
88*cdf0e10cSrcweir        stdout.Write("\n Enter the Office Software Development Kit directory [" +
89*cdf0e10cSrcweir                     sSuggestedHome + "]:");
90*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
91*cdf0e10cSrcweir        if (sHome.length == 0)
92*cdf0e10cSrcweir        {
93*cdf0e10cSrcweir            //No user input, use default.
94*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
95*cdf0e10cSrcweir            {
96*cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
97*cdf0e10cSrcweir                                 sSuggestedHome + "\". An SDK is required, please" +
98*cdf0e10cSrcweir								 " specify the path to a valid installation.");
99*cdf0e10cSrcweir                continue;
100*cdf0e10cSrcweir            }
101*cdf0e10cSrcweir            sHome = sSuggestedHome;
102*cdf0e10cSrcweir        }
103*cdf0e10cSrcweir        else
104*cdf0e10cSrcweir        {
105*cdf0e10cSrcweir            //validate the user input
106*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
107*cdf0e10cSrcweir            {
108*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
109*cdf0e10cSrcweir                                 "\" does not exist. Please enter the path to a" +
110*cdf0e10cSrcweir								 "valid SDK installation.");
111*cdf0e10cSrcweir                continue;
112*cdf0e10cSrcweir            }
113*cdf0e10cSrcweir        }
114*cdf0e10cSrcweir        //Check if this is an sdk folder by looking for the idl sub - dir
115*cdf0e10cSrcweir        var idlDir = sHome + "\\idl";
116*cdf0e10cSrcweir        if (! aFileSystemObject.FolderExists(idlDir))
117*cdf0e10cSrcweir        {
118*cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find directory \"" +
119*cdf0e10cSrcweir                             idlDir + "\". An SDK is required, please specify " +
120*cdf0e10cSrcweir                             "the path to a valid SDK installation.");
121*cdf0e10cSrcweir            continue;
122*cdf0e10cSrcweir        }
123*cdf0e10cSrcweir
124*cdf0e10cSrcweir        if (aFileSystemObject.FileExists(sHome + "\\lib\\stlport_vc71_stldebug.lib")) {
125*cdf0e10cSrcweir		    stldebug="_stldebug";
126*cdf0e10cSrcweir		}
127*cdf0e10cSrcweir
128*cdf0e10cSrcweir        return sHome;
129*cdf0e10cSrcweir    }
130*cdf0e10cSrcweir}
131*cdf0e10cSrcweir
132*cdf0e10cSrcweirfunction getOfficeOrUre()
133*cdf0e10cSrcweir{
134*cdf0e10cSrcweir    var suggestion = "Office";
135*cdf0e10cSrcweir    var choice;
136*cdf0e10cSrcweir    while (choice != "office" && choice != "ure") {
137*cdf0e10cSrcweir        stdout.Write(
138*cdf0e10cSrcweir            "\n Use an installed Office or an installed UNO Runtime"
139*cdf0e10cSrcweir            + " Environment (Office/URE) [" + suggestion + "]:");
140*cdf0e10cSrcweir        choice = stdin.ReadLine();
141*cdf0e10cSrcweir        if (choice == "") {
142*cdf0e10cSrcweir            choice = suggestion;
143*cdf0e10cSrcweir        }
144*cdf0e10cSrcweir        choice = choice.toLowerCase();
145*cdf0e10cSrcweir    }
146*cdf0e10cSrcweir    return choice;
147*cdf0e10cSrcweir}
148*cdf0e10cSrcweir
149*cdf0e10cSrcweirfunction getOfficeHome()
150*cdf0e10cSrcweir{
151*cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OFFICE_HOME");
152*cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
153*cdf0e10cSrcweir    {
154*cdf0e10cSrcweir        try {
155*cdf0e10cSrcweir            sSuggestedHome = WshShell.RegRead(regKeyOfficeCurrentUser);
156*cdf0e10cSrcweir			//The registry entry points to the program folder but we need the
157*cdf0e10cSrcweir			//installation folder
158*cdf0e10cSrcweir        } catch(exc) {}
159*cdf0e10cSrcweir        if (sSuggestedHome.length == 0)
160*cdf0e10cSrcweir        {
161*cdf0e10cSrcweir            try {
162*cdf0e10cSrcweir                sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine);
163*cdf0e10cSrcweir                //The registry entry points to the program folder but we need
164*cdf0e10cSrcweir				//the installation folder
165*cdf0e10cSrcweir            } catch (exc) {}
166*cdf0e10cSrcweir        }
167*cdf0e10cSrcweir
168*cdf0e10cSrcweir		var index=0;
169*cdf0e10cSrcweir        if ((index = sSuggestedHome.lastIndexOf("\\")) != -1)
170*cdf0e10cSrcweir		   sSuggestedHome = sSuggestedHome.substr(0, index);
171*cdf0e10cSrcweir
172*cdf0e10cSrcweir        if (sSuggestedHome.length == 0)
173*cdf0e10cSrcweir		   sSuggestedHome = searchOffice();
174*cdf0e10cSrcweir    }
175*cdf0e10cSrcweir
176*cdf0e10cSrcweir    while(true)
177*cdf0e10cSrcweir    {
178*cdf0e10cSrcweir        stdout.Write("\n Enter the Office base installation directory [" +
179*cdf0e10cSrcweir                     sSuggestedHome + "]:");
180*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
181*cdf0e10cSrcweir        if (sHome.length == 0)
182*cdf0e10cSrcweir        {
183*cdf0e10cSrcweir            //No user input, use default.
184*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
185*cdf0e10cSrcweir            {
186*cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
187*cdf0e10cSrcweir                                 sSuggestedHome + "\" An office installation is " +
188*cdf0e10cSrcweir								 "required, please specify the path to a valid " +
189*cdf0e10cSrcweir								 "office installation.");
190*cdf0e10cSrcweir                sSuggestedHome = "";
191*cdf0e10cSrcweir                continue;
192*cdf0e10cSrcweir            }
193*cdf0e10cSrcweir            sHome = sSuggestedHome;
194*cdf0e10cSrcweir        } else
195*cdf0e10cSrcweir        {
196*cdf0e10cSrcweir            //validate the user input
197*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
198*cdf0e10cSrcweir            {
199*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
200*cdf0e10cSrcweir                                 "\" does not exist. Please specify the path to " +
201*cdf0e10cSrcweir								 "a valid office installation.");
202*cdf0e10cSrcweir                continue;
203*cdf0e10cSrcweir            }
204*cdf0e10cSrcweir        }
205*cdf0e10cSrcweir        //Check if this is a valid office installtion folder by looking for the
206*cdf0e10cSrcweir		//program sub-directory
207*cdf0e10cSrcweir        var progDir = sHome + "\\program";
208*cdf0e10cSrcweir        if (! aFileSystemObject.FolderExists(progDir))
209*cdf0e10cSrcweir        {
210*cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find directory \"" +
211*cdf0e10cSrcweir                             progDir + "\". An office installation is required, " +
212*cdf0e10cSrcweir							 "please specify the path to a valid office " +
213*cdf0e10cSrcweir							 "installation.");
214*cdf0e10cSrcweir            continue;
215*cdf0e10cSrcweir        }
216*cdf0e10cSrcweir        return sHome;
217*cdf0e10cSrcweir    }
218*cdf0e10cSrcweir}
219*cdf0e10cSrcweir
220*cdf0e10cSrcweirfunction searchOffice()
221*cdf0e10cSrcweir{
222*cdf0e10cSrcweir	var tmp = oo_sdk_home;
223*cdf0e10cSrcweir	var officepath ="";
224*cdf0e10cSrcweir	var index=-1;
225*cdf0e10cSrcweir
226*cdf0e10cSrcweir	if ((index = tmp.lastIndexOf("\\Basis")) != -1) {
227*cdf0e10cSrcweir	   tmp = tmp.substr(0, index);
228*cdf0e10cSrcweir	}
229*cdf0e10cSrcweir
230*cdf0e10cSrcweir	if (aFileSystemObject.FileExists(tmp + "\\program\\soffice.exe")) {
231*cdf0e10cSrcweir	   return tmp;
232*cdf0e10cSrcweir	}
233*cdf0e10cSrcweir
234*cdf0e10cSrcweir	return "";
235*cdf0e10cSrcweir}
236*cdf0e10cSrcweir
237*cdf0e10cSrcweir
238*cdf0e10cSrcweirfunction getOfficeBaseHome()
239*cdf0e10cSrcweir{
240*cdf0e10cSrcweir	var officebase = oo_sdk_home;
241*cdf0e10cSrcweir	var index=officebase.lastIndexOf("\\");
242*cdf0e10cSrcweir
243*cdf0e10cSrcweir	officebase = officebase.substr(0, index);
244*cdf0e10cSrcweir
245*cdf0e10cSrcweir	return officebase;
246*cdf0e10cSrcweir}
247*cdf0e10cSrcweir
248*cdf0e10cSrcweirfunction getUreHome()
249*cdf0e10cSrcweir{
250*cdf0e10cSrcweir	var tmpure = oo_sdk_home;
251*cdf0e10cSrcweir	var ure = "";
252*cdf0e10cSrcweir	var index=0;
253*cdf0e10cSrcweir    if ((index = tmpure.lastIndexOf("Basis")) != -1)
254*cdf0e10cSrcweir	   tmpure = tmpure.substr(0, index);
255*cdf0e10cSrcweir
256*cdf0e10cSrcweir    if (aFileSystemObject.FileExists(tmpure + "\\URE\\bin\\uno.exe")) {
257*cdf0e10cSrcweir	   ure = tmpure + "\URE";
258*cdf0e10cSrcweir	}
259*cdf0e10cSrcweir
260*cdf0e10cSrcweir	return ure;
261*cdf0e10cSrcweir
262*cdf0e10cSrcweir/*
263*cdf0e10cSrcweir    var suggestion = WshSysEnv("OO_SDK_URE_HOME");
264*cdf0e10cSrcweir    var choice;
265*cdf0e10cSrcweir    for (;;) {
266*cdf0e10cSrcweir        stdout.Write(
267*cdf0e10cSrcweir            "\n Enter the URE installation directory [" + suggestion + "]:");
268*cdf0e10cSrcweir        choice = stdin.ReadLine();
269*cdf0e10cSrcweir        if (choice == "") {
270*cdf0e10cSrcweir            choice = suggestion;
271*cdf0e10cSrcweir        }
272*cdf0e10cSrcweir        if (aFileSystemObject.FileExists(choice + "\\bin\\uno.exe")) {
273*cdf0e10cSrcweir            break;
274*cdf0e10cSrcweir        }
275*cdf0e10cSrcweir        stdout.WriteLine("\n Error: A valid URE installation is required.");
276*cdf0e10cSrcweir    }
277*cdf0e10cSrcweir    return choice;
278*cdf0e10cSrcweir*/
279*cdf0e10cSrcweir}
280*cdf0e10cSrcweir
281*cdf0e10cSrcweirfunction getMakeHome()
282*cdf0e10cSrcweir{
283*cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_MAKE_HOME");
284*cdf0e10cSrcweir
285*cdf0e10cSrcweir    while(true)
286*cdf0e10cSrcweir    {
287*cdf0e10cSrcweir        stdout.Write("\n Enter GNU make (3.79.1 or higher) tools directory [" +
288*cdf0e10cSrcweir                     sSuggestedHome + "]:");
289*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
290*cdf0e10cSrcweir        if (sHome.length == 0)
291*cdf0e10cSrcweir        {
292*cdf0e10cSrcweir            //No user input, use default.
293*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
294*cdf0e10cSrcweir            {
295*cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
296*cdf0e10cSrcweir								 sSuggestedHome + "\". GNU make is required, " +
297*cdf0e10cSrcweir								 "please specify a GNU make tools directory.");
298*cdf0e10cSrcweir                sSuggestedHome = "";
299*cdf0e10cSrcweir                continue;
300*cdf0e10cSrcweir            }
301*cdf0e10cSrcweir            sHome = sSuggestedHome;
302*cdf0e10cSrcweir        } else
303*cdf0e10cSrcweir        {
304*cdf0e10cSrcweir            //validate the user input
305*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
306*cdf0e10cSrcweir            {
307*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
308*cdf0e10cSrcweir                                 "\" does not exist. GNU make is required, " +
309*cdf0e10cSrcweir								 "please specify a GNU make tools directory.");
310*cdf0e10cSrcweir                continue;
311*cdf0e10cSrcweir            }
312*cdf0e10cSrcweir        }
313*cdf0e10cSrcweir        //Check for the make executable
314*cdf0e10cSrcweir        var sMakePath = sHome + "\\make.exe";
315*cdf0e10cSrcweir        if (! aFileSystemObject.FileExists(sMakePath))
316*cdf0e10cSrcweir	{
317*cdf0e10cSrcweir		sMakePath = sHome + "\\mingw32-make.exe";
318*cdf0e10cSrcweir	}
319*cdf0e10cSrcweir        if (! aFileSystemObject.FileExists(sMakePath))
320*cdf0e10cSrcweir        {
321*cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find \"" + sMakePath +
322*cdf0e10cSrcweir							 "\". GNU make is required, please specify a GNU " +
323*cdf0e10cSrcweir							 "make tools directory.");
324*cdf0e10cSrcweir            continue;
325*cdf0e10cSrcweir        }
326*cdf0e10cSrcweir        return sHome;
327*cdf0e10cSrcweir    }
328*cdf0e10cSrcweir}
329*cdf0e10cSrcweir
330*cdf0e10cSrcweirfunction getZipHome()
331*cdf0e10cSrcweir{
332*cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_ZIP_HOME");
333*cdf0e10cSrcweir
334*cdf0e10cSrcweir    while(true)
335*cdf0e10cSrcweir    {
336*cdf0e10cSrcweir        stdout.Write("\n Enter a zip (2.3 or higher) tools directory [" +
337*cdf0e10cSrcweir                     sSuggestedHome + "]:");
338*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
339*cdf0e10cSrcweir        if (sHome.length == 0)
340*cdf0e10cSrcweir        {
341*cdf0e10cSrcweir            //No user input, use default.
342*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
343*cdf0e10cSrcweir            {
344*cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
345*cdf0e10cSrcweir								 sSuggestedHome + "\". zip is required, please " +
346*cdf0e10cSrcweir								 "specify a zip tools directory.");
347*cdf0e10cSrcweir                sSuggestedHome = "";
348*cdf0e10cSrcweir                continue;
349*cdf0e10cSrcweir            }
350*cdf0e10cSrcweir            sHome = sSuggestedHome;
351*cdf0e10cSrcweir        }
352*cdf0e10cSrcweir        else
353*cdf0e10cSrcweir        {
354*cdf0e10cSrcweir            //validate the user input
355*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
356*cdf0e10cSrcweir            {
357*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
358*cdf0e10cSrcweir                                 "\" does not exist. zip is required, please " +
359*cdf0e10cSrcweir								 "specify a zip tools directory.");
360*cdf0e10cSrcweir                continue;
361*cdf0e10cSrcweir            }
362*cdf0e10cSrcweir        }
363*cdf0e10cSrcweir        //Check for the make executable
364*cdf0e10cSrcweir        var sZipPath = sHome + "\\zip.exe";
365*cdf0e10cSrcweir        if (! aFileSystemObject.FileExists(sZipPath))
366*cdf0e10cSrcweir        {
367*cdf0e10cSrcweir            stdout.WriteLine("\n Error: Could not find \"" + sZipPath +
368*cdf0e10cSrcweir                             "\". zip is required, please specify a zip tools " +
369*cdf0e10cSrcweir							 "directory.");
370*cdf0e10cSrcweir            continue;
371*cdf0e10cSrcweir        }
372*cdf0e10cSrcweir        return sHome;
373*cdf0e10cSrcweir    }
374*cdf0e10cSrcweir}
375*cdf0e10cSrcweir
376*cdf0e10cSrcweirfunction getCppHome()
377*cdf0e10cSrcweir{
378*cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_CPP_HOME");
379*cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
380*cdf0e10cSrcweir    {
381*cdf0e10cSrcweir        var sVC="";
382*cdf0e10cSrcweir        try {
383*cdf0e10cSrcweir            sVC = WshShell.RegRead(regKeyVCExpress90);
384*cdf0e10cSrcweir        }catch (exc) {}
385*cdf0e10cSrcweir        if (sVC.length == 0)
386*cdf0e10cSrcweir        {
387*cdf0e10cSrcweir	        try {
388*cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVC90);
389*cdf0e10cSrcweir			}catch (exc) {}
390*cdf0e10cSrcweir		}
391*cdf0e10cSrcweir		// check Windows SDK if VC 9
392*cdf0e10cSrcweir        if (sVC.length > 0)
393*cdf0e10cSrcweir        {
394*cdf0e10cSrcweir		    oo_sdk_manifest_used="true";
395*cdf0e10cSrcweir			try {
396*cdf0e10cSrcweir				oo_sdk_windowssdk = WshShell.RegRead(regKeyWindowsSDK);
397*cdf0e10cSrcweir			}catch (exc) {}
398*cdf0e10cSrcweir		}
399*cdf0e10cSrcweir        if (sVC.length == 0)
400*cdf0e10cSrcweir        {
401*cdf0e10cSrcweir	        try {
402*cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVCExpress80);
403*cdf0e10cSrcweir			}catch (exc) {}
404*cdf0e10cSrcweir	        if (sVC.length > 0)
405*cdf0e10cSrcweir			   oo_sdk_manifest_used="true";
406*cdf0e10cSrcweir		}
407*cdf0e10cSrcweir        if (sVC.length == 0)
408*cdf0e10cSrcweir        {
409*cdf0e10cSrcweir	        try {
410*cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVC80);
411*cdf0e10cSrcweir			}catch (exc) {}
412*cdf0e10cSrcweir	        if (sVC.length > 0)
413*cdf0e10cSrcweir			   oo_sdk_manifest_used="true";
414*cdf0e10cSrcweir		}
415*cdf0e10cSrcweir        if (sVC.length == 0)
416*cdf0e10cSrcweir        {
417*cdf0e10cSrcweir	        try {
418*cdf0e10cSrcweir				sVC = WshShell.RegRead(regKeyVC71);
419*cdf0e10cSrcweir			}catch (exc) {}
420*cdf0e10cSrcweir		}
421*cdf0e10cSrcweir        if (sVC.length > 0)
422*cdf0e10cSrcweir        {
423*cdf0e10cSrcweir            sVC += "bin";
424*cdf0e10cSrcweir            if (aFileSystemObject.FileExists(sVC + "\\cl.exe"))
425*cdf0e10cSrcweir                sSuggestedHome = sVC;
426*cdf0e10cSrcweir        }
427*cdf0e10cSrcweir    }
428*cdf0e10cSrcweir
429*cdf0e10cSrcweir    var bSkip = false;
430*cdf0e10cSrcweir    while(true)
431*cdf0e10cSrcweir    {
432*cdf0e10cSrcweir        stdout.Write("\n Enter the directory of the C++ compiler (optional) [" +
433*cdf0e10cSrcweir                     sSuggestedHome + "]:");
434*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
435*cdf0e10cSrcweir        if (sHome.length == 0)
436*cdf0e10cSrcweir        {
437*cdf0e10cSrcweir            //No user input, check OO_SDK_CPP_HOME or suggested value
438*cdf0e10cSrcweir	    if ( sSuggestedHome.length == 0 ) {
439*cdf0e10cSrcweir		bSkip = true;
440*cdf0e10cSrcweir	    } else {
441*cdf0e10cSrcweir	        if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
442*cdf0e10cSrcweir		{
443*cdf0e10cSrcweir		    stdout.WriteLine("\n Error: Could not find directory \"" +
444*cdf0e10cSrcweir				     sSuggestedHome + "\".");
445*cdf0e10cSrcweir		    sSuggestedHome = "";
446*cdf0e10cSrcweir		    bSkip = true;
447*cdf0e10cSrcweir		}
448*cdf0e10cSrcweir	    }
449*cdf0e10cSrcweir
450*cdf0e10cSrcweir            sHome = sSuggestedHome;
451*cdf0e10cSrcweir        } else
452*cdf0e10cSrcweir        {
453*cdf0e10cSrcweir            //validate the user input
454*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
455*cdf0e10cSrcweir            {
456*cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
457*cdf0e10cSrcweir                                 sHome + "\".");
458*cdf0e10cSrcweir                bSkip = true;
459*cdf0e10cSrcweir            }
460*cdf0e10cSrcweir        }
461*cdf0e10cSrcweir
462*cdf0e10cSrcweir		if ( !bSkip) {
463*cdf0e10cSrcweir		    //Check if the C++ compiler exist
464*cdf0e10cSrcweir		    var cl = sHome + "\\cl.exe";
465*cdf0e10cSrcweir		    var mt = sHome + "\\mt.exe";
466*cdf0e10cSrcweir
467*cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(cl))
468*cdf0e10cSrcweir			{
469*cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find the C++ compiler \""
470*cdf0e10cSrcweir								 + cl + "\".");
471*cdf0e10cSrcweir				sHome = "";
472*cdf0e10cSrcweir				bSkip = true;
473*cdf0e10cSrcweir			} else {
474*cdf0e10cSrcweir			    if (aFileSystemObject.FileExists(mt)) {
475*cdf0e10cSrcweir				    oo_sdk_vc8_used="true";
476*cdf0e10cSrcweir				}
477*cdf0e10cSrcweir			}
478*cdf0e10cSrcweir		}
479*cdf0e10cSrcweir
480*cdf0e10cSrcweir		if ( bSkip ) {
481*cdf0e10cSrcweir		   if ( skipChoice("the C++ compiler") ) {
482*cdf0e10cSrcweir			   return "";
483*cdf0e10cSrcweir		   } else {
484*cdf0e10cSrcweir			   bSkip = false;
485*cdf0e10cSrcweir			   continue;
486*cdf0e10cSrcweir		   }
487*cdf0e10cSrcweir		}
488*cdf0e10cSrcweir
489*cdf0e10cSrcweir        return sHome;
490*cdf0e10cSrcweir    }
491*cdf0e10cSrcweir}
492*cdf0e10cSrcweir
493*cdf0e10cSrcweirfunction getCliHome()
494*cdf0e10cSrcweir{
495*cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_CLI_HOME");
496*cdf0e10cSrcweir
497*cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
498*cdf0e10cSrcweir    {
499*cdf0e10cSrcweir        try {
500*cdf0e10cSrcweir            var _ver = WshShell.RegRead(regKeyDotNet2_0);
501*cdf0e10cSrcweir            if (_ver.length > 0)
502*cdf0e10cSrcweir            {
503*cdf0e10cSrcweir                sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot);
504*cdf0e10cSrcweir                sSuggestedHome += sDirDotNet2_0;
505*cdf0e10cSrcweir                if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
506*cdf0e10cSrcweir                    sSuggestedHome = "";
507*cdf0e10cSrcweir            }
508*cdf0e10cSrcweir
509*cdf0e10cSrcweir			if (sSuggestedHome.length == 0)
510*cdf0e10cSrcweir			{
511*cdf0e10cSrcweir				_ver = WshShell.RegRead(regKeyDotNet1_1);
512*cdf0e10cSrcweir				if (_ver.length > 0)
513*cdf0e10cSrcweir				{
514*cdf0e10cSrcweir					sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot);
515*cdf0e10cSrcweir					sSuggestedHome += sDirDotNet1_1;
516*cdf0e10cSrcweir					if ( ! aFileSystemObject.FolderExists(sSuggestedHome))
517*cdf0e10cSrcweir					   sSuggestedHome = "";
518*cdf0e10cSrcweir				}
519*cdf0e10cSrcweir			}
520*cdf0e10cSrcweir		} catch (exc) {}
521*cdf0e10cSrcweir    }
522*cdf0e10cSrcweir
523*cdf0e10cSrcweir    var bSkip = false;
524*cdf0e10cSrcweir    while(true)
525*cdf0e10cSrcweir    {
526*cdf0e10cSrcweir        stdout.Write("\n Enter the directory of the C# and VB.NET compilers (optional) [" + sSuggestedHome + "]:");
527*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
528*cdf0e10cSrcweir        if (sHome.length == 0)
529*cdf0e10cSrcweir        {
530*cdf0e10cSrcweir            //No user input, check OO_SDK_CLI_HOME or suggested value
531*cdf0e10cSrcweir			if ( sSuggestedHome.length == 0 ) {
532*cdf0e10cSrcweir			    bSkip = true;
533*cdf0e10cSrcweir			} else {
534*cdf0e10cSrcweir			    if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
535*cdf0e10cSrcweir				{
536*cdf0e10cSrcweir					stdout.WriteLine("\n Error: Could not find directory \"" +
537*cdf0e10cSrcweir									 sSuggestedHome + "\".");
538*cdf0e10cSrcweir					sSuggestedHome = "";
539*cdf0e10cSrcweir					bSkip = true;
540*cdf0e10cSrcweir				}
541*cdf0e10cSrcweir			}
542*cdf0e10cSrcweir
543*cdf0e10cSrcweir		    sHome = sSuggestedHome;
544*cdf0e10cSrcweir        }
545*cdf0e10cSrcweir        else
546*cdf0e10cSrcweir        {
547*cdf0e10cSrcweir            //validate the user input
548*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
549*cdf0e10cSrcweir            {
550*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
551*cdf0e10cSrcweir                                 "\" does not exist.");
552*cdf0e10cSrcweir                bSkip = true;
553*cdf0e10cSrcweir            }
554*cdf0e10cSrcweir        }
555*cdf0e10cSrcweir
556*cdf0e10cSrcweir		if ( !bSkip ) {
557*cdf0e10cSrcweir		    //Check if the C# and VB.NET compiler exist
558*cdf0e10cSrcweir		    var csc = sHome + "\\csc.exe";
559*cdf0e10cSrcweir		    var vbc = sHome + "\\vbc.exe";
560*cdf0e10cSrcweir
561*cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(csc))
562*cdf0e10cSrcweir			{
563*cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find the C# compiler \"" +
564*cdf0e10cSrcweir								 csc + "\".");
565*cdf0e10cSrcweir				bSkip = true;
566*cdf0e10cSrcweir			}
567*cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(vbc))
568*cdf0e10cSrcweir			{
569*cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find the VB.NET compiler \"" +
570*cdf0e10cSrcweir								 vbc + "\".");
571*cdf0e10cSrcweir				bSkip = true;
572*cdf0e10cSrcweir			}
573*cdf0e10cSrcweir		}
574*cdf0e10cSrcweir
575*cdf0e10cSrcweir		if ( bSkip ) {
576*cdf0e10cSrcweir		   if ( skipChoice("the C# and VB.NET compilers") ) {
577*cdf0e10cSrcweir			   return "";
578*cdf0e10cSrcweir		   } else {
579*cdf0e10cSrcweir			   bSkip = false;
580*cdf0e10cSrcweir			   continue;
581*cdf0e10cSrcweir		   }
582*cdf0e10cSrcweir		}
583*cdf0e10cSrcweir
584*cdf0e10cSrcweir        return sHome;
585*cdf0e10cSrcweir    }
586*cdf0e10cSrcweir}
587*cdf0e10cSrcweir
588*cdf0e10cSrcweirfunction getJavaHome()
589*cdf0e10cSrcweir{
590*cdf0e10cSrcweir    var sSuggestedHome = WshSysEnv("OO_SDK_JAVA_HOME");
591*cdf0e10cSrcweir    if (sSuggestedHome.length == 0)
592*cdf0e10cSrcweir    {
593*cdf0e10cSrcweir        try {
594*cdf0e10cSrcweir            var currentVersion = WshShell.RegRead(regKeyJDK + "CurrentVersion");
595*cdf0e10cSrcweir            if (currentVersion.length > 0)
596*cdf0e10cSrcweir            {
597*cdf0e10cSrcweir                sSuggestedHome = WshShell.RegRead(regKeyJDK + currentVersion +
598*cdf0e10cSrcweir												  "\\JavaHome");
599*cdf0e10cSrcweir                if ( ! aFileSystemObject.FolderExists(sSuggestedHome) )
600*cdf0e10cSrcweir                    sSuggestedHome = "";
601*cdf0e10cSrcweir            }
602*cdf0e10cSrcweir        } catch (exc) {}
603*cdf0e10cSrcweir    }
604*cdf0e10cSrcweir
605*cdf0e10cSrcweir    var bSkip = false;
606*cdf0e10cSrcweir    while(true)
607*cdf0e10cSrcweir    {
608*cdf0e10cSrcweir        stdout.Write("\n Enter JAVA SDK (1.4.1_01 or higher) installation directory (optional) [" + sSuggestedHome + "]:");
609*cdf0e10cSrcweir        var sHome = stdin.ReadLine();
610*cdf0e10cSrcweir        if (sHome.length == 0)
611*cdf0e10cSrcweir        {
612*cdf0e10cSrcweir            //No user input, check OO_SDK_JAVA_HOME or suggested value
613*cdf0e10cSrcweir			if ( sSuggestedHome.length == 0 ) {
614*cdf0e10cSrcweir			    bSkip = true;
615*cdf0e10cSrcweir			} else {
616*cdf0e10cSrcweir			    if ( !aFileSystemObject.FolderExists(sSuggestedHome) )
617*cdf0e10cSrcweir				{
618*cdf0e10cSrcweir					stdout.WriteLine("\n Error: Could not find directory \"" +
619*cdf0e10cSrcweir									 sSuggestedHome + "\".");
620*cdf0e10cSrcweir					sSuggestedHome = "";
621*cdf0e10cSrcweir					bSkip=true;
622*cdf0e10cSrcweir				}
623*cdf0e10cSrcweir			}
624*cdf0e10cSrcweir
625*cdf0e10cSrcweir			sHome = sSuggestedHome;
626*cdf0e10cSrcweir        } else
627*cdf0e10cSrcweir        {
628*cdf0e10cSrcweir            //validate the user input
629*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sHome))
630*cdf0e10cSrcweir            {
631*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The directory \"" + sHome +
632*cdf0e10cSrcweir                                 "\" does not exist.");
633*cdf0e10cSrcweir				bSkip = true;
634*cdf0e10cSrcweir            }
635*cdf0e10cSrcweir        }
636*cdf0e10cSrcweir
637*cdf0e10cSrcweir		if ( !bSkip) {
638*cdf0e10cSrcweir		    //Check if this is an sdk folder by looking for the javac compiler
639*cdf0e10cSrcweir			var javacompiler = sHome + "\\bin\\javac.exe";
640*cdf0e10cSrcweir			if (! aFileSystemObject.FileExists(javacompiler))
641*cdf0e10cSrcweir			{
642*cdf0e10cSrcweir				stdout.WriteLine("\n Error: Could not find \"" +
643*cdf0e10cSrcweir								 javacompiler + "\".");
644*cdf0e10cSrcweir				bSkip = true;
645*cdf0e10cSrcweir			}
646*cdf0e10cSrcweir        }
647*cdf0e10cSrcweir
648*cdf0e10cSrcweir		if ( bSkip ) {
649*cdf0e10cSrcweir		   if ( skipChoice("the Java SDK") ) {
650*cdf0e10cSrcweir			   return "";
651*cdf0e10cSrcweir		   } else {
652*cdf0e10cSrcweir			   bSkip = false;
653*cdf0e10cSrcweir			   continue;
654*cdf0e10cSrcweir		   }
655*cdf0e10cSrcweir		}
656*cdf0e10cSrcweir
657*cdf0e10cSrcweir        return sHome;
658*cdf0e10cSrcweir    }
659*cdf0e10cSrcweir}
660*cdf0e10cSrcweir
661*cdf0e10cSrcweirfunction getOutputDir()
662*cdf0e10cSrcweir{
663*cdf0e10cSrcweir	var defaultdir = "c:\\" + oo_sdk_name;
664*cdf0e10cSrcweir    var sSuggestedDir = WshSysEnv("OO_SDK_OUT");
665*cdf0e10cSrcweir	if (sSuggestedDir.length == 0)
666*cdf0e10cSrcweir	   sSuggestedDir = defaultdir;
667*cdf0e10cSrcweir
668*cdf0e10cSrcweir    var bSkip = false;
669*cdf0e10cSrcweir    while(true)
670*cdf0e10cSrcweir    {
671*cdf0e10cSrcweir        stdout.Write(
672*cdf0e10cSrcweir			"\n Default output directory is the \"c:\\" + oo_sdk_name + "\".\n" +
673*cdf0e10cSrcweir            " Enter an existent directory if you prefer a different one. But note" +
674*cdf0e10cSrcweir			" that only\n a path without spaces is allowed because of a" +
675*cdf0e10cSrcweir			" limitation of gnu make. (optional) [" + sSuggestedDir + "]:");
676*cdf0e10cSrcweir        var sDir = stdin.ReadLine();
677*cdf0e10cSrcweir        if (sDir.length == 0)
678*cdf0e10cSrcweir        {
679*cdf0e10cSrcweir            //No user input, check OO_SDK_OUT or suggested value
680*cdf0e10cSrcweir			if ( sSuggestedDir.length == 0 ) {
681*cdf0e10cSrcweir			    bSkip = true;
682*cdf0e10cSrcweir			} else {
683*cdf0e10cSrcweir				if (sSuggestedDir == oo_user_sdk_dir || sSuggestedDir == defaultdir) {
684*cdf0e10cSrcweir				    var fso = new ActiveXObject("Scripting.FileSystemObject");
685*cdf0e10cSrcweir					if ( !fso.FolderExists(sSuggestedDir) )
686*cdf0e10cSrcweir						fso.CreateFolder(sSuggestedDir);
687*cdf0e10cSrcweir				}
688*cdf0e10cSrcweir			    if ( !aFileSystemObject.FolderExists(sSuggestedDir) )
689*cdf0e10cSrcweir				{
690*cdf0e10cSrcweir					stdout.WriteLine("\n Error: Could not find directory \"" +
691*cdf0e10cSrcweir									 sSuggestedDir + "\".");
692*cdf0e10cSrcweir					sSuggestedDir = "";
693*cdf0e10cSrcweir					bSkip = true;
694*cdf0e10cSrcweir				}
695*cdf0e10cSrcweir			}
696*cdf0e10cSrcweir
697*cdf0e10cSrcweir            sDir = sSuggestedDir;
698*cdf0e10cSrcweir        }
699*cdf0e10cSrcweir        else
700*cdf0e10cSrcweir        {
701*cdf0e10cSrcweir			if (sDir.indexOf(' ') != -1) {
702*cdf0e10cSrcweir				stdout.WriteLine("\n Error: your specified output directory " +
703*cdf0e10cSrcweir								 "\"" + sDir + "\" " +
704*cdf0e10cSrcweir								 "contains one or more spaces.\n        That " +
705*cdf0e10cSrcweir								 "causes problems with gnu make. Please specifiy" +
706*cdf0e10cSrcweir								 " a directory without spaces.");
707*cdf0e10cSrcweir				bSkip = true;
708*cdf0e10cSrcweir			}
709*cdf0e10cSrcweir            //validate the user input
710*cdf0e10cSrcweir            if ( ! aFileSystemObject.FolderExists(sDir))
711*cdf0e10cSrcweir            {
712*cdf0e10cSrcweir                stdout.WriteLine("\n Error: Could not find directory \"" +
713*cdf0e10cSrcweir                                 sDir + "\".");
714*cdf0e10cSrcweir                bSkip = true;
715*cdf0e10cSrcweir            }
716*cdf0e10cSrcweir        }
717*cdf0e10cSrcweir
718*cdf0e10cSrcweir		if ( bSkip ) {
719*cdf0e10cSrcweir		   if ( skipChoice("a special output directory") ) {
720*cdf0e10cSrcweir			   return "";
721*cdf0e10cSrcweir		   } else {
722*cdf0e10cSrcweir			   bSkip = false;
723*cdf0e10cSrcweir			   continue;
724*cdf0e10cSrcweir		   }
725*cdf0e10cSrcweir		}
726*cdf0e10cSrcweir
727*cdf0e10cSrcweir        return sDir;
728*cdf0e10cSrcweir    }
729*cdf0e10cSrcweir}
730*cdf0e10cSrcweir
731*cdf0e10cSrcweirfunction getAutoDeployment()
732*cdf0e10cSrcweir{
733*cdf0e10cSrcweir    var sSuggestedAuto = WshSysEnv("SDK_AUTO_DEPLOYMENT");
734*cdf0e10cSrcweir    if (sSuggestedAuto.length == 0)
735*cdf0e10cSrcweir        sSuggestedAuto = "YES";
736*cdf0e10cSrcweir
737*cdf0e10cSrcweir    while(true)
738*cdf0e10cSrcweir    {
739*cdf0e10cSrcweir        stdout.Write("\n Automatic deployment of UNO components (YES/NO) ["+
740*cdf0e10cSrcweir                     sSuggestedAuto + "]:");
741*cdf0e10cSrcweir        var sAuto = stdin.ReadLine();
742*cdf0e10cSrcweir        if (sAuto.length == 0)
743*cdf0e10cSrcweir            sAuto = sSuggestedAuto;
744*cdf0e10cSrcweir        else
745*cdf0e10cSrcweir        {
746*cdf0e10cSrcweir            sAutoU = sAuto.toUpperCase();
747*cdf0e10cSrcweir            if (sAutoU != "YES" && sAutoU != "NO")
748*cdf0e10cSrcweir            {
749*cdf0e10cSrcweir                stdout.WriteLine("\n Error: The value \"" + sAuto + "\" is " +
750*cdf0e10cSrcweir								 "invalid. Please answer YES or NO.")
751*cdf0e10cSrcweir                    continue;
752*cdf0e10cSrcweir            }
753*cdf0e10cSrcweir            sAuto = sAutoU;
754*cdf0e10cSrcweir        }
755*cdf0e10cSrcweir        return sAuto;
756*cdf0e10cSrcweir    }
757*cdf0e10cSrcweir}
758*cdf0e10cSrcweir
759*cdf0e10cSrcweir//The function uses sp2bv.exe to obtain a file URL from a
760*cdf0e10cSrcweir//system path. The URL is already escaped for use as bootstrap variable.
761*cdf0e10cSrcweir//($ -> \$). Then the resulting string is escaped for use in a bat file.
762*cdf0e10cSrcweir//That is % signs are made to double % (% -> %%);
763*cdf0e10cSrcweirfunction makeBootstrapFileUrl(systemPath)
764*cdf0e10cSrcweir{
765*cdf0e10cSrcweir    var oExec = WshShell.Exec("sp2bv.exe \"" + systemPath + "\"");
766*cdf0e10cSrcweir    var output="";
767*cdf0e10cSrcweir    while (true)
768*cdf0e10cSrcweir    {
769*cdf0e10cSrcweir        if (!oExec.StdOut.AtEndOfStream)
770*cdf0e10cSrcweir        {
771*cdf0e10cSrcweir            var next = oExec.StdOut.Read(1);
772*cdf0e10cSrcweir            if (next == '%')
773*cdf0e10cSrcweir                output += "%%";
774*cdf0e10cSrcweir            else
775*cdf0e10cSrcweir                output += next;
776*cdf0e10cSrcweir        }
777*cdf0e10cSrcweir        else
778*cdf0e10cSrcweir            break;
779*cdf0e10cSrcweir    }
780*cdf0e10cSrcweir    return output;
781*cdf0e10cSrcweir}
782*cdf0e10cSrcweir
783*cdf0e10cSrcweirfunction writeBatFile(fdir, file)
784*cdf0e10cSrcweir{
785*cdf0e10cSrcweir    var fso = new ActiveXObject("Scripting.FileSystemObject");
786*cdf0e10cSrcweir    if ( !fso.FolderExists(fdir) )
787*cdf0e10cSrcweir       fso.CreateFolder(fdir);
788*cdf0e10cSrcweir    var newFile = fso.CreateTextFile(file, true);
789*cdf0e10cSrcweir
790*cdf0e10cSrcweir    newFile.Write(
791*cdf0e10cSrcweir        "@echo off\n" +
792*cdf0e10cSrcweir        "REM This script sets all enviroment variables, which\n" +
793*cdf0e10cSrcweir        "REM are necessary for building the examples of the Office Development Kit.\n" +
794*cdf0e10cSrcweir        "REM The Script was developed for the operating systems Windows.\n" +
795*cdf0e10cSrcweir        "REM The SDK name\n" +
796*cdf0e10cSrcweir        "REM Example: set OO_SDK_NAME=openoffice3.0_sdk\n" +
797*cdf0e10cSrcweir        "set OO_SDK_NAME=" + oo_sdk_name  +
798*cdf0e10cSrcweir        "\n\n" +
799*cdf0e10cSrcweir        "REM Installation directory of the Software Development Kit.\n" +
800*cdf0e10cSrcweir        "REM Example: set OO_SDK_HOME=C:\\Program Files\\OpenOffice.org\\Basic 3.0\\sdk\n" +
801*cdf0e10cSrcweir        "set OO_SDK_HOME=" + oo_sdk_home  +
802*cdf0e10cSrcweir        "\n\n" +
803*cdf0e10cSrcweir        "REM Office installation directory.\n" +
804*cdf0e10cSrcweir        "REM Example: set OFFICE_HOME=C:\\Program Files\\OpenOffice.org 3\n" +
805*cdf0e10cSrcweir        "set OFFICE_HOME=" + office_home +
806*cdf0e10cSrcweir        "\n\n" +
807*cdf0e10cSrcweir        "REM Example: set OFFICE_HOME=C:\\Program Files\\OpenOffice.org\\Basis 3.0\n" +
808*cdf0e10cSrcweir        "set OFFICE_BASE_HOME=" + office_base_home +
809*cdf0e10cSrcweir        "\n\n" +
810*cdf0e10cSrcweir        "REM URE installation directory.\n" +
811*cdf0e10cSrcweir        "REM Example: set OO_SDK_URE_HOME=C:\\Program Files\\OpenOffice.org\\URE\n" +
812*cdf0e10cSrcweir        "set OO_SDK_URE_HOME=" + oo_sdk_ure_home +
813*cdf0e10cSrcweir        "\n\n" +
814*cdf0e10cSrcweir        "REM Directory of the make command.\n" +
815*cdf0e10cSrcweir        "REM Example: set OO_SDK_MAKE_HOME=D:\\NextGenerationMake\\make\n" +
816*cdf0e10cSrcweir        "set OO_SDK_MAKE_HOME=" + oo_sdk_make_home +
817*cdf0e10cSrcweir        "\n\n" +
818*cdf0e10cSrcweir		"REM Directory of the zip tool.\n" +
819*cdf0e10cSrcweir		"REM Example: set OO_SDK_ZIP_HOME=D:\\infozip\\bin\n" +
820*cdf0e10cSrcweir		"set OO_SDK_ZIP_HOME=" + oo_sdk_zip_home +
821*cdf0e10cSrcweir        "\n\n" +
822*cdf0e10cSrcweir        "REM Directory of the C++ compiler.\n" +
823*cdf0e10cSrcweir        "REM Example:set OO_SDK_CPP_HOME=C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\bin\n" +
824*cdf0e10cSrcweir        "set OO_SDK_CPP_HOME=" + oo_sdk_cpp_home +
825*cdf0e10cSrcweir		"\nset CPP_MANIFEST=" + oo_sdk_manifest_used +
826*cdf0e10cSrcweir		"\nset CPP_WINDOWS_SDK=" + oo_sdk_windowssdk +
827*cdf0e10cSrcweir        "\n\n" +
828*cdf0e10cSrcweir        "REM Directory of the C# and VB.NET compilers.\n" +
829*cdf0e10cSrcweir        "REM Example:set OO_SDK_CLI_HOME=C:\\WINXP\\Microsoft.NET\\Framework\\v1.0.3705\n" +
830*cdf0e10cSrcweir        "set OO_SDK_CLI_HOME=" + oo_sdk_cli_home +
831*cdf0e10cSrcweir        "\n\n" +
832*cdf0e10cSrcweir        "REM Java SDK installation directory.\n" +
833*cdf0e10cSrcweir        "REM Example: set OO_SDK_JAVA_HOME=C:\\Program Files\\Java\\jdk1.6.0_05\n" +
834*cdf0e10cSrcweir        "set OO_SDK_JAVA_HOME=" + oo_sdk_java_home +
835*cdf0e10cSrcweir        "\n\n" +
836*cdf0e10cSrcweir        "REM Special output directory\n" +
837*cdf0e10cSrcweir        "REM Example: set OO_SDK_OUT=C:\\" + oo_sdk_name + "\n" +
838*cdf0e10cSrcweir        "set OO_SDK_OUT=" + oo_sdk_out +
839*cdf0e10cSrcweir        "\n\n" +
840*cdf0e10cSrcweir        "REM Automatic deployment\n" +
841*cdf0e10cSrcweir        "REM Example: set SDK_AUTO_DEPLOYMENT=YES\n" +
842*cdf0e10cSrcweir        "set SDK_AUTO_DEPLOYMENT=" + sdk_auto_deployment +
843*cdf0e10cSrcweir        "\n\n" +
844*cdf0e10cSrcweir		"set STLDEBUG=" + stldebug + "\n" +
845*cdf0e10cSrcweir		"REM check stlport lib in 4NT shell\n" +
846*cdf0e10cSrcweir		"REM if exist \"%OO_SDK_HOME%\\windows\\lib\\stlport_vc71_stldebug.lib\". (\n" +
847*cdf0e10cSrcweir		"REM   set STLDEBUG=_stldebug\n" +
848*cdf0e10cSrcweir		"REM )\n\n" +
849*cdf0e10cSrcweir        "REM Check installation path for the Office Development Kit.\n" +
850*cdf0e10cSrcweir        "if not defined OO_SDK_HOME (\n" +
851*cdf0e10cSrcweir        "   echo Error: the variable OO_SDK_HOME is missing!\n" +
852*cdf0e10cSrcweir        "   goto :error\n" +
853*cdf0e10cSrcweir        " )\n" +
854*cdf0e10cSrcweir        "\n" +
855*cdf0e10cSrcweir        "REM Check installation path for the office.\n" +
856*cdf0e10cSrcweir        "REM if not defined OFFICE_HOME (\n" +
857*cdf0e10cSrcweir        "REM if not defined OO_SDK_URE_HOME (\n" +
858*cdf0e10cSrcweir        "REM    echo Error: either of the variables OFFICE_HOME and\n" +
859*cdf0e10cSrcweir        "REM    echo OO_SDK_URE_HOME is missing!\n" +
860*cdf0e10cSrcweir        "REM    goto :error\n" +
861*cdf0e10cSrcweir        "REM  )\n" +
862*cdf0e10cSrcweir        "REM  )\n" +
863*cdf0e10cSrcweir        "\n" +
864*cdf0e10cSrcweir        "REM Check installation path for GNU make.\n" +
865*cdf0e10cSrcweir        "if not defined OO_SDK_MAKE_HOME (\n" +
866*cdf0e10cSrcweir        "   echo Error: the variable OO_SDK_MAKE_HOME is missing!\n" +
867*cdf0e10cSrcweir        "   goto :error\n" +
868*cdf0e10cSrcweir        " )\n" +
869*cdf0e10cSrcweir        "\n" +
870*cdf0e10cSrcweir        "REM Check installation path for the zip tool.\n" +
871*cdf0e10cSrcweir        "if not defined OO_SDK_ZIP_HOME (\n" +
872*cdf0e10cSrcweir        "   echo Error: the variable OO_SDK_ZIP_HOME is missing!\n" +
873*cdf0e10cSrcweir        "   goto :error\n" +
874*cdf0e10cSrcweir        " )\n" +
875*cdf0e10cSrcweir        "\n" +
876*cdf0e10cSrcweir        "REM Set library path. \n" +
877*cdf0e10cSrcweir        "set LIB=%OO_SDK_HOME%\\lib;%LIB%\n" +
878*cdf0e10cSrcweir        "if defined CPP_WINDOWS_SDK (\n" +
879*cdf0e10cSrcweir        "   set LIB=%LIB%;%CPP_WINDOWS_SDK%\\lib\n" +
880*cdf0e10cSrcweir        " )\n" +
881*cdf0e10cSrcweir        "\n" +
882*cdf0e10cSrcweir        "REM Set office program path.\n" +
883*cdf0e10cSrcweir        "if defined OFFICE_HOME (\n" +
884*cdf0e10cSrcweir        "   set OFFICE_PROGRAM_PATH=%OFFICE_HOME%\\program\n" +
885*cdf0e10cSrcweir        " )\n" +
886*cdf0e10cSrcweir        "\n" +
887*cdf0e10cSrcweir        "REM Set office program path.\n" +
888*cdf0e10cSrcweir        "if defined OFFICE_BASE_HOME (\n" +
889*cdf0e10cSrcweir        "   set OFFICE_BASE_PROGRAM_PATH=%OFFICE_BASE_HOME%\\program\n" +
890*cdf0e10cSrcweir        " )\n" +
891*cdf0e10cSrcweir        "\n" +
892*cdf0e10cSrcweir		"REM Set UNO path, necessary to ensure that the cpp examples using the\n" +
893*cdf0e10cSrcweir		"REM new UNO bootstrap mechanism use the configured office installation\n" +
894*cdf0e10cSrcweir		"REM (only set when using an Office).\n" +
895*cdf0e10cSrcweir		"if defined OFFICE_HOME (\n" +
896*cdf0e10cSrcweir		"   set UNO_PATH=%OFFICE_PROGRAM_PATH%\n" +
897*cdf0e10cSrcweir		" )\n" +
898*cdf0e10cSrcweir        "\n" +
899*cdf0e10cSrcweir        "REM if defined OO_SDK_URE_HOME (\n" +
900*cdf0e10cSrcweir        "set OO_SDK_URE_BIN_DIR=%OO_SDK_URE_HOME%\\bin\n" +
901*cdf0e10cSrcweir        "set OO_SDK_URE_LIB_DIR=%OO_SDK_URE_HOME%\\bin\n" +
902*cdf0e10cSrcweir        "set OO_SDK_URE_JAVA_DIR=%OO_SDK_URE_HOME%\\java\n" +
903*cdf0e10cSrcweir        "REM ) else (\n" +
904*cdf0e10cSrcweir        "set OO_SDK_OFFICE_BIN_DIR=%OFFICE_PROGRAM_PATH%\n" +
905*cdf0e10cSrcweir        "set OO_SDK_OFFICE_LIB_DIR=%OFFICE_BASE_PROGRAM_PATH%\n" +
906*cdf0e10cSrcweir        "set OO_SDK_OFFICE_JAVA_DIR=%OFFICE_BASE_PROGRAM_PATH%\\classes\n" +
907*cdf0e10cSrcweir        "REM )\n" +
908*cdf0e10cSrcweir        "\n" +
909*cdf0e10cSrcweir        "REM Set classpath\n" +
910*cdf0e10cSrcweir        "set CLASSPATH=%OO_SDK_URE_JAVA_DIR%\\juh.jar;%OO_SDK_URE_JAVA_DIR%\\jurt.jar;%OO_SDK_URE_JAVA_DIR%\\ridl.jar;%OO_SDK_URE_JAVA_DIR%\\unoloader.jar;%OO_SDK_OFFICE_JAVA_DIR%\\unoil.jar\n" +
911*cdf0e10cSrcweir        "REM if defined OFFICE_HOME (\n" +
912*cdf0e10cSrcweir        "REM     set CLASSPATH=%CLASSPATH%;%OO_SDK_OFFICE_JAVA_DIR%\\unoil.jar\n" +
913*cdf0e10cSrcweir        "REM  )\n" +
914*cdf0e10cSrcweir        "\n" +
915*cdf0e10cSrcweir        "REM Add directory of the SDK tools to the path.\n" +
916*cdf0e10cSrcweir        "set PATH=%OO_SDK_HOME%\\bin;%OO_SDK_URE_BIN_DIR%;%OO_SDK_OFFICE_BIN_DIR%;%OO_SDK_HOME%\\WINexample.out\\bin;%PATH%\n" +
917*cdf0e10cSrcweir        "\n" +
918*cdf0e10cSrcweir        "REM Set PATH appropriate to the output directory\n" +
919*cdf0e10cSrcweir        "if defined OO_SDK_OUT (\n" +
920*cdf0e10cSrcweir        "   set PATH=%OO_SDK_OUT%\\WINexample.out\\bin;%PATH%\n" +
921*cdf0e10cSrcweir        " ) else (\n" +
922*cdf0e10cSrcweir        "   set PATH=%OO_SDK_HOME%\\WINexample.out\\bin;%PATH%\n" +
923*cdf0e10cSrcweir        " )\n" +
924*cdf0e10cSrcweir        "\n" +
925*cdf0e10cSrcweir        "REM Add directory of the command make to the path, if necessary.\n" +
926*cdf0e10cSrcweir        "if defined OO_SDK_MAKE_HOME set PATH=%OO_SDK_MAKE_HOME%;%PATH%\n" +
927*cdf0e10cSrcweir        "\n" +
928*cdf0e10cSrcweir	"REM Add directory of the zip tool to the path, if necessary.\n" +
929*cdf0e10cSrcweir	"if defined OO_SDK_ZIP_HOME set PATH=%OO_SDK_ZIP_HOME%;%PATH%\n" +
930*cdf0e10cSrcweir        "\n" +
931*cdf0e10cSrcweir        "REM Add directory of the C++ compiler to the path, if necessary.\n" +
932*cdf0e10cSrcweir        "if defined OO_SDK_CPP_HOME set PATH=%OO_SDK_CPP_HOME%;%PATH%\n" +
933*cdf0e10cSrcweir        "\n" +
934*cdf0e10cSrcweir        "REM Add directory of the Win SDK to the path, if necessary.\n" +
935*cdf0e10cSrcweir        "if defined CPP_WINDOWS_SDK (\n" +
936*cdf0e10cSrcweir		"   set PATH=%CPP_WINDOWS_SDK\\bin%;%PATH%\n" +
937*cdf0e10cSrcweir		"   set INCLUDE=%CPP_WINDOWS_SDK\\Include%;%INCLUDE%\n" +
938*cdf0e10cSrcweir        ")\n" +
939*cdf0e10cSrcweir        "REM Add directory of the C# and VB.NET compilers to the path, if necessary.\n" +
940*cdf0e10cSrcweir        "if defined OO_SDK_CLI_HOME set PATH=%OO_SDK_CLI_HOME%;%PATH%\n" +
941*cdf0e10cSrcweir        "\n" +
942*cdf0e10cSrcweir        "REM Add directory of the Java tools to the path, if necessary.\n" +
943*cdf0e10cSrcweir        "if defined OO_SDK_JAVA_HOME set PATH=%OO_SDK_JAVA_HOME%\\bin;%OO_SDK_JAVA_HOME%\\jre\\bin;%PATH%\n" +
944*cdf0e10cSrcweir        "\n" +
945*cdf0e10cSrcweir        "REM Set environment for C++ compiler tools, if necessary.\n" +
946*cdf0e10cSrcweir        "if defined OO_SDK_CPP_HOME call \"%OO_SDK_CPP_HOME%\\VCVARS32.bat\"\n" +
947*cdf0e10cSrcweir        "\n" +
948*cdf0e10cSrcweir        "REM Set tilte to identify the prepared shell.\n" +
949*cdf0e10cSrcweir        "title Shell prepared for SDK\n" +
950*cdf0e10cSrcweir        "\nREM Prepare shell with all necessary environment variables.\n" +
951*cdf0e10cSrcweir        "echo.\n" +
952*cdf0e10cSrcweir        "echo  ******************************************************************\n" +
953*cdf0e10cSrcweir        "echo  *\n" +
954*cdf0e10cSrcweir        "echo  * SDK environment is prepared for Windows\n" +
955*cdf0e10cSrcweir        "echo  *\n" +
956*cdf0e10cSrcweir        "echo  * SDK = %OO_SDK_HOME%\n" +
957*cdf0e10cSrcweir        "echo  * Office = %OFFICE_HOME%\n" +
958*cdf0e10cSrcweir        "echo  * Office Base = %OFFICE_BASE_HOME%\n" +
959*cdf0e10cSrcweir        "echo  * URE = %OO_SDK_URE_HOME%\n" +
960*cdf0e10cSrcweir        "echo  * Make = %OO_SDK_MAKE_HOME%\n" +
961*cdf0e10cSrcweir        "echo  * Zip = %OO_SDK_ZIP_HOME%\n" +
962*cdf0e10cSrcweir        "echo  * C++ Compiler = %OO_SDK_CPP_HOME%\n" +
963*cdf0e10cSrcweir        "echo  * C# and VB.NET compilers = %OO_SDK_CLI_HOME%\n" +
964*cdf0e10cSrcweir        "echo  * Java = %OO_SDK_JAVA_HOME%\n" +
965*cdf0e10cSrcweir        "echo  * Special Output directory = %OO_SDK_OUT%\n" +
966*cdf0e10cSrcweir        "echo  * Auto deployment = %SDK_AUTO_DEPLOYMENT%\n" +
967*cdf0e10cSrcweir        "echo  *\n" +
968*cdf0e10cSrcweir        "echo  ******************************************************************\n" +
969*cdf0e10cSrcweir        "echo.\n" +
970*cdf0e10cSrcweir        "goto end\n" +
971*cdf0e10cSrcweir        "\n" +
972*cdf0e10cSrcweir        " :error\n" +
973*cdf0e10cSrcweir        "Error: Please insert the necessary environment variables into the batch file.\n" +
974*cdf0e10cSrcweir        "\n" +
975*cdf0e10cSrcweir        " :end\n"
976*cdf0e10cSrcweir        );
977*cdf0e10cSrcweir        newFile.Close();
978*cdf0e10cSrcweir}
979*cdf0e10cSrcweir
980*cdf0e10cSrcweir
981*cdf0e10cSrcweir
982