From 73f029b6209aa006100eaf1b44f929d3fc91f945 Mon Sep 17 00:00:00 2001 From: "S. Abid Hashimi" Date: Mon, 2 Jun 2025 23:13:17 +0000 Subject: [PATCH 1/3] prepend INCLUDE env, instead of override --- modules/virtual_environments/nu_msvs/nu_msvs.nu | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/virtual_environments/nu_msvs/nu_msvs.nu b/modules/virtual_environments/nu_msvs/nu_msvs.nu index 71f199560..5d05f7e39 100644 --- a/modules/virtual_environments/nu_msvs/nu_msvs.nu +++ b/modules/virtual_environments/nu_msvs/nu_msvs.nu @@ -2,6 +2,7 @@ def --env find_msvs [] { export-env { $env.MSVS_BASE_PATH = $env.Path $env.PATH_VAR = (if "Path" in $env { "Path" } else { "PATH" }) + $env.INCLUDE_BEFORE = ($env.INCLUDE | split row (char esep)) # According to https://github.com/microsoft/vswhere/wiki/Installing, vswhere should always be in this location. let vswhere_cmd = ($'($env."ProgramFiles(x86)")\Microsoft Visual Studio\Installer\vswhere.exe') @@ -37,7 +38,7 @@ def --env find_msvs [] { $'($env.MSVS_MSDK_ROOT)Include\($env.MSVS_MSDK_VER)\ucrt', $'($env.MSVS_MSDK_ROOT)Include\($env.MSVS_MSDK_VER)\um', $'($env.MSVS_MSDK_ROOT)Include\($env.MSVS_MSDK_VER)\winrt' - ] | str join (char esep)) + ] | append $env.INCLUDE_BEFORE | str join (char esep)) let esep_path_converter = { from_string: { |s| $s | split row (char esep) } @@ -179,10 +180,11 @@ export def --env deactivate [] { load-env { $env.PATH_VAR: $env.MSVS_BASE_PATH, + INCLUDE: ($env.INCLUDE_BEFORE | path expand | str join (char esep)), } - hide-env INCLUDE hide-env LIB + hide-env INCLUDE_BEFORE hide-env MSVS_BASE_PATH hide-env MSVS_ROOT hide-env MSVS_MSVC_ROOT From 7d323bb7ffddf746af0ae5bea7f3b3b2d4a99e53 Mon Sep 17 00:00:00 2001 From: "S. Abid Hashimi" Date: Mon, 2 Jun 2025 23:37:05 +0000 Subject: [PATCH 2/3] prepend INCLUDE env, instead of override --- .../virtual_environments/nu_msvs/nu_msvs.nu | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/modules/virtual_environments/nu_msvs/nu_msvs.nu b/modules/virtual_environments/nu_msvs/nu_msvs.nu index 5d05f7e39..9d0774b48 100644 --- a/modules/virtual_environments/nu_msvs/nu_msvs.nu +++ b/modules/virtual_environments/nu_msvs/nu_msvs.nu @@ -1,8 +1,8 @@ def --env find_msvs [] { export-env { $env.MSVS_BASE_PATH = $env.Path + $env.INCLUDE_BEFORE = if "INCLUDE" in $env { ($env.INCLUDE | split row (char esep)) } else { null } $env.PATH_VAR = (if "Path" in $env { "Path" } else { "PATH" }) - $env.INCLUDE_BEFORE = ($env.INCLUDE | split row (char esep)) # According to https://github.com/microsoft/vswhere/wiki/Installing, vswhere should always be in this location. let vswhere_cmd = ($'($env."ProgramFiles(x86)")\Microsoft Visual Studio\Installer\vswhere.exe') @@ -38,7 +38,7 @@ def --env find_msvs [] { $'($env.MSVS_MSDK_ROOT)Include\($env.MSVS_MSDK_VER)\ucrt', $'($env.MSVS_MSDK_ROOT)Include\($env.MSVS_MSDK_VER)\um', $'($env.MSVS_MSDK_ROOT)Include\($env.MSVS_MSDK_VER)\winrt' - ] | append $env.INCLUDE_BEFORE | str join (char esep)) + ] | str join (char esep)) let esep_path_converter = { from_string: { |s| $s | split row (char esep) } @@ -162,7 +162,11 @@ export def --env activate [ } load-env { $env.PATH_VAR: $env_path, - INCLUDE: $env.MSVS_INCLUDE_PATH, + INCLUDE: (if $env.INCLUDE_BEFORE == null { + $env.MSVS_INCLUDE_PATH + } else { + $env.MSVS_INCLUDE_PATH | append $env.INCLUDE_BEFORE + }), LIB: $lib_path } @@ -180,15 +184,22 @@ export def --env deactivate [] { load-env { $env.PATH_VAR: $env.MSVS_BASE_PATH, - INCLUDE: ($env.INCLUDE_BEFORE | path expand | str join (char esep)), } hide-env LIB - hide-env INCLUDE_BEFORE hide-env MSVS_BASE_PATH hide-env MSVS_ROOT hide-env MSVS_MSVC_ROOT hide-env MSVS_MSDK_ROOT hide-env MSVS_MSDK_VER hide-env MSVS_INCLUDE_PATH -} + + if $env.INCLUDE_BEFORE == null { + hide-env INCLUDE + } else { + load-env { + INCLUDE: ($env.INCLUDE_BEFORE | path expand | str join (char esep)) + } + hide-env INCLUDE_BEFORE + } +} \ No newline at end of file From e68d4fb6d4ee46d147f94bb1136c7b37a2b17222 Mon Sep 17 00:00:00 2001 From: "S. Abid Hashimi" Date: Mon, 2 Jun 2025 23:56:47 +0000 Subject: [PATCH 3/3] prepend INCLUDE env, instead of override --- modules/virtual_environments/nu_msvs/nu_msvs.nu | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/modules/virtual_environments/nu_msvs/nu_msvs.nu b/modules/virtual_environments/nu_msvs/nu_msvs.nu index 9d0774b48..93fe9b2e7 100644 --- a/modules/virtual_environments/nu_msvs/nu_msvs.nu +++ b/modules/virtual_environments/nu_msvs/nu_msvs.nu @@ -162,12 +162,8 @@ export def --env activate [ } load-env { $env.PATH_VAR: $env_path, - INCLUDE: (if $env.INCLUDE_BEFORE == null { - $env.MSVS_INCLUDE_PATH - } else { - $env.MSVS_INCLUDE_PATH | append $env.INCLUDE_BEFORE - }), - LIB: $lib_path + INCLUDE: ($env.MSVS_INCLUDE_PATH | append $env.INCLUDE_BEFORE), + LIB: $lib_path, } # Debug Information