| 1 |
|
| 2 |
if not "%VSINSTALLDIR%" == "" goto vsinstdir |
| 3 |
|
| 4 |
rem InnoSetup からビルドする時は、標準で環境変数に設定されている |
| 5 |
rem Visual Studioが選択される。VS2019決め打ちでビルドしたい場合は |
| 6 |
rem 下記 goto 文を有効にすること。 |
| 7 |
rem goto check_2019 |
| 8 |
|
| 9 |
if "%VS80COMNTOOLS%" == "" goto check_2008 |
| 10 |
if not exist "%VS80COMNTOOLS%\vsvars32.bat" goto check_2008 |
| 11 |
call "%VS80COMNTOOLS%\vsvars32.bat" |
| 12 |
goto vs2005 |
| 13 |
|
| 14 |
:check_2008 |
| 15 |
if "%VS90COMNTOOLS%" == "" goto check_2010 |
| 16 |
if not exist "%VS90COMNTOOLS%\vsvars32.bat" goto check_2010 |
| 17 |
call "%VS90COMNTOOLS%\vsvars32.bat" |
| 18 |
goto vs2008 |
| 19 |
|
| 20 |
:check_2010 |
| 21 |
if "%VS100COMNTOOLS%" == "" goto check_2012 |
| 22 |
if not exist "%VS100COMNTOOLS%\vsvars32.bat" goto check_2012 |
| 23 |
call "%VS100COMNTOOLS%\vsvars32.bat" |
| 24 |
goto vs2010 |
| 25 |
|
| 26 |
:check_2012 |
| 27 |
if "%VS110COMNTOOLS%" == "" goto check_2013 |
| 28 |
if not exist "%VS110COMNTOOLS%\VsDevCmd.bat" goto check_2013 |
| 29 |
call "%VS110COMNTOOLS%\VsDevCmd.bat" |
| 30 |
goto vs2012 |
| 31 |
|
| 32 |
:check_2013 |
| 33 |
if "%VS120COMNTOOLS%" == "" goto check_2015 |
| 34 |
if not exist "%VS120COMNTOOLS%\VsDevCmd.bat" goto check_2015 |
| 35 |
call "%VS120COMNTOOLS%\VsDevCmd.bat" |
| 36 |
goto vs2013 |
| 37 |
|
| 38 |
:check_2015 |
| 39 |
if "%VS140COMNTOOLS%" == "" goto check_2017 |
| 40 |
if not exist "%VS140COMNTOOLS%\VsDevCmd.bat" goto check_2017 |
| 41 |
call "%VS140COMNTOOLS%\VsDevCmd.bat" |
| 42 |
goto vs2015 |
| 43 |
|
| 44 |
:check_2017 |
| 45 |
if "%VS150COMNTOOLS%" == "" goto check_2019 |
| 46 |
if not exist "%VS150COMNTOOLS%\VsDevCmd.bat" goto check_2019 |
| 47 |
call "%VS150COMNTOOLS%\VsDevCmd.bat" |
| 48 |
goto vs2017 |
| 49 |
|
| 50 |
:check_2019 |
| 51 |
if "%VS160COMNTOOLS%" == "" goto check_2022 |
| 52 |
if not exist "%VS160COMNTOOLS%\VsDevCmd.bat" goto novs |
| 53 |
call "%VS160COMNTOOLS%\VsDevCmd.bat" |
| 54 |
goto vs2019 |
| 55 |
|
| 56 |
:check_2022 |
| 57 |
if "%VS170COMNTOOLS%" == "" goto novs |
| 58 |
if not exist "%VS170COMNTOOLS%\VsDevCmd.bat" goto novs |
| 59 |
call "%VS170COMNTOOLS%\VsDevCmd.bat" |
| 60 |
goto vs2022 |
| 61 |
|
| 62 |
:novs |
| 63 |
@echo off |
| 64 |
echo "Can't find Visual Studio" |
| 65 |
echo. |
| 66 |
echo InnoSetupからVS2019でビルドするためには、環境変数を設定してください。 |
| 67 |
echo. |
| 68 |
echo 例 |
| 69 |
echo VS160COMNTOOLS=c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\ |
| 70 |
@echo on |
| 71 |
pause |
| 72 |
goto fail |
| 73 |
|
| 74 |
:vsinstdir |
| 75 |
rem Visual Studioのバージョン判別 |
| 76 |
set VSCMNDIR="%VSINSTALLDIR%\Common7\Tools\" |
| 77 |
set VSCMNDIR=%VSCMNDIR:\\=\% |
| 78 |
|
| 79 |
if /I %VSCMNDIR% EQU "%VS80COMNTOOLS%" goto vs2005 |
| 80 |
if /I %VSCMNDIR% EQU "%VS90COMNTOOLS%" goto vs2008 |
| 81 |
if /I %VSCMNDIR% EQU "%VS100COMNTOOLS%" goto vs2010 |
| 82 |
if /I %VSCMNDIR% EQU "%VS110COMNTOOLS%" goto vs2012 |
| 83 |
if /I %VSCMNDIR% EQU "%VS120COMNTOOLS%" goto vs2013 |
| 84 |
if /I %VSCMNDIR% EQU "%VS140COMNTOOLS%" goto vs2015 |
| 85 |
if /I %VSCMNDIR% EQU "%VS150COMNTOOLS%" goto vs2017 |
| 86 |
if /I %VSCMNDIR% EQU "%VS160COMNTOOLS%" goto vs2019 |
| 87 |
if /I %VSCMNDIR% EQU "%VS170COMNTOOLS%" goto vs2022 |
| 88 |
|
| 89 |
echo Unknown Visual Studio version |
| 90 |
goto fail |
| 91 |
|
| 92 |
:vs2005 |
| 93 |
set TERATERMSLN=..\teraterm\ttermpro.v8.sln |
| 94 |
set TTSSHSLN=..\ttssh2\ttssh.v8.sln |
| 95 |
set TTPROXYSLN=..\TTProxy\TTProxy.v8.sln |
| 96 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v8.sln |
| 97 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v8.sln |
| 98 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v8.sln |
| 99 |
set CYGWINSLN=..\CYGWIN\cygwin.v8.sln |
| 100 |
|
| 101 |
rem VS2005にSP1が適用されているかをチェックする |
| 102 |
cl /? 2>&1 | findstr /C:"14.00.50727.762" |
| 103 |
echo %errorlevel% |
| 104 |
|
| 105 |
if %errorlevel% == 0 ( |
| 106 |
goto vsend |
| 107 |
) |
| 108 |
|
| 109 |
echo "VS2005にSP1が適用されていないようです" |
| 110 |
set /P ANS2005="続行しますか?(y/n)" |
| 111 |
if "%ANS2005%"=="y" ( |
| 112 |
goto vsend |
| 113 |
) else ( |
| 114 |
echo "build.bat を終了します" |
| 115 |
goto fail |
| 116 |
) |
| 117 |
|
| 118 |
|
| 119 |
:vs2008 |
| 120 |
set TERATERMSLN=..\teraterm\ttermpro.v9.sln |
| 121 |
set TTSSHSLN=..\ttssh2\ttssh.v9.sln |
| 122 |
set TTPROXYSLN=..\TTProxy\TTProxy.v9.sln |
| 123 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v9.sln |
| 124 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v9.sln |
| 125 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v9.sln |
| 126 |
set CYGWINSLN=..\CYGWIN\cygwin.v9.sln |
| 127 |
goto vsend |
| 128 |
|
| 129 |
:vs2010 |
| 130 |
set TERATERMSLN=..\teraterm\ttermpro.v10.sln |
| 131 |
set TTSSHSLN=..\ttssh2\ttssh.v10.sln |
| 132 |
set TTPROXYSLN=..\TTProxy\TTProxy.v10.sln |
| 133 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v10.sln |
| 134 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v10.sln |
| 135 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v10.sln |
| 136 |
set CYGWINSLN=..\CYGWIN\cygwin.v10.sln |
| 137 |
goto vsend |
| 138 |
|
| 139 |
:vs2012 |
| 140 |
set TERATERMSLN=..\teraterm\ttermpro.v11.sln |
| 141 |
set TTSSHSLN=..\ttssh2\ttssh.v11.sln |
| 142 |
set TTPROXYSLN=..\TTProxy\TTProxy.v11.sln |
| 143 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v11.sln |
| 144 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v11.sln |
| 145 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v11.sln |
| 146 |
set CYGWINSLN=..\CYGWIN\cygwin.v11.sln |
| 147 |
goto vsend |
| 148 |
|
| 149 |
:vs2013 |
| 150 |
set TERATERMSLN=..\teraterm\ttermpro.v12.sln |
| 151 |
set TTSSHSLN=..\ttssh2\ttssh.v12.sln |
| 152 |
set TTPROXYSLN=..\TTProxy\TTProxy.v12.sln |
| 153 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v12.sln |
| 154 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v12.sln |
| 155 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v12.sln |
| 156 |
set CYGWINSLN=..\CYGWIN\cygwin.v12.sln |
| 157 |
goto vsend |
| 158 |
|
| 159 |
:vs2015 |
| 160 |
set TERATERMSLN=..\teraterm\ttermpro.v14.sln |
| 161 |
set TTSSHSLN=..\ttssh2\ttssh.v14.sln |
| 162 |
set TTPROXYSLN=..\TTProxy\TTProxy.v14.sln |
| 163 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v14.sln |
| 164 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v14.sln |
| 165 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v14.sln |
| 166 |
set CYGWINSLN=..\CYGWIN\cygwin.v14.sln |
| 167 |
goto vsend |
| 168 |
|
| 169 |
:vs2017 |
| 170 |
set TERATERMSLN=..\teraterm\ttermpro.v15.sln |
| 171 |
set TTSSHSLN=..\ttssh2\ttssh.v15.sln |
| 172 |
set TTPROXYSLN=..\TTProxy\TTProxy.v15.sln |
| 173 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v15.sln |
| 174 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v15.sln |
| 175 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v15.sln |
| 176 |
set CYGWINSLN=..\CYGWIN\cygwin.v15.sln |
| 177 |
goto vsend |
| 178 |
|
| 179 |
:vs2019 |
| 180 |
set TERATERMSLN=..\teraterm\ttermpro.v16.sln |
| 181 |
set TTSSHSLN=..\ttssh2\ttssh.v16.sln |
| 182 |
set TTPROXYSLN=..\TTProxy\TTProxy.v16.sln |
| 183 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v16.sln |
| 184 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v16.sln |
| 185 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v16.sln |
| 186 |
set CYGWINSLN=..\CYGWIN\cygwin.v16.sln |
| 187 |
goto vsend |
| 188 |
|
| 189 |
:vs2022 |
| 190 |
set TERATERMSLN=..\teraterm\ttermpro.v17.sln |
| 191 |
set TTSSHSLN=..\ttssh2\ttssh.v17.sln |
| 192 |
set TTPROXYSLN=..\TTProxy\TTProxy.v17.sln |
| 193 |
set TTXKANJISLN=..\TTXKanjiMenu\ttxkanjimenu.v17.sln |
| 194 |
set TTPMENUSLN=..\ttpmenu\ttpmenu.v17.sln |
| 195 |
set TTXSAMPLESLN=..\TTXSamples\TTXSamples.v17.sln |
| 196 |
set CYGWINSLN=..\CYGWIN\cygwin.v17.sln |
| 197 |
goto vsend |
| 198 |
|
| 199 |
:vsend |
| 200 |
|
| 201 |
set BUILD=build |
| 202 |
if "%1" == "rebuild" (set BUILD=rebuild) |
| 203 |
pushd %~dp0 |
| 204 |
|
| 205 |
rem ライブラリをコンパイル |
| 206 |
pushd ..\libs |
| 207 |
CALL buildall.bat |
| 208 |
if ERRORLEVEL 1 ( |
| 209 |
echo "build.bat を終了します" |
| 210 |
goto fail |
| 211 |
) |
| 212 |
popd |
| 213 |
|
| 214 |
|
| 215 |
rem リビジョンが変化していれば svnversion.h を更新する。 |
| 216 |
call ..\buildtools\svnrev\svnrev.bat |
| 217 |
|
| 218 |
|
| 219 |
devenv /%BUILD% release %TERATERMSLN% |
| 220 |
if ERRORLEVEL 1 goto fail |
| 221 |
devenv /%BUILD% release %TTSSHSLN% |
| 222 |
if ERRORLEVEL 1 goto fail |
| 223 |
devenv /%BUILD% release %TTPROXYSLN% |
| 224 |
if ERRORLEVEL 1 goto fail |
| 225 |
devenv /%BUILD% release %TTXKANJISLN% |
| 226 |
if ERRORLEVEL 1 goto fail |
| 227 |
devenv /%BUILD% release %TTPMENUSLN% |
| 228 |
if ERRORLEVEL 1 goto fail |
| 229 |
devenv /%BUILD% release %TTXSAMPLESLN% |
| 230 |
if ERRORLEVEL 1 goto fail |
| 231 |
devenv /%BUILD% release %CYGWINSLN% |
| 232 |
if ERRORLEVEL 1 goto fail |
| 233 |
|
| 234 |
rem cygterm をコンパイル |
| 235 |
pushd ..\cygwin\cygterm |
| 236 |
if "%BUILD%" == "rebuild" ( |
| 237 |
make clean |
| 238 |
make cygterm+-x86_64-clean |
| 239 |
) |
| 240 |
make cygterm+-x86_64 -j |
| 241 |
make archive |
| 242 |
popd |
| 243 |
|
| 244 |
rem msys2term |
| 245 |
if not exist c:\msys64\usr\bin\msys-2.0.dll goto msys2term_pass |
| 246 |
setlocal |
| 247 |
PATH=C:\msys64\usr\bin |
| 248 |
pushd ..\cygwin\cygterm |
| 249 |
if "%BUILD%" == "rebuild" ( |
| 250 |
make clean |
| 251 |
make msys2term-clean |
| 252 |
) |
| 253 |
make msys2term -j |
| 254 |
endlocal |
| 255 |
popd |
| 256 |
|
| 257 |
:msys2term_pass |
| 258 |
|
| 259 |
rem lng ファイルを作成 |
| 260 |
call makelang.bat |
| 261 |
|
| 262 |
popd |
| 263 |
exit /b 0 |
| 264 |
|
| 265 |
:fail |
| 266 |
popd |
| 267 |
exit /b 1 |