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