tdf#155956 Fix Windows sdk setup script

Changed script so it detects OS bitness and finds vcvars32.bat
or vcvars64.bat by searching through the VS installation
that contains the C++ compiler

Change-Id: I9fc5708e5c80e10976d9d55b662178e360aeed62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196260
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
This commit is contained in:
Daniel Lee
2026-03-11 15:30:54 +01:00
committed by Stephan Bergmann
parent a949f9483a
commit 48f289231c
+37 -1
View File
@@ -61,6 +61,7 @@ var oo_sdk_sed_home=getSedHome();
var oo_sdk_manifest_used=""; var oo_sdk_manifest_used="";
var oo_sdk_windowssdk=""; var oo_sdk_windowssdk="";
var oo_sdk_cpp_home=getCppHome(); var oo_sdk_cpp_home=getCppHome();
var oo_sdk_vcvars=getVcvars();
var oo_sdk_cli_home=getCliHome(); var oo_sdk_cli_home=getCliHome();
var oo_sdk_dotnet_root=getDotnetRoot(); var oo_sdk_dotnet_root=getDotnetRoot();
var oo_sdk_java_home=getJavaHome(); var oo_sdk_java_home=getJavaHome();
@@ -540,6 +541,38 @@ function getCppHome()
} }
} }
function getVcvars()
{
var sVcvars = "";
if (!oo_sdk_cpp_home)
return sVcvars;
var sBitness = "64";
try {
var sArchitecture = WshSysEnv("PROCESSOR_ARCHITECTURE");
if (sArchitecture == "x86") {
sArchitecture = WshSysEnv("PROCESSOR_ARCHITEW6432");
if (sArchitecture == "")
sBitness = "32";
}
} catch (exc) {}
var index = oo_sdk_cpp_home.search("VC");
var sVCDir = oo_sdk_cpp_home.slice(0, index + 2)
try {
sVcvars = WshShell.Exec("cmd.exe /c dir \"" + sVCDir + "\\vcvars" +
sBitness + ".bat\" /s /b").StdOut.ReadLine();
} catch (exc) {}
if (!sVcvars)
stdout.Write("\nAuto-detection of VCVARS file failed, "
+ "C++ environment will not be initialized.");
return sVcvars;
}
function getCliHome() function getCliHome()
{ {
var sSuggestedHome = WshSysEnv("OO_SDK_CLI_HOME"); var sSuggestedHome = WshSysEnv("OO_SDK_CLI_HOME");
@@ -1056,6 +1089,9 @@ function writeBatFile(fdir, file)
"REM Add directory of the C++ compiler to the path, if necessary.\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" + "if defined OO_SDK_CPP_HOME set PATH=%OO_SDK_CPP_HOME%;%PATH%\n" +
"\n" + "\n" +
"REM Save path of the C++ environment setup, if necessary.\n" +
"if defined OO_SDK_CPP_HOME set OO_SDK_VCVARS=" + oo_sdk_vcvars +
"\n\n" +
"REM Add directory of the Win SDK to the path, if necessary.\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 PATH=%CPP_WINDOWS_SDK%\\bin;%PATH%\n" +
"if defined CPP_WINDOWS_SDK set INCLUDE=%CPP_WINDOWS_SDK%\\Include;%INCLUDE%\n" + "if defined CPP_WINDOWS_SDK set INCLUDE=%CPP_WINDOWS_SDK%\\Include;%INCLUDE%\n" +
@@ -1069,7 +1105,7 @@ function writeBatFile(fdir, file)
"if defined OO_SDK_JAVA_HOME set PATH=%OO_SDK_JAVA_HOME%\\bin;%OO_SDK_JAVA_HOME%\\jre\\bin;%PATH%\n" + "if defined OO_SDK_JAVA_HOME set PATH=%OO_SDK_JAVA_HOME%\\bin;%OO_SDK_JAVA_HOME%\\jre\\bin;%PATH%\n" +
"\n" + "\n" +
"REM Set environment for C++ compiler tools, if necessary.\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" + "if defined OO_SDK_VCVARS call \"%OO_SDK_VCVARS%\"\n" +
"\n" + "\n" +
"REM Set title to identify the prepared shell.\n" + "REM Set title to identify the prepared shell.\n" +
"title Shell prepared for SDK\n" + "title Shell prepared for SDK\n" +