diff --git a/app/windows/kdevelop-msvc.bat b/app/windows/kdevelop-msvc.bat index a7bb0997f9..0ead56327e 100644 --- a/app/windows/kdevelop-msvc.bat +++ b/app/windows/kdevelop-msvc.bat @@ -1,69 +1,67 @@ @echo off setlocal enabledelayedexpansion setlocal enableextensions -REM Check for newest VS (2017) too. These variables are defined if the script is run from Developer Command Prompt -IF NOT DEFINED VS150COMNTOOLS ( - REM load Visual Studio 2017 developer command prompt if VS150COMNTOOLS is not set. It's ugly and hardcoded too. - for %%n in (Enterprise Professional Community BuildTools) do ( - set "p=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\%%n\Common7\Tools\" - if exist "!p!\VsDevCmd.bat" ( - set "VS150COMNTOOLS=!p!" - goto :end - ) - ) +REM load Visual Studio 2017 developer command prompt if VS150COMNTOOLS isn't set. Read Windows registry in case VS is not istalled on C:\ +for /f "usebackq tokens=3*" %%a in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7" /s`) do ( + set vs15_path=%%a %%b + if exist "!vs15_path!Common7\Tools\VsDevCmd.bat" ( + set "VS150COMNTOOLS=!vs15_path!Common7\Tools\" + goto :end + ) + ) ) :end set base= if DEFINED VS150COMNTOOLS ( set "base=%VS150COMNTOOLS%" ) else ( IF DEFINED VS140COMNTOOLS ( set "base=%VS140COMNTOOLS%" ) else ( IF DEFINED VS120COMNTOOLS ( set "base=%VS120COMNTOOLS%" ) else ( IF DEFINED VS110COMNTOOLS ( set "base=%VS110COMNTOOLS%" ) else ( IF DEFINED VS100COMNTOOLS ( set "base=%VS100COMNTOOLS%" ) )))) if NOT DEFINED base ( START CMD /C "echo The Microsoft Visual C++ compiler was not found on your system, you might not be able to compile programs. && PAUSE" ) echo Found VS Install: %base% if DEFINED VS150COMNTOOLS ( REM Note: VS2017 has a different directory layout compared to previous versions set "vcvarsall=%base%..\..\VC\Auxiliary\Build\vcvarsall.bat" REM Choosing architecture echo Note: Refer to !vcvarsall! for more information echo( echo Define which compiler for VS2017 to use. Possible architectures are: echo x86_amd64 echo x64 echo ... set /p "arch= Type an arch and press enter...: " set script="!vcvarsall!" !arch! ) else ( IF DEFINED base ( set script="!base!\..\..\VC\vcvarsall.bat" ) ) if DEFINED script ( call %script% ) for /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\KDE\KDevelop" /v Install_Dir 2^>nul`) DO ( set appdir=%%A %%B ) if NOT DEFINED appdir ( for /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\Wow6432Node\KDE\KDevelop" /v Install_Dir 2^>nul`) DO ( set appdir=%%A %%B ) ) start "" "%appdir%\bin\kdevelop.exe"