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