SDL: Disable vcvars code

From d563073b38bf3b87d6704bd7974b4d0a4c4c0cb2 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 17 Jun 2023 22:35:57 +0200
Subject: [PATCH] Disable vcvars code

---
 packed/index.js | 285 +-----------------------------------------------
 src/main.ts     |  10 +-
 src/msvc.ts     |   2 +-
 3 files changed, 11 insertions(+), 286 deletions(-)

diff --git a/packed/index.js b/packed/index.js
index e8064ae07770..af92f09f79b6 100644
--- a/packed/index.js
+++ b/packed/index.js
@@ -85,7 +85,6 @@ const child_process = __importStar(__nccwpck_require__(2081));
 const fs = __importStar(__nccwpck_require__(7147));
 const core = __importStar(__nccwpck_require__(2186));
 const constants_1 = __nccwpck_require__(7077);
-const msvc_1 = __nccwpck_require__(1983);
 const ninja_1 = __nccwpck_require__(6526);
 const util_1 = __nccwpck_require__(9731);
 const version_1 = __nccwpck_require__(6970);
@@ -185,11 +184,11 @@ async function run() {
             await (0, ninja_1.configure_ninja_build_tool)(SDL_BUILD_PLATFORM);
         });
     }
-    if (SDL_BUILD_PLATFORM == platform_1.SdlBuildPlatform.Windows) {
-        await core.group(`Configuring VS environment`, async () => {
-            (0, msvc_1.setup_vc_environment)();
-        });
-    }
+    //   if (SDL_BUILD_PLATFORM == SdlBuildPlatform.Windows) {
+    //     await core.group(`Configuring VS environment`, async () => {
+    //       setup_vc_environment();
+    //     });
+    //   }
     const source_dir = `${SETUP_SDL_ROOT}/src`;
     const build_dir = `${SETUP_SDL_ROOT}/build`;
     const install_dir = `${SETUP_SDL_ROOT}`;
@@ -204,280 +203,6 @@ async function run() {
 run();
 
 
-/***/ }),
-
-/***/ 1983:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// Copyright 2019 ilammy
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy of
-// this software and associated documentation files (the "Software"), to deal in
-// the Software without restriction, including without limitation the rights to
-// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-// the Software, and to permit persons to whom the Software is furnished to do so,
-// subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    var desc = Object.getOwnPropertyDescriptor(m, k);
-    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
-      desc = { enumerable: true, get: function() { return m[k]; } };
-    }
-    Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || function (mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.setup_vc_environment = void 0;
-const child_process = __importStar(__nccwpck_require__(2081));
-const fs = __importStar(__nccwpck_require__(7147));
-const path = __importStar(__nccwpck_require__(1017));
-const process = __importStar(__nccwpck_require__(7282));
-const core = __importStar(__nccwpck_require__(2186));
-const util_1 = __nccwpck_require__(9731);
-const PROGRAM_FILES_X86 = process.env["ProgramFiles(x86)"];
-const PROGRAM_FILES = [
-    process.env["ProgramFiles(x86)"],
-    process.env["ProgramFiles"],
-];
-const EDITIONS = ["Enterprise", "Professional", "Community"];
-const YEARS = ["2022", "2019", "2017"];
-const VsYearVersion = {
-    "2022": "17.0",
-    "2019": "16.0",
-    "2017": "15.0",
-    "2015": "14.0",
-    "2013": "12.0",
-};
-const VSWHERE_PATH = `${PROGRAM_FILES_X86}\\Microsoft Visual Studio\\Installer`;
-function vsversion_to_versionnumber(vsversion) {
-    if (Object.values(VsYearVersion).includes(vsversion)) {
-        return vsversion;
-    }
-    else {
-        if (vsversion in VsYearVersion) {
-            return VsYearVersion[vsversion];
-        }
-    }
-    return vsversion;
-}
-function vsversion_to_year(vsversion) {
-    if (Object.keys(VsYearVersion).includes(vsversion)) {
-        return vsversion;
-    }
-    else {
-        for (const [year, ver] of Object.entries(VsYearVersion)) {
-            if (ver === vsversion) {
-                return year;
-            }
-        }
-    }
-    return vsversion;
-}
-function findWithVswhere(pattern, version_pattern) {
-    try {
-        const installationPath = child_process
-            .execSync(`vswhere -products * ${version_pattern} -prerelease -property installationPath`)
-            .toString()
-            .trim();
-        return `${installationPath}\\\\${pattern}`;
-    }
-    catch (e) {
-        core.warning(`vswhere failed: ${e}`);
-    }
-    return null;
-}
-function findVcvarsall(vsversion) {
-    const vsversion_number = vsversion_to_versionnumber(vsversion);
-    let version_pattern;
-    if (vsversion_number) {
-        const upper_bound = vsversion_number.split(".")[0] + ".9";
-        version_pattern = `-version "${vsversion_number},${upper_bound}"`;
-    }
-    else {
-        version_pattern = "-latest";
-    }
-    // If vswhere is available, ask it about the location of the latest Visual Studio.
-    let path = findWithVswhere("VC\\Auxiliary\\Build\\vcvarsall.bat", version_pattern);
-    if (path && fs.existsSync(path)) {
-        core.info(`Found with vswhere: ${path}`);
-        return path;
-    }
-    core.info("Not found with vswhere");
-    // If that does not work, try the standard installation locations,
-    // starting with the latest and moving to the oldest.
-    const years = vsversion ? [vsversion_to_year(vsversion)] : YEARS;
-    for (const prog_files of PROGRAM_FILES) {
-        for (const ver of years) {
-            for (const ed of EDITIONS) {
-                path = `${prog_files}\\Microsoft Visual Studio\\${ver}\\${ed}\\VC\\Auxiliary\\Build\\vcvarsall.bat`;
-                core.info(`Trying standard location: ${path}`);
-                if (fs.existsSync(path)) {
-                    core.info(`Found standard location: ${path}`);
-                    return path;
-                }
-            }
-        }
-    }
-    core.info("Not found in standard locations");
-    // Special case for Visual Studio 2015 (and maybe earlier), try it out too.
-    path = `${PROGRAM_FILES_X86}\\Microsoft Visual C++ Build Tools\\vcbuildtools.bat`;
-    if (fs.existsSync(path)) {
-        core.info(`Found VS 2015: ${path}`);
-        return path;
-    }
-    core.info(`Not found in VS 2015 location: ${path}`);
-    throw new util_1.SetupSdlError("Microsoft Visual Studio not found");
-}
-function isPathVariable(name) {
-    const pathLikeVariables = ["PATH", "INCLUDE", "LIB", "LIBPATH"];
-    return pathLikeVariables.indexOf(name.toUpperCase()) != -1;
-}
-function filterPathValue(path) {
-    const paths = path.split(";");
-    // Remove duplicates by keeping the first occurrence and preserving order.
-    // This keeps path shadowing working as intended.
-    function unique(value, index, self) {
-        return self.indexOf(value) === index;
-    }
-    return paths.filter(unique).join(";");
-}
-/** See https://github.com/ilammy/msvc-dev-cmd#inputs */
-function setupMSVCDevCmd(arch, sdk, toolset, uwp, spectre, vsversion) {
-    if (process.platform != "win32") {
-        core.info("This is not a Windows virtual environment, bye!");
-        return;
-    }
-    // Add standard location of "vswhere" to PATH, in case it"s not there.
-    process.env.PATH += path.delimiter + VSWHERE_PATH;
-    // There are all sorts of way the architectures are called. In addition to
-    // values supported by Microsoft Visual C++, recognize some common aliases.
-    const arch_aliases = {
-        win32: "x86",
-        win64: "x64",
-        x86_64: "x64",
-        "x86-64": "x64",
-    };
-    // Ignore case when matching as that"s what humans expect.
-    if (arch.toLowerCase() in arch_aliases) {
-        arch = arch_aliases[arch.toLowerCase()];
-    }
-    // Due to the way Microsoft Visual C++ is configured, we have to resort to the following hack:
-    // Call the configuration batch file and then output *all* the environment variables.
-    const args = [arch];
-    if (uwp) {
-        args.push("uwp");
-    }
-    if (sdk) {
-        args.push(sdk);
-    }
-    if (toolset) {
-        args.push(`-vcvars_ver=${toolset}`);
-    }
-    if (spectre) {
-        args.push("-vcvars_spectre_libs=spectre");
-    }
-    const vcvars = `"${findVcvarsall(vsversion)}" ${args.join(" ")}`;
-    core.debug(`vcvars command-line: ${vcvars}`);
-    const cmd_output_string = child_process
-        .execSync(`set && cls && ${vcvars} && cls && set`, { shell: "cmd" })
-        .toString();
-    const cmd_output_parts = cmd_output_string.split("\f");
-    const old_environment = cmd_output_parts[0].split("\r\n");
-    const vcvars_output = cmd_output_parts[1].split("\r\n");
-    const new_environment = cmd_output_parts[2].split("\r\n");
-    // If vsvars.bat is given an incorrect command line, it will print out
-    // an error and *still* exit successfully. Parse out errors from output
-    // which don"t look like environment variables, and fail if appropriate.
-    const error_messages = vcvars_output.filter((line) => {
-        if (line.match(/^\[ERROR.*\]/)) {
-            // Don"t print this particular line which will be confusing in output.
-            if (!line.match(/Error in script usage. The correct usage is:$/)) {
-                return true;
-            }
-        }
-        return false;
-    });
-    if (error_messages.length > 0) {
-        throw new Error("invalid parameters" + "\r\n" + error_messages.join("\r\n"));
-    }
-    const result_vcvars = {};
-    // Convert old environment lines into a dictionary for easier lookup.
-    const old_env_vars = {};
-    for (const string of old_environment) {
-        const [name, value] = string.split("=");
-        old_env_vars[name] = value;
-    }
-    // Now look at the new environment and export everything that changed.
-    // These are the variables set by vsvars.bat. Also export everything
-    // that was not there during the first sweep: those are new variables.
-    core.startGroup("Environment variables");
-    for (const string of new_environment) {
-        const [key, vcvars_value] = string.split("=");
-        // vsvars.bat likes to print some fluff at the beginning.
-        // Skip lines that don"t look like environment variables.
-        if (!vcvars_value) {
-            continue;
-        }
-        const old_value = old_env_vars[key];
-        // For new variables "old_value === undefined".
-        if (vcvars_value !== old_value) {
-            let filtered_value = vcvars_value;
-            core.info(`Setting ${key}`);
-            // Special case for a bunch of PATH-like variables: vcvarsall.bat
-            // just prepends its stuff without checking if its already there.
-            // This makes repeated invocations of this action fail after some
-            // point, when the environment variable overflows. Avoid that.
-            if (isPathVariable(key)) {
-                filtered_value = filterPathValue(vcvars_value);
-            }
-            result_vcvars[key] = filtered_value;
-        }
-    }
-    core.endGroup();
-    core.info("Configured Developer Command Prompt");
-    return result_vcvars;
-}
-function setup_vc_environment() {
-    const arch = core.getInput("vc_arch");
-    const sdk = core.getInput("vc_sdk");
-    const toolset = core.getBooleanInput("vc_toolset");
-    const uwp = core.getBooleanInput("vc_uwp");
-    const spectre = core.getBooleanInput("vc_spectre");
-    const vsversion = core.getInput("vc_vsversion");
-    const msvc_env_vars = setupMSVCDevCmd(arch, sdk, toolset, uwp, spectre, vsversion);
-    for (const key in msvc_env_vars) {
-        process.env[key] = msvc_env_vars[key];
-    }
-}
-exports.setup_vc_environment = setup_vc_environment;
-
-
 /***/ }),
 
 /***/ 6526:
diff --git a/src/main.ts b/src/main.ts
index 46bb4bfcb92d..02ab5c44fcd9 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -160,11 +160,11 @@ async function run() {
     });
   }
 
-  if (SDL_BUILD_PLATFORM == SdlBuildPlatform.Windows) {
-    await core.group(`Configuring VS environment`, async () => {
-      setup_vc_environment();
-    });
-  }
+  //   if (SDL_BUILD_PLATFORM == SdlBuildPlatform.Windows) {
+  //     await core.group(`Configuring VS environment`, async () => {
+  //       setup_vc_environment();
+  //     });
+  //   }
 
   const source_dir = `${SETUP_SDL_ROOT}/src`;
   const build_dir = `${SETUP_SDL_ROOT}/build`;
diff --git a/src/msvc.ts b/src/msvc.ts
index 0e00fd5fed29..aa7371e2dd4d 100644
--- a/src/msvc.ts
+++ b/src/msvc.ts
@@ -272,7 +272,7 @@ function setupMSVCDevCmd(
 }
 
 export function setup_vc_environment() {
-  const arch = core.getInput("vc_arch");
+  const arch = core.getInput("msvc-arch");
   const sdk = core.getInput("vc_sdk");
   const toolset = core.getBooleanInput("vc_toolset");
   const uwp = core.getBooleanInput("vc_uwp");