Spack was running an external detection of Python during each invocation of the setup script for Windows CMD/PWSH, which has dramatic performance implications each time the script is invoked, and is completely unneccesary. Remove this operation.
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
@ECHO OFF
 | 
						|
setlocal EnableDelayedExpansion
 | 
						|
:: (c) 2021 Lawrence Livermore National Laboratory
 | 
						|
:: To use this file independently of Spack's installer, execute this script in its directory, or add the
 | 
						|
:: associated bin directory to your PATH. Invoke to launch Spack Shell.
 | 
						|
::
 | 
						|
:: source_dir/spack/bin/spack_cmd.bat
 | 
						|
::
 | 
						|
pushd %~dp0..
 | 
						|
set SPACK_ROOT=%CD%
 | 
						|
pushd %CD%\..
 | 
						|
set spackinstdir=%CD%
 | 
						|
popd
 | 
						|
 | 
						|
 | 
						|
:: Check if Python is on the PATH
 | 
						|
if not defined python_pf_ver (
 | 
						|
(for /f "delims=" %%F in ('where python.exe') do (
 | 
						|
                                                    set "python_pf_ver=%%F"
 | 
						|
                                                    goto :found_python
 | 
						|
                                                  ) ) 2> NUL
 | 
						|
)
 | 
						|
:found_python
 | 
						|
if not defined python_pf_ver (
 | 
						|
    :: If not, look for Python from the Spack installer
 | 
						|
    :get_builtin
 | 
						|
    (for /f "tokens=*" %%g in ('dir /b /a:d "!spackinstdir!\Python*"') do (
 | 
						|
        set "python_ver=%%g")) 2> NUL
 | 
						|
 | 
						|
    if not defined python_ver (
 | 
						|
        echo Python was not found on your system.
 | 
						|
        echo Please install Python or add Python to your PATH.
 | 
						|
    ) else (
 | 
						|
        set "py_path=!spackinstdir!\!python_ver!"
 | 
						|
        set "py_exe=!py_path!\python.exe"
 | 
						|
    )
 | 
						|
    goto :exitpoint
 | 
						|
) else (
 | 
						|
    :: Python is already on the path
 | 
						|
    set "py_exe=!python_pf_ver!"
 | 
						|
    (for /F "tokens=* USEBACKQ" %%F in (
 | 
						|
        `"!py_exe!" --version`) do (set "output=%%F")) 2>NUL
 | 
						|
    if not "!output:Microsoft Store=!"=="!output!" goto :get_builtin
 | 
						|
    goto :exitpoint
 | 
						|
)
 | 
						|
:exitpoint
 | 
						|
 | 
						|
set "PATH=%SPACK_ROOT%\bin\;%PATH%"
 | 
						|
if defined py_path (
 | 
						|
    set "PATH=%py_path%;%PATH%"
 | 
						|
)
 | 
						|
 | 
						|
if defined py_exe (
 | 
						|
    "%py_exe%" "%SPACK_ROOT%\bin\haspywin.py"
 | 
						|
)
 | 
						|
 | 
						|
set "EDITOR=notepad"
 | 
						|
 | 
						|
DOSKEY spacktivate=spack env activate $*
 | 
						|
 | 
						|
@echo **********************************************************************
 | 
						|
@echo ** Spack Package Manager
 | 
						|
@echo **********************************************************************
 | 
						|
 | 
						|
IF "%1"=="" GOTO CONTINUE
 | 
						|
set
 | 
						|
GOTO:EOF
 | 
						|
 | 
						|
:continue
 | 
						|
set PROMPT=[spack] %PROMPT%
 | 
						|
%comspec% /k
 |