Skip to content

Instantly share code, notes, and snippets.

@kou1okada
Last active August 26, 2016 13:38
Show Gist options
  • Save kou1okada/0b1c4a5e3b8b8cbd18b2bda69b5e2c55 to your computer and use it in GitHub Desktop.
Save kou1okada/0b1c4a5e3b8b8cbd18b2bda69b5e2c55 to your computer and use it in GitHub Desktop.
Utilitiey for VisualStudio using from command line.
@ECHO OFF
REM -------------------------------------------------------
REM vcvarsall wrapper
REM Copyright (c) 2016 Koichi OKADA. ALl rights reserved.
REM This script is distributed under the MIT license.
REM -------------------------------------------------------
set VS11_VCVARSALL=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat
set VS12_VCVARSALL=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
set VS14_VCVARSALL=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
set VS15_VCVARSALL=C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\Common7\IDE\VC\vcvarsall.bat
set OPT_ARCH=%PROCESSOR_ARCHITECTURE%
:PARSE_ARGS
set ARGS=
:PARSE_ARGS_MAIN
IF "%1" == "" GOTO :PARSE_ARGS_END
IF "%1" == "-h" GOTO :PARSE_ARGS_HELP
IF "%1" == "--help" GOTO :PARSE_ARGS_HELP
IF "%1" == "-v" GOTO :PARSE_ARGS_VERBOSE
IF "%1" == "--verbose" GOTO :PARSE_ARGS_VERBOSE
IF "%1" == "-a" GOTO :PARSE_ARGS_ARCH
IF "%1" == "--arch" GOTO :PARSE_ARGS_ARCH
IF NOT "%ARGS%" == "" SET ARGS=%ARGS% %1
IF "%ARGS%" == "" SET ARGS=%1
:PARSE_ARGS_NEXT
SHIFT
GOTO :PARSE_ARGS_MAIN
:PARSE_ARGS_END
IF NOT "%OPT_HELP%" == "" GOTO :HELP
CALL :MAIN %ARGS%
GOTO :EOF
REM END:PARSE_ARGS
:PARSE_ARGS_HELP
SET OPT_HELP=%1
SHIFT
GOTO :PARSE_ARGS_NEXT
REM END:PARSE_ARGS_HELP
:PARSE_ARGS_VERBOSE
SET OPT_VERBOSE=%1
SHIFT
GOTO :PARSE_ARGS_NEXT
REM END:PARSE_ARGS_VERBOSE
:PARSE_ARGS_ARCH
SET OPT_ARCH=%2
SHIFT
SHIFT
GOTO :PARSE_ARGS_NEXT
REM END:PARSE_ARGS_ARCH
:SHIFT_ARGS
set ARGS=
IF "%1" == "9" GOTO :SHIFT_ARGS_9
IF "%1" == "8" GOTO :SHIFT_ARGS_8
IF "%1" == "7" GOTO :SHIFT_ARGS_7
IF "%1" == "6" GOTO :SHIFT_ARGS_6
IF "%1" == "5" GOTO :SHIFT_ARGS_5
IF "%1" == "4" GOTO :SHIFT_ARGS_4
IF "%1" == "3" GOTO :SHIFT_ARGS_3
IF "%1" == "2" GOTO :SHIFT_ARGS_2
IF "%1" == "1" GOTO :SHIFT_ARGS_1
IF "%1" == "0" GOTO :SHIFT_ARGS_0
:SHIFT_ARGS_9
SHIFT
:SHIFT_ARGS_8
SHIFT
:SHIFT_ARGS_7
SHIFT
:SHIFT_ARGS_6
SHIFT
:SHIFT_ARGS_5
SHIFT
:SHIFT_ARGS_4
SHIFT
:SHIFT_ARGS_3
SHIFT
:SHIFT_ARGS_2
SHIFT
:SHIFT_ARGS_1
SHIFT
:SHIFT_ARGS_0
SHIFT
:SHIFT_ARGS_MAIN
IF "%1" == "" GOTO :EOF
set ARGS=%ARGS% %1
SHIFT
GOTO :SHIFT_ARGS_MAIN
:SHIFT_ARGS_END
ECHO %ARGS%
GOTO :EOF
REM END:SHIFT_ARGS
:MAIN
IF /I "%1" == "" GOTO :HELP
IF /I "%1" == "HELP" GOTO :HELP
IF /I "%1" == "VS11" GOTO :VS11
IF /I "%1" == "VS12" GOTO :VS12
IF /I "%1" == "VS14" GOTO :VS14
IF /I "%1" == "VS15" GOTO :VS15
IF /I "%1" == "VC11" GOTO :VS11
IF /I "%1" == "VC12" GOTO :VS12
IF /I "%1" == "VC14" GOTO :VS14
IF /I "%1" == "VC15" GOTO :VS15
IF /I "%1" == "LIST" GOTO :LIST
IF /I "%1" == "LS" GOTO :LS
ECHO Error: unknown command: %1
GOTO :HELP
GOTO :EOF
REM EMD:MAIN
:HELP
ECHO Usage:
ECHO %~n0 [options] [command] [params]
ECHO Options:
ECHO -h, --help
ECHO -a, --arch ARCH Set processor architecture
ECHO ARCH is target or host_target
ECHO ? shows help of vcvarsall
ECHO default is %PROCESSOR_ARCHITECTURE%
ECHO Commands:
ECHO TARGET TARGET is one of vs11, vs12, vs14 and vs15
ECHO list list available TARGET
ECHO ls ls vcvarsall.bat
GOTO :EOF
REM END:HELP
:VS11
IF NOT "%VisualStudioVersion%" == "" GOTO :VCVARSALL_WAS_ALREADY_RUN
CALL :SHIFT_ARGS 1 %*
CALL "%VS11_VCVARSALL%" %OPT_ARCH% %ARGS%
:VS12_END
IF NOT "%OPT_VERBOSE%" == "" ECHO vavarsall finished
GOTO :EOF
REM END:VC11
:VS12
IF NOT "%VisualStudioVersion%" == "" GOTO :VCVARSALL_WAS_ALREADY_RUN
CALL :SHIFT_ARGS 1 %*
CALL "%VS12_VCVARSALL%" %OPT_ARCH% %ARGS%
:VS12_END
IF NOT "%OPT_VERBOSE%" == "" ECHO vavarsall finished
GOTO :EOF
REM END:VC12
:VS14
IF NOT "%VisualStudioVersion%" == "" GOTO :VCVARSALL_WAS_ALREADY_RUN
CALL :SHIFT_ARGS 1 %*
CALL "%VS14_VCVARSALL%" %OPT_ARCH% %ARGS%
IF NOT "%OPT_VERBOSE%" == "" ECHO vavarsall finished
GOTO :EOF
REM END:VC14
:VS15
IF NOT "%VisualStudioVersion%" == "" GOTO :VCVARSALL_WAS_ALREADY_RUN
CALL :SHIFT_ARGS 1 %*
CALL "%VS14_VCVARSALL%" %OPT_ARCH% %ARGS%
IF NOT "%OPT_VERBOSE%" == "" ECHO vavarsall finished
GOTO :EOF
REM END:VC15
:VCVARSALL_WAS_ALREADY_RUN
ECHO Warning: vcvarsall was already run.
SET VisualStudioVersion
GOTO :EOF
REM END:VCVARSALL_WAS_ALREADY_RUN
:LIST
IF EXIST "%VS11_VCVARSALL%" ECHO VS11
IF EXIST "%VS12_VCVARSALL%" ECHO VS12
IF EXIST "%VS14_VCVARSALL%" ECHO VS14
IF EXIST "%VS15_VCVARSALL%" ECHO VS15
GOTO :EOF
REM END:LIST
:LS
IF EXIST "%VS11_VCVARSALL%" ECHO "%VS11_VCVARSALL%"
IF EXIST "%VS12_VCVARSALL%" ECHO "%VS12_VCVARSALL%"
IF EXIST "%VS14_VCVARSALL%" ECHO "%VS14_VCVARSALL%"
IF EXIST "%VS15_VCVARSALL%" ECHO "%VS15_VCVARSALL%"
GOTO :EOF
REM END:LS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment