diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /odk/config/cfgWin.js | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'odk/config/cfgWin.js')
-rw-r--r-- | odk/config/cfgWin.js | 1022 |
1 files changed, 1022 insertions, 0 deletions
diff --git a/odk/config/cfgWin.js b/odk/config/cfgWin.js new file mode 100644 index 000000000..128f3e2ea --- /dev/null +++ b/odk/config/cfgWin.js @@ -0,0 +1,1022 @@ +// +// This file is part of the LibreOffice project. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. +// +// This file incorporates work covered by the following license notice: +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed +// with this work for additional information regarding copyright +// ownership. The ASF licenses this file to you under the Apache +// License, Version 2.0 (the "License"); you may not use this file +// except in compliance with the License. You may obtain a copy of +// the License at http://www.apache.org/licenses/LICENSE-2.0 . +// +// This script asks for variables, which are necessary for building the +// examples of the Office Development Kit. The script duplicates the template +// script and inserts the variables into the copied script. +// The Script was developed for the operating systems Microsoft Windows. +var regKeyOfficeCurrentUser = "HKEY_CURRENT_USER\\Software\\LibreOffice\\UNO\\InstallPath\\"; +var regKeyOfficeLocaleMachine = "HKEY_LOCAL_MACHINE\\Software\\LibreOffice\\UNO\\InstallPath\\"; +var regKeyDotNetInstallRoot = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\.NETFramework\\InstallRoot"; +var regKeyDotNet1_1 = "HKLM\\Software\\Microsoft\\.NETFramework\\policy\\v1.1\\4322"; +var sDirDotNet1_1 = "v1.1.4322"; +var regKeyDotNet2_0 = "HKLM\\Software\\Microsoft\\.NETFramework\\Policy\\v2.0\\50727"; +var sDirDotNet2_0 = "v2.0.50727"; + +var regKeyJDK = "HKLM\\Software\\JavaSoft\\Java Development Kit\\"; +//var regKeyVC70 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir"; +//var regKeyVC71 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir"; +var regKeyVC90 = "HKLM\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VC\\ProductDir"; + +//var regKeyVCExpress80 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\8.0\\Setup\\VC\\ProductDir"; +var regKeyVCExpress90 = "HKLM\\SOFTWARE\\Microsoft\\VCExpress\\9.0\\Setup\\VC\\ProductDir"; + +var regKeyWindowsSDK = "HKLM\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\CurrentInstallFolder"; + +var WshShell = WScript.CreateObject("WScript.Shell"); +var WshSysEnv = WshShell.Environment("process"); +var aFileSystemObject = new ActiveXObject("Scripting.FileSystemObject"); +var stdin = WScript.StdIn; +var stdout = WScript.StdOut; + +stdout.WriteLine("\n" + +" *** Configure your SDK environment ***\n\n" + +" NOTE: This script is working only for Windows 2000, Windows XP or newer versions!\n"); + +var oo_sdk_name=WshSysEnv("OO_SDK_NAME"); +var oo_sdk_home=getSdkHome(); +var oo_user_sdk_dir=WshSysEnv("APPDATA") + "\\" + oo_sdk_name; +var oo_user_sdk_env_script=oo_user_sdk_dir + "\\setsdkenv_windows.bat"; + +var office_home=getOfficeHome(); + +var oo_sdk_make_home=getMakeHome(); +var oo_sdk_zip_home=getZipHome(); +var oo_sdk_cat_home=getCatHome(); +var oo_sdk_sed_home=getSedHome(); +var oo_sdk_manifest_used=""; +var oo_sdk_windowssdk=""; +var oo_sdk_cpp_home=getCppHome(); +var oo_sdk_cli_home=getCliHome(); +var oo_sdk_java_home=getJavaHome(); +var oo_sdk_out=getOutputDir(); +var sdk_auto_deployment=getAutoDeployment(); + +writeBatFile(oo_user_sdk_dir, oo_user_sdk_env_script); + +stdout.Write( + "\n ******************************************************************\n" + + " * ... \"" + oo_user_sdk_env_script + "\"\n" + + " * batch file has been prepared.\n" + + " * This batch file will be used in the future to prepare your\n" + + " * personal configured SDK environment.\n" + + " ******************************************************************\n\n"); +// " * For each time you want to use this configured SDK environment,\n" + +// " * you have to run the \"setsdkenv_windows.bat\" file in a new shell!\n" + + +// done ------------------------------------------------------------------------- + + +function skipChoice(msg) +{ + stdout.Write("\n Do you want to skip the choice of " + msg + " (YES/NO) [YES]:"); + var sChoice = stdin.ReadLine(); + if (sChoice == "" || sChoice.toLowerCase() == "yes") + return true; + + return false; +} + +function getSdkHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_HOME"); + if (sSuggestedHome.length == 0) { + var scriptname = WScript.ScriptFullName; + sSuggestedHome = scriptname.substr(0,scriptname.length-10); + } + + while(true) + { + stdout.Write("\n Enter the Office Software Development Kit directory [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, use default. + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\". An SDK is required, please" + + " specify the path to a valid installation."); + continue; + } + sHome = sSuggestedHome; + } + else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist. Please enter the path to a" + + "valid SDK installation."); + continue; + } + } + //Check if this is an sdk folder by looking for the idl sub - dir + var idlDir = sHome + "\\idl"; + if (! aFileSystemObject.FolderExists(idlDir)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + idlDir + "\". An SDK is required, please specify " + + "the path to a valid SDK installation."); + continue; + } + + return sHome; + } +} + +function getOfficeHome() +{ + var sSuggestedHome = WshSysEnv("OFFICE_HOME"); + if (sSuggestedHome.length == 0) + { + try { + sSuggestedHome = WshShell.RegRead(regKeyOfficeCurrentUser); + //The registry entry points to the program folder but we need the + //installation folder + } catch(exc) {} + if (sSuggestedHome.length == 0) + { + try { + sSuggestedHome = WshShell.RegRead(regKeyOfficeLocaleMachine); + //The registry entry points to the program folder but we need + //the installation folder + } catch (exc) {} + } + + var index=0; + if ((index = sSuggestedHome.lastIndexOf("\\")) != -1) + sSuggestedHome = sSuggestedHome.substr(0, index); + + if (sSuggestedHome.length == 0) + sSuggestedHome = searchOffice(); + } + + while(true) + { + stdout.Write("\n Enter the Office base installation directory [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, use default. + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\" An office installation is " + + "required, please specify the path to a valid " + + "office installation."); + sSuggestedHome = ""; + continue; + } + sHome = sSuggestedHome; + } else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist. Please specify the path to " + + "a valid office installation."); + continue; + } + } + //Check if this is a valid office installation folder by looking for the + //program sub-directory + var progDir = sHome + "\\program"; + if (! aFileSystemObject.FolderExists(progDir)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + progDir + "\". An office installation is required, " + + "please specify the path to a valid office " + + "installation."); + continue; + } + return sHome; + } +} + +function searchOffice() +{ + var tmp = oo_sdk_home; + + if (aFileSystemObject.FileExists(tmp + "\\program\\soffice.exe")) { + return tmp; + } + + return ""; +} + +function getMakeHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_MAKE_HOME"); + + while(true) + { + stdout.Write("\n Enter GNU make (3.79.1 or higher) tools directory [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, use default. + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\". GNU make is required, " + + "please specify a GNU make tools directory."); + sSuggestedHome = ""; + continue; + } + sHome = sSuggestedHome; + } else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist. GNU make is required, " + + "please specify a GNU make tools directory."); + continue; + } + } + //Check for the make executable + var sMakePath = sHome + "\\make.exe"; + if (! aFileSystemObject.FileExists(sMakePath)) + { + sMakePath = sHome + "\\mingw32-make.exe"; + } + if (! aFileSystemObject.FileExists(sMakePath)) + { + stdout.WriteLine("\n Error: Could not find \"" + sMakePath + + "\". GNU make is required, please specify a GNU " + + "make tools directory."); + continue; + } + return sHome; + } +} + +function getZipHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_ZIP_HOME"); + + while(true) + { + stdout.Write("\n Enter a zip (2.3 or higher) tools directory [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, use default. + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\". zip is required, please " + + "specify a zip tools directory."); + sSuggestedHome = ""; + continue; + } + sHome = sSuggestedHome; + } + else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist. zip is required, please " + + "specify a zip tools directory."); + continue; + } + } + //Check for the make executable + var sZipPath = sHome + "\\zip.exe"; + if (! aFileSystemObject.FileExists(sZipPath)) + { + stdout.WriteLine("\n Error: Could not find \"" + sZipPath + + "\". zip is required, please specify a zip tools " + + "directory."); + continue; + } + return sHome; + } +} + +function getCatHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_CAT_HOME"); + + while(true) + { + stdout.Write("\n Enter a cat (2.0 or higher) tools directory [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, use default. + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\". cat is required, please " + + "specify a cat tools directory." + + "\nYou can get cat from " + + "http://sourceforge.net/projects/unxutils/files/latest/download"); + sSuggestedHome = ""; + continue; + } + sHome = sSuggestedHome; + } + else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist. cat is required, please " + + "specify a cat tools directory." + + "\nYou can get cat from " + + "http://sourceforge.net/projects/unxutils/files/latest/download"); + continue; + } + } + //Check for the make executable + var sCatPath = sHome + "\\cat.exe"; + if (! aFileSystemObject.FileExists(sCatPath)) + { + stdout.WriteLine("\n Error: Could not find \"" + sCatPath + + "\". cat is required, please specify a cat tools " + + "directory." + + "\nYou can get cat from " + + "http://sourceforge.net/projects/unxutils/files/latest/download"); + continue; + } + return sHome; + } +} + +function getSedHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_SED_HOME"); + + while(true) + { + stdout.Write("\n Enter a sed (3.02 or higher) tools directory [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, use default. + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\". sed is required, please " + + "specify a sed tools directory." + + "\nYou can get sed from " + + "http://sourceforge.net/projects/unxutils/files/latest/download"); + sSuggestedHome = ""; + continue; + } + sHome = sSuggestedHome; + } + else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist. sed is required, please " + + "specify a sed tools directory." + + "\nYou can get sed from " + + "http://sourceforge.net/projects/unxutils/files/latest/download"); + continue; + } + } + //Check for the make executable + var sSedPath = sHome + "\\sed.exe"; + if (! aFileSystemObject.FileExists(sSedPath)) + { + stdout.WriteLine("\n Error: Could not find \"" + sSedPath + + "\". sed is required, please specify a sed tools " + + "directory." + + "\nYou can get sed from " + + "http://sourceforge.net/projects/unxutils/files/latest/download"); + continue; + } + return sHome; + } +} + +function getCppHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_CPP_HOME"); + if (sSuggestedHome.length == 0) + { + var sVC=""; + try { + sVC = WshShell.RegRead(regKeyVCExpress90); + }catch (exc) {} + if (sVC.length == 0) + { + try { + sVC = WshShell.RegRead(regKeyVC90); + }catch (exc) {} + } + // check Windows SDK if VC 9 + if (sVC.length > 0) + { + oo_sdk_manifest_used="true"; + try { + oo_sdk_windowssdk = WshShell.RegRead(regKeyWindowsSDK); + }catch (exc) {} + } + if (sVC.length == 0) + { + try { + sVC = WshShell.RegRead(regKeyVCExpress80); + }catch (exc) {} + if (sVC.length > 0) + oo_sdk_manifest_used="true"; + } + if (sVC.length == 0) + { + try { + sVC = WshShell.RegRead(regKeyVC80); + }catch (exc) {} + if (sVC.length > 0) + oo_sdk_manifest_used="true"; + } + if (sVC.length == 0) + { + try { + sVC = WshShell.RegRead(regKeyVC71); + }catch (exc) {} + } + if (sVC.length > 0) + { + sVC += "bin"; + if (aFileSystemObject.FileExists(sVC + "\\cl.exe")) + sSuggestedHome = sVC; + } + } + + var bSkip = false; + while(true) + { + stdout.Write("\n Enter the directory of the C++ compiler (optional) [" + + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, check OO_SDK_CPP_HOME or suggested value + if ( sSuggestedHome.length == 0 ) { + bSkip = true; + } else { + if ( !aFileSystemObject.FolderExists(sSuggestedHome) ) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\"."); + sSuggestedHome = ""; + bSkip = true; + } + } + + sHome = sSuggestedHome; + } else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sHome + "\"."); + bSkip = true; + } + } + + if ( !bSkip) { + //Check if the C++ compiler exist + var cl = sHome + "\\cl.exe"; + var mt = sHome + "\\mt.exe"; + + if (! aFileSystemObject.FileExists(cl)) + { + stdout.WriteLine("\n Error: Could not find the C++ compiler \"" + + cl + "\"."); + sHome = ""; + bSkip = true; + } else { + if (aFileSystemObject.FileExists(mt)) { + oo_sdk_vc8_used="true"; + } + } + } + + if ( bSkip ) { + if ( skipChoice("the C++ compiler") ) { + return ""; + } else { + bSkip = false; + continue; + } + } + + return sHome; + } +} + +function getCliHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_CLI_HOME"); + + if (sSuggestedHome.length == 0) + { + try { + var _ver = WshShell.RegRead(regKeyDotNet2_0); + if (_ver.length > 0) + { + sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot); + sSuggestedHome += sDirDotNet2_0; + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + sSuggestedHome = ""; + } + + if (sSuggestedHome.length == 0) + { + _ver = WshShell.RegRead(regKeyDotNet1_1); + if (_ver.length > 0) + { + sSuggestedHome = WshShell.RegRead(regKeyDotNetInstallRoot); + sSuggestedHome += sDirDotNet1_1; + if ( ! aFileSystemObject.FolderExists(sSuggestedHome)) + sSuggestedHome = ""; + } + } + } catch (exc) {} + } + + var bSkip = false; + while(true) + { + stdout.Write("\n Enter the directory of the C# and VB.NET compilers (optional) [" + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, check OO_SDK_CLI_HOME or suggested value + if ( sSuggestedHome.length == 0 ) { + bSkip = true; + } else { + if ( !aFileSystemObject.FolderExists(sSuggestedHome) ) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\"."); + sSuggestedHome = ""; + bSkip = true; + } + } + + sHome = sSuggestedHome; + } + else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist."); + bSkip = true; + } + } + + if ( !bSkip ) { + //Check if the C# and VB.NET compiler exist + var csc = sHome + "\\csc.exe"; + var vbc = sHome + "\\vbc.exe"; + + if (! aFileSystemObject.FileExists(csc)) + { + stdout.WriteLine("\n Error: Could not find the C# compiler \"" + + csc + "\"."); + bSkip = true; + } + if (! aFileSystemObject.FileExists(vbc)) + { + stdout.WriteLine("\n Error: Could not find the VB.NET compiler \"" + + vbc + "\"."); + bSkip = true; + } + } + + if ( bSkip ) { + if ( skipChoice("the C# and VB.NET compilers") ) { + return ""; + } else { + bSkip = false; + continue; + } + } + + return sHome; + } +} + +function getJavaHome() +{ + var sSuggestedHome = WshSysEnv("OO_SDK_JAVA_HOME"); + if (sSuggestedHome.length == 0) + { + try { + var currentVersion = WshShell.RegRead(regKeyJDK + "CurrentVersion"); + if (currentVersion.length > 0) + { + sSuggestedHome = WshShell.RegRead(regKeyJDK + currentVersion + + "\\JavaHome"); + if ( ! aFileSystemObject.FolderExists(sSuggestedHome) ) + sSuggestedHome = ""; + } + } catch (exc) {} + } + + var bSkip = false; + while(true) + { + stdout.Write("\n Enter JAVA SDK (1.6 or higher) installation directory (optional) [" + sSuggestedHome + "]:"); + var sHome = stdin.ReadLine(); + if (sHome.length == 0) + { + //No user input, check OO_SDK_JAVA_HOME or suggested value + if ( sSuggestedHome.length == 0 ) { + bSkip = true; + } else { + if ( !aFileSystemObject.FolderExists(sSuggestedHome) ) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedHome + "\"."); + sSuggestedHome = ""; + bSkip=true; + } + } + + sHome = sSuggestedHome; + } else + { + //validate the user input + if ( ! aFileSystemObject.FolderExists(sHome)) + { + stdout.WriteLine("\n Error: The directory \"" + sHome + + "\" does not exist."); + bSkip = true; + } + } + + if ( !bSkip) { + //Check if this is an sdk folder by looking for the javac compiler + var javacompiler = sHome + "\\bin\\javac.exe"; + if (! aFileSystemObject.FileExists(javacompiler)) + { + stdout.WriteLine("\n Error: Could not find \"" + + javacompiler + "\"."); + bSkip = true; + } + } + + if ( bSkip ) { + if ( skipChoice("the Java SDK") ) { + return ""; + } else { + bSkip = false; + continue; + } + } + + return sHome; + } +} + +function getOutputDir() +{ + var defaultdir = "c:\\" + oo_sdk_name; + var sSuggestedDir = WshSysEnv("OO_SDK_OUT"); + if (sSuggestedDir.length == 0) + sSuggestedDir = defaultdir; + + var bSkip = false; + while(true) + { + stdout.Write( + "\n Default output directory is the \"c:\\" + oo_sdk_name + "\".\n" + + " Enter an existent directory if you prefer a different one. But note" + + " that only\n a path without spaces is allowed because of a" + + " limitation of gnu make. (optional) [" + sSuggestedDir + "]:"); + var sDir = stdin.ReadLine(); + if (sDir.length == 0) + { + //No user input, check OO_SDK_OUT or suggested value + if ( sSuggestedDir.length == 0 ) { + bSkip = true; + } else { + if (sSuggestedDir == oo_user_sdk_dir || sSuggestedDir == defaultdir) { + var fso = new ActiveXObject("Scripting.FileSystemObject"); + if ( !fso.FolderExists(sSuggestedDir) ) + fso.CreateFolder(sSuggestedDir); + } + if ( !aFileSystemObject.FolderExists(sSuggestedDir) ) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sSuggestedDir + "\"."); + sSuggestedDir = ""; + bSkip = true; + } + } + + sDir = sSuggestedDir; + } + else + { + if (sDir.indexOf(' ') != -1) { + stdout.WriteLine("\n Error: your specified output directory " + + "\"" + sDir + "\" " + + "contains one or more spaces.\n That " + + "causes problems with gnu make. Please specify" + + " a directory without spaces."); + bSkip = true; + } + //validate the user input + if ( ! aFileSystemObject.FolderExists(sDir)) + { + stdout.WriteLine("\n Error: Could not find directory \"" + + sDir + "\"."); + bSkip = true; + } + } + + if ( bSkip ) { + if ( skipChoice("a special output directory") ) { + return ""; + } else { + bSkip = false; + continue; + } + } + + return sDir; + } +} + +function getAutoDeployment() +{ + var sSuggestedAuto = WshSysEnv("SDK_AUTO_DEPLOYMENT"); + if (sSuggestedAuto.length == 0) + sSuggestedAuto = "YES"; + + while(true) + { + stdout.Write("\n Automatic deployment of UNO components (YES/NO) ["+ + sSuggestedAuto + "]:"); + var sAuto = stdin.ReadLine(); + if (sAuto.length == 0) + sAuto = sSuggestedAuto; + else + { + sAutoU = sAuto.toUpperCase(); + if (sAutoU != "YES" && sAutoU != "NO") + { + stdout.WriteLine("\n Error: The value \"" + sAuto + "\" is " + + "invalid. Please answer YES or NO.") + continue; + } + sAuto = sAutoU; + } + return sAuto; + } +} + +//The function uses sp2bv.exe to obtain a file URL from a +//system path. The URL is already escaped for use as bootstrap variable. +//($ -> \$). Then the resulting string is escaped for use in a bat file. +//That is % signs are made to double % (% -> %%); +function makeBootstrapFileUrl(systemPath) +{ + var oExec = WshShell.Exec("sp2bv.exe \"" + systemPath + "\""); + var output=""; + while (true) + { + if (!oExec.StdOut.AtEndOfStream) + { + var next = oExec.StdOut.Read(1); + if (next == '%') + output += "%%"; + else + output += next; + } + else + break; + } + return output; +} + +function writeBatFile(fdir, file) +{ + var fso = new ActiveXObject("Scripting.FileSystemObject"); + if ( !fso.FolderExists(fdir) ) + fso.CreateFolder(fdir); + var newFile = fso.CreateTextFile(file, true); + + newFile.Write( + "@echo off\n" + + "REM This script sets all environment variables, which\n" + + "REM are necessary for building the examples of the Office Development Kit.\n" + + "REM The Script was developed for the operating systems Windows.\n" + + "REM The SDK name\n" + + "REM Example: set OO_SDK_NAME=libreoffice3.4_sdk\n" + + "set OO_SDK_NAME=" + oo_sdk_name + + "\n\n" + + "REM Installation directory of the Software Development Kit.\n" + + "REM Example: set OO_SDK_HOME=C:\\Program Files\\LibreOffice 3\\sdk\n" + + "set OO_SDK_HOME=" + oo_sdk_home + + "\n\n" + + "REM Office installation directory.\n" + + "REM Example: set OFFICE_HOME=C:\\Program Files\\LibreOffice 3\n" + + "set OFFICE_HOME=" + office_home + + "\n\n" + + "REM Directory of the make command.\n" + + "REM Example: set OO_SDK_MAKE_HOME=D:\\NextGenerationMake\\make\n" + + "set OO_SDK_MAKE_HOME=" + oo_sdk_make_home + + "\n\n" + + "REM Directory of the zip tool.\n" + + "REM Example: set OO_SDK_ZIP_HOME=D:\\infozip\\bin\n" + + "set OO_SDK_ZIP_HOME=" + oo_sdk_zip_home + + "\n\n" + + "REM Directory of the cat tool.\n" + + "REM Example: set OO_SDK_CAT_HOME=C:\\UnxUtils\\usr\\local\\wbin\n" + + "set OO_SDK_CAT_HOME=" + oo_sdk_cat_home + + "\n\n" + + "REM Directory of the sed tool.\n" + + "REM Example: set OO_SDK_SED_HOME=C:\\UnxUtils\\usr\\local\\wbin\n" + + "set OO_SDK_SED_HOME=" + oo_sdk_sed_home + + "\n\n" + + "REM Directory of the C++ compiler.\n" + + "REM Example:set OO_SDK_CPP_HOME=C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\bin\n" + + "set OO_SDK_CPP_HOME=" + oo_sdk_cpp_home + + "\nset CPP_MANIFEST=" + oo_sdk_manifest_used + + "\nset CPP_WINDOWS_SDK=" + oo_sdk_windowssdk + + "\n\n" + + "REM Directory of the C# and VB.NET compilers.\n" + + "REM Example:set OO_SDK_CLI_HOME=C:\\WINXP\\Microsoft.NET\\Framework\\v1.0.3705\n" + + "set OO_SDK_CLI_HOME=" + oo_sdk_cli_home + + "\n\n" + + "REM Java SDK installation directory.\n" + + "REM Example: set OO_SDK_JAVA_HOME=C:\\Program Files\\Java\\jdk1.6.0_05\n" + + "set OO_SDK_JAVA_HOME=" + oo_sdk_java_home + + "\n\n" + + "REM Special output directory\n" + + "REM Example: set OO_SDK_OUT=C:\\" + oo_sdk_name + "\n" + + "set OO_SDK_OUT=" + oo_sdk_out + + "\n\n" + + "REM Automatic deployment\n" + + "REM Example: set SDK_AUTO_DEPLOYMENT=YES\n" + + "set SDK_AUTO_DEPLOYMENT=" + sdk_auto_deployment + + "\n\n" + + "REM Check installation path for the Office Development Kit.\n" + + "if not defined OO_SDK_HOME (\n" + + " echo Error: the variable OO_SDK_HOME is missing!\n" + + " goto :error\n" + + " )\n" + + "\n" + + "REM Check installation path for the office.\n" + + "REM if not defined OFFICE_HOME (\n" + + "REM echo Error: the variable OFFICE_HOME is missing!\n" + + "REM goto :error\n" + + "REM )\n" + + "\n" + + "REM Check installation path for GNU make.\n" + + "if not defined OO_SDK_MAKE_HOME (\n" + + " echo Error: the variable OO_SDK_MAKE_HOME is missing!\n" + + " goto :error\n" + + " )\n" + + "\n" + + "REM Check installation path for the zip tool.\n" + + "if not defined OO_SDK_ZIP_HOME (\n" + + " echo Error: the variable OO_SDK_ZIP_HOME is missing!\n" + + " goto :error\n" + + " )\n" + + "\n" + + "REM Check installation path for the cat tool.\n" + + "if not defined OO_SDK_CAT_HOME (\n" + + " echo Error: the variable OO_SDK_CAT_HOME is missing!\n" + + " goto :error\n" + + " )\n" + + "\n" + + "REM Check installation path for the sed tool.\n" + + "if not defined OO_SDK_SED_HOME (\n" + + " echo Error: the variable OO_SDK_SED_HOME is missing!\n" + + " goto :error\n" + + " )\n" + + "\n" + + "REM Set library path. \n" + + "set LIB=%OO_SDK_HOME%\\lib;%LIB%\n" + + "if defined CPP_WINDOWS_SDK (\n" + + " set LIB=%LIB%;%CPP_WINDOWS_SDK%\\lib\n" + + " )\n" + + "\n" + + "REM Set office program path.\n" + + "if defined OFFICE_HOME (\n" + + " set OFFICE_PROGRAM_PATH=%OFFICE_HOME%\\program\n" + + " )\n" + + "\n" + + "REM Set UNO path, necessary to ensure that the cpp examples using the\n" + + "REM new UNO bootstrap mechanism use the configured office installation\n" + + "REM (only set when using an Office).\n" + + "if defined OFFICE_HOME (\n" + + " set UNO_PATH=%OFFICE_PROGRAM_PATH%\n" + + " )\n" + + "\n" + + "set OO_SDK_URE_BIN_DIR=%OFFICE_PROGRAM_PATH%\n" + + "set OO_SDK_URE_LIB_DIR=%OFFICE_PROGRAM_PATH%\n" + + "set OO_SDK_URE_JAVA_DIR=%OFFICE_PROGRAM_PATH%\\classes\n" + + "set OO_SDK_OFFICE_BIN_DIR=%OFFICE_PROGRAM_PATH%\n" + + "set OO_SDK_OFFICE_LIB_DIR=%OFFICE_PROGRAM_PATH%\n" + + "set OO_SDK_OFFICE_JAVA_DIR=%OFFICE_PROGRAM_PATH%\\classes\n" + + "\n" + + "REM Set classpath\n" + + "set CLASSPATH=%OO_SDK_URE_JAVA_DIR%\\libreoffice.jar;%OO_SDK_URE_JAVA_DIR%\\unoloader.jar\n" + + "\n" + + "REM Add directory of the SDK tools to the path.\n" + + "set PATH=%OO_SDK_HOME%\\bin;%OO_SDK_URE_BIN_DIR%;%OO_SDK_OFFICE_BIN_DIR%;%OO_SDK_HOME%\\WINexample.out\\bin;%PATH%\n" + + "\n" + + "REM Set PATH appropriate to the output directory\n" + + "if defined OO_SDK_OUT set PATH=%OO_SDK_OUT%\\WINexample.out\\bin;%PATH%\n" + + "if not defined OO_SDK_OUT set PATH=%OO_SDK_HOME%\\WINexample.out\\bin;%PATH%\n" + + "\n" + + "REM Add directory of the command make to the path, if necessary.\n" + + "if defined OO_SDK_MAKE_HOME set PATH=%OO_SDK_MAKE_HOME%;%PATH%\n" + + "\n" + + "REM Add directory of the zip tool to the path, if necessary.\n" + + "if defined OO_SDK_ZIP_HOME set PATH=%OO_SDK_ZIP_HOME%;%PATH%\n" + + "\n" + + "REM Add directory of the cat tool to the path, if necessary.\n" + + "if defined OO_SDK_CAT_HOME set PATH=%OO_SDK_CAT_HOME%;%PATH%\n" + + "\n" + + "REM Add directory of the sed tool to the path, if necessary.\n" + + "if defined OO_SDK_SED_HOME set PATH=%OO_SDK_SED_HOME%;%PATH%\n" + + "\n" + + "REM Add directory of the C++ compiler to the path, if necessary.\n" + + "if defined OO_SDK_CPP_HOME set PATH=%OO_SDK_CPP_HOME%;%PATH%\n" + + "\n" + + "REM Add directory of the Win SDK to the path, if necessary.\n" + + "if defined CPP_WINDOWS_SDK set PATH=%CPP_WINDOWS_SDK%\\bin;%PATH%\n" + + "if defined CPP_WINDOWS_SDK set INCLUDE=%CPP_WINDOWS_SDK%\\Include;%INCLUDE%\n" + + "REM Add directory of the C# and VB.NET compilers to the path, if necessary.\n" + + "if defined OO_SDK_CLI_HOME set PATH=%OO_SDK_CLI_HOME%;%PATH%\n" + + "\n" + + "REM Add directory of the Java tools to the path, if necessary.\n" + + "if defined OO_SDK_JAVA_HOME set PATH=%OO_SDK_JAVA_HOME%\\bin;%OO_SDK_JAVA_HOME%\\jre\\bin;%PATH%\n" + + "\n" + + "REM Set environment for C++ compiler tools, if necessary.\n" + + "if defined OO_SDK_CPP_HOME call \"%OO_SDK_CPP_HOME%\\VCVARS32.bat\"\n" + + "\n" + + "REM Set title to identify the prepared shell.\n" + + "title Shell prepared for SDK\n" + + "\nREM Prepare shell with all necessary environment variables.\n" + + "echo.\n" + + "echo ******************************************************************\n" + + "echo *\n" + + "echo * SDK environment is prepared for Windows\n" + + "echo *\n" + + "echo * SDK = %OO_SDK_HOME%\n" + + "echo * Office = %OFFICE_HOME%\n" + + "echo * Make = %OO_SDK_MAKE_HOME%\n" + + "echo * Zip = %OO_SDK_ZIP_HOME%\n" + + "echo * cat = %OO_SDK_CAT_HOME%\n" + + "echo * sed = %OO_SDK_SED_HOME%\n" + + "echo * C++ Compiler = %OO_SDK_CPP_HOME%\n" + + "echo * C# and VB.NET compilers = %OO_SDK_CLI_HOME%\n" + + "echo * Java = %OO_SDK_JAVA_HOME%\n" + + "echo * Special Output directory = %OO_SDK_OUT%\n" + + "echo * Auto deployment = %SDK_AUTO_DEPLOYMENT%\n" + + "echo *\n" + + "echo ******************************************************************\n" + + "echo.\n" + + "goto end\n" + + "\n" + + " :error\n" + + "Error: Please insert the necessary environment variables into the batch file.\n" + + "\n" + + " :end\n" + ); + newFile.Close(); +} |