From 557b7eccebb544c7cf087694901c5e78dc01a887 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Wed, 28 Nov 2018 23:28:34 +0900 Subject: [PATCH 01/15] Fix: Merge find-*.bat to find-tools.bat --- build-chm.bat | 4 +- build-installer.bat | 4 +- build-sln.bat | 4 +- find-tools.bat | 89 ++++++++++++++++++++++++++++++++ run-cppcheck.bat | 4 +- tools/CppCheck/find-CppCheck.bat | 32 ------------ tools/CppCheck/readme.md | 23 --------- tools/ISCC/find-ISCC.bat | 32 ------------ tools/ISCC/readme.md | 23 --------- tools/hhc/find-hhc.bat | 32 ------------ tools/hhc/readme.md | 55 -------------------- tools/msbuild/find-msbuild.bat | 32 ------------ tools/msbuild/readme.md | 23 --------- tools/zip/find-7z.bat | 41 --------------- tools/zip/listzip.bat | 2 - tools/zip/unzip.bat | 2 - tools/zip/zip.bat | 2 - 17 files changed, 97 insertions(+), 307 deletions(-) create mode 100644 find-tools.bat delete mode 100644 tools/CppCheck/find-CppCheck.bat delete mode 100644 tools/CppCheck/readme.md delete mode 100644 tools/ISCC/find-ISCC.bat delete mode 100644 tools/ISCC/readme.md delete mode 100644 tools/hhc/find-hhc.bat delete mode 100644 tools/hhc/readme.md delete mode 100644 tools/msbuild/find-msbuild.bat delete mode 100644 tools/msbuild/readme.md delete mode 100644 tools/zip/find-7z.bat diff --git a/build-chm.bat b/build-chm.bat index c565d3e05a..abb7ce775f 100644 --- a/build-chm.bat +++ b/build-chm.bat @@ -1,5 +1,5 @@ -call %~dp0tools\hhc\find-hhc.bat -if "%CMD_HHC%" == "" ( +call %~dp0find-tools.bat +if not defined CMD_HHC ( echo hhc.exe was not found. exit /b 1 ) diff --git a/build-installer.bat b/build-installer.bat index fa414a7769..28186e76a0 100644 --- a/build-installer.bat +++ b/build-installer.bat @@ -21,8 +21,8 @@ if "%configuration%" == "Release" ( exit /b 1 ) -call %~dp0tools\ISCC\find-ISCC.bat -if "%CMD_ISCC%" == "" ( +call %~dp0find-tools.bat +if not defined CMD_ISCC ( echo ISCC.exe was not found. exit /b 1 ) diff --git a/build-sln.bat b/build-sln.bat index f363cd7506..a0bdd0683f 100644 --- a/build-sln.bat +++ b/build-sln.bat @@ -19,8 +19,8 @@ if "%configuration%" == "Release" ( call :showhelp %0 exit /b 1 ) -call %~dp0tools\msbuild\find-msbuild.bat -if "%CMD_MSBUILD%" == "" ( +call %~dp0find-tools.bat +if not defined CMD_MSBUILD ( echo msbuild.exe was not found. exit /b 1 ) diff --git a/find-tools.bat b/find-tools.bat new file mode 100644 index 0000000000..f5ad9a7bea --- /dev/null +++ b/find-tools.bat @@ -0,0 +1,89 @@ +:: ビルドツールのパスを見つける +:: +:: ===7z.exeのパスを探索する手順=== +:: 1. CMD_7Zがセットされていれば利用する +:: 2. パスが通っていればそれを使う +:: 3. デフォルトのインストールパスで見つかればそれを使う +:: 4. 1~3で見つからなければCMD_7Zを削除する + +@echo off + +:: CMD_*が定義されていなければ探索ルーチンへ +echo find-tools.bat +if not defined CMD_7Z call :7z 2> nul +if not defined CMD_HHC call :hhc 2> nul +if not defined CMD_ISCC call :iscc 2> nul +if not defined CMD_CPPCHECK call :cppcheck 2> nul +if not defined CMD_DOXYGEN call :doxygen 2> nul +if not defined CMD_MSBUILD call :msbuild 2> nul +echo ├─ CMD_7Z=%CMD_7Z% +echo ├─ CMD_HHC=%CMD_HHC% +echo ├─ CMD_ISCC=%CMD_ISCC% +echo ├─ CMD_CPPCHECK=%CMD_CPPCHECK% +echo ├─ CMD_DOXYGEN=%CMD_DOXYGEN% +echo └─ CMD_MSBUILD=%CMD_MSBUILD% +exit /b + +:7z +setlocal +PATH=%PATH%;%ProgramFiles%\7-Zip\;%ProgramFiles(x86)%\7-Zip\;%ProgramW6432%\7-Zip\; +:: whereの出力の1行目をCMD_7Zに代入 +for /f "usebackq delims=" %%a in (`where 7z`) do ( + endlocal && set "CMD_7Z=%%a" + exit /b +) +endlocal +exit /b + +:hhc +setlocal +PATH=%PATH%;%ProgramFiles%\HTML Help Workshop\;%ProgramFiles(x86)%\HTML Help Workshop\;%ProgramW6432%\HTML Help Workshop\; +for /f "usebackq delims=" %%a in (`where hhc.exe`) do ( + endlocal && set "CMD_HHC=%%a" + exit /b +) +endlocal +exit /b + +:iscc +setlocal +PATH=%PATH%;%ProgramFiles%\Inno Setup 5\;%ProgramFiles(x86)%\Inno Setup 5\;%ProgramW6432%\Inno Setup 5\; +for /f "usebackq delims=" %%a in (`where ISCC.exe`) do ( + endlocal && set "CMD_ISCC=%%a" + exit /b +) +endlocal +exit /b + +:cppcheck +setlocal +PATH=%PATH%;%ProgramFiles%\cppcheck\;%ProgramFiles(x86)%\cppcheck\;%ProgramW6432%\cppcheck\; +for /f "usebackq delims=" %%a in (`where cppecheck.exe`) do ( + endlocal && set "CMD_CPPCHECK=%%a" + exit /b +) +endlocal +exit /b + +:doxygen +setlocal +PATH=%PATH%;%ProgramFiles%\doxygen\bin\;%ProgramFiles(x86)%\doxygen\bin\;%ProgramW6432%\doxygen\bin\; +for /f "usebackq delims=" %%a in (`where doxygen.exe`) do ( + endlocal && set "CMD_CPPCHECK=%%a" + exit /b +) +endlocal +exit /b + +:msbuild +:: ref https://github.com/Microsoft/vswhere +setlocal +PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\; +for /f "usebackq tokens=1* delims=: " %%i in (`vswhere -latest -requires Microsoft.Component.MSBuild`) do ( + if /i "%%i"=="installationPath" ( + endlocal && set "CMD_MSBUILD=%%j\MSBuild\15.0\Bin\MSBuild.exe" + exit /b + ) +) +endlocal +exit /b diff --git a/run-cppcheck.bat b/run-cppcheck.bat index 47e490a920..d085269c89 100644 --- a/run-cppcheck.bat +++ b/run-cppcheck.bat @@ -21,8 +21,8 @@ if "%configuration%" == "Release" ( exit /b 1 ) -call %~dp0tools\CppCheck\find-CppCheck.bat -if "%CMD_CPPCHECK%" == "" ( +call %~dp0find-tools.bat +if not defined CMD_CPPCHECK ( echo cppcheck.exe was not found. so skip to run it. exit /b 0 ) diff --git a/tools/CppCheck/find-CppCheck.bat b/tools/CppCheck/find-CppCheck.bat deleted file mode 100644 index 6c904248eb..0000000000 --- a/tools/CppCheck/find-CppCheck.bat +++ /dev/null @@ -1,32 +0,0 @@ -@rem see readme.md -@echo off -set CMD_CPPCHECK= -set PATH_CPPCHECK_1= -set PATH_CPPCHECK_2= -set PATH_CPPCHECK_3= - -if not "%ProgramFiles%" == "" set "PATH_CPPCHECK_1=%ProgramFiles%\Cppcheck\cppcheck.exe" -if not "%ProgramFiles(x86)%" == "" set "PATH_CPPCHECK_2=%ProgramFiles(x86)%\Cppcheck\cppcheck.exe" -if not "%ProgramW6432%" == "" set "PATH_CPPCHECK_3=%ProgramW6432%\Cppcheck\cppcheck.exe" - -set RESULT_PATH_CPPCHECK_1=-- -set RESULT_PATH_CPPCHECK_2=-- -set RESULT_PATH_CPPCHECK_3=-- - -if exist "%PATH_CPPCHECK_1%" ( - set RESULT_PATH_CPPCHECK_1=OK - set "CMD_CPPCHECK=%PATH_CPPCHECK_1%" -) else if exist "%PATH_CPPCHECK_2%" ( - set RESULT_PATH_CPPCHECK_2=OK - set "CMD_CPPCHECK=%PATH_CPPCHECK_2%" -) else if exist "%PATH_CPPCHECK_3%" ( - set RESULT_PATH_CPPCHECK_3=OK - set "CMD_CPPCHECK=%PATH_CPPCHECK_3%" -) - -@echo %RESULT_PATH_CPPCHECK_1% %PATH_CPPCHECK_1% -@echo %RESULT_PATH_CPPCHECK_2% %PATH_CPPCHECK_2% -@echo %RESULT_PATH_CPPCHECK_3% %PATH_CPPCHECK_3% -@echo. -@echo CMD_CPPCHECK "%CMD_CPPCHECK%" -@echo. diff --git a/tools/CppCheck/readme.md b/tools/CppCheck/readme.md deleted file mode 100644 index ebaf3b6eff..0000000000 --- a/tools/CppCheck/readme.md +++ /dev/null @@ -1,23 +0,0 @@ - - -- [cppcheck のパスを見つけるバッチファイル](#cppcheck-のパスを見つけるバッチファイル) - - [ロジック](#ロジック) - - [バッチファイルでのはまりポイント](#バッチファイルでのはまりポイント) - - - -# cppcheck のパスを見つけるバッチファイル - -cppcheck.exe のパスを見つけて 環境変数 `CMD_CPPCHECK` に設定する - -## ロジック - -以下の順番でパスを検索して、見つかったパスを環境変数 `CMD_CPPCHECK` にセットする。 - -- %ProgramFiles%\Cppcheck\cppcheck.exe -- %ProgramFiles(x86)%\Cppcheck\cppcheck.exe -- %ProgramW6432%\Cppcheck\cppcheck.exe - -## バッチファイルでのはまりポイント - -[hhc.exe の readme](../hhc/readme.md) を参照 diff --git a/tools/ISCC/find-ISCC.bat b/tools/ISCC/find-ISCC.bat deleted file mode 100644 index b470c335a1..0000000000 --- a/tools/ISCC/find-ISCC.bat +++ /dev/null @@ -1,32 +0,0 @@ -@rem see readme.md -@echo off -set CMD_ISCC= -set PATH_ISCC_1= -set PATH_ISCC_2= -set PATH_ISCC_3= - -if not "%ProgramFiles%" == "" set "PATH_ISCC_1=%ProgramFiles%\Inno Setup 5\ISCC.exe" -if not "%ProgramFiles(x86)%" == "" set "PATH_ISCC_2=%ProgramFiles(x86)%\Inno Setup 5\ISCC.exe" -if not "%ProgramW6432%" == "" set "PATH_ISCC_3=%ProgramW6432%\Inno Setup 5\ISCC.exe" - -set RESULT_PATH_ISCC_1=-- -set RESULT_PATH_ISCC_2=-- -set RESULT_PATH_ISCC_3=-- - -if exist "%PATH_ISCC_1%" ( - set RESULT_PATH_ISCC_1=OK - set "CMD_ISCC=%PATH_ISCC_1%" -) else if exist "%PATH_ISCC_2%" ( - set RESULT_PATH_ISCC_2=OK - set "CMD_ISCC=%PATH_ISCC_2%" -) else if exist "%PATH_ISCC_3%" ( - set RESULT_PATH_ISCC_3=OK - set "CMD_ISCC=%PATH_ISCC_3%" -) - -@echo %RESULT_PATH_ISCC_1% %PATH_ISCC_1% -@echo %RESULT_PATH_ISCC_2% %PATH_ISCC_2% -@echo %RESULT_PATH_ISCC_3% %PATH_ISCC_3% -@echo. -@echo CMD_ISCC "%CMD_ISCC%" -@echo. diff --git a/tools/ISCC/readme.md b/tools/ISCC/readme.md deleted file mode 100644 index 13ed0676cb..0000000000 --- a/tools/ISCC/readme.md +++ /dev/null @@ -1,23 +0,0 @@ - - -- [Inno Setup Compiler のパスを見つけるバッチファイル](#inno-setup-compiler-のパスを見つけるバッチファイル) - - [ロジック](#ロジック) - - [バッチファイルでのはまりポイント](#バッチファイルでのはまりポイント) - - - -# Inno Setup Compiler のパスを見つけるバッチファイル - -ISCC.exe のパスを見つけて 環境変数 `CMD_ISCC` に設定する - -## ロジック - -以下の順番でパスを検索して、見つかったパスを環境変数 `CMD_ISCC` にセットする。 - -- %ProgramFiles%\Inno Setup 5\ISCC.exe -- %ProgramFiles(x86)%\Inno Setup 5\ISCC.exe -- %ProgramW6432%\Inno Setup 5\ISCC.exe - -## バッチファイルでのはまりポイント - -[hhc.exe の readme](../hhc/readme.md) を参照 diff --git a/tools/hhc/find-hhc.bat b/tools/hhc/find-hhc.bat deleted file mode 100644 index 64e25bb20f..0000000000 --- a/tools/hhc/find-hhc.bat +++ /dev/null @@ -1,32 +0,0 @@ -@rem see readme.md -@echo off -set CMD_HHC= -set PATH_HHC_1= -set PATH_HHC_2= -set PATH_HHC_3= - -if not "%ProgramFiles%" == "" set "PATH_HHC_1=%ProgramFiles%\HTML Help Workshop\hhc.exe" -if not "%ProgramFiles(x86)%" == "" set "PATH_HHC_2=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe" -if not "%ProgramW6432%" == "" set "PATH_HHC_3=%ProgramW6432%\HTML Help Workshop\hhc.exe" - -set RESULT_PATH_HHC_1=-- -set RESULT_PATH_HHC_2=-- -set RESULT_PATH_HHC_3=-- - -if exist "%PATH_HHC_1%" ( - set RESULT_PATH_HHC_1=OK - set "CMD_HHC=%PATH_HHC_1%" -) else if exist "%PATH_HHC_2%" ( - set RESULT_PATH_HHC_2=OK - set "CMD_HHC=%PATH_HHC_2%" -) else if exist "%PATH_HHC_3%" ( - set RESULT_PATH_HHC_3=OK - set "CMD_HHC=%PATH_HHC_3%" -) - -@echo %RESULT_PATH_HHC_1% %PATH_HHC_1% -@echo %RESULT_PATH_HHC_2% %PATH_HHC_2% -@echo %RESULT_PATH_HHC_3% %PATH_HHC_3% -@echo. -@echo CMD_HHC "%CMD_HHC%" -@echo. diff --git a/tools/hhc/readme.md b/tools/hhc/readme.md deleted file mode 100644 index 64ad1e161c..0000000000 --- a/tools/hhc/readme.md +++ /dev/null @@ -1,55 +0,0 @@ - - -- [HTML Help Compiler のパスを見つけるバッチファイル](#html-help-compiler-のパスを見つけるバッチファイル) - - [ロジック](#ロジック) - - [バッチファイルでのはまりポイント](#バッチファイルでのはまりポイント) - - - -# HTML Help Compiler のパスを見つけるバッチファイル - -hhc.exe のパスを見つけて 環境変数 `CMD_HHC` に設定する - -## ロジック - -以下の順番でパスを検索して、見つかったパスを環境変数 `CMD_HHC` にセットする。 - -- %ProgramFiles%\HTML Help Workshop\hhc.exe -- %ProgramFiles(x86)%\HTML Help Workshop\hhc.exe -- %ProgramW6432%\HTML Help Workshop\hhc.exe - -## バッチファイルでのはまりポイント - -たとえば以下のようなバッチファイルでの記述の場合 - -``` -if not "%ProgramFiles(x86)%" == "" set HHC_PATH2=%ProgramFiles(x86)%\HTML Help Workshop\hhc.exe -if exist "%HHC_PATH2%" ( - set CMD_HHC=%HHC_PATH2% -) -``` - -以下のような意味不明のエラーメッセージが出る - -``` -\HTML の使い方が誤っています。 -``` - -上記のバッチファイルは実行時に以下のような内容になる。 - -``` -if exist "C:\Program Files (x86)\HTML Help Workshop\hhc.exe" ( - set CMD_HHC=C:\Program Files (x86)\HTML Help Workshop\hhc.exe -) -``` - -if の構文の `(` が `C:\Program Files (x86)\HTML Help Workshop\hhc.exe` の `)` と対応すると -解釈されるので `\HTML` が if の条件が成立したときのコマンドと認識されるのでエラーになる。 - -このエラーを回避するために以下のように、代入文の変数名 ~ 値の部分全体をダブルクオートで囲む。 - -``` -if exist "%HHC_PATH2%" ( - set "CMD_HHC=%HHC_PATH2%" -) -``` diff --git a/tools/msbuild/find-msbuild.bat b/tools/msbuild/find-msbuild.bat deleted file mode 100644 index 657b615937..0000000000 --- a/tools/msbuild/find-msbuild.bat +++ /dev/null @@ -1,32 +0,0 @@ -@rem see readme.md -@echo off -set CMD_MSBUILD= -set PATH_MSBUILD_1= -set PATH_MSBUILD_2= -set PATH_MSBUILD_3= - -if not "%ProgramFiles%" == "" set "PATH_MSBUILD_1=%ProgramFiles%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" -if not "%ProgramFiles(x86)%" == "" set "PATH_MSBUILD_2=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" -if not "%ProgramW6432%" == "" set "PATH_MSBUILD_3=%ProgramW6432%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" - -set RESULT_PATH_MSBUILD_1=-- -set RESULT_PATH_MSBUILD_2=-- -set RESULT_PATH_MSBUILD_3=-- - -if exist "%PATH_MSBUILD_1%" ( - set RESULT_PATH_MSBUILD_1=OK - set "CMD_MSBUILD=%PATH_MSBUILD_1%" -) else if exist "%PATH_MSBUILD_2%" ( - set RESULT_PATH_MSBUILD_2=OK - set "CMD_MSBUILD=%PATH_MSBUILD_2%" -) else if exist "%PATH_MSBUILD_3%" ( - set RESULT_PATH_MSBUILD_3=OK - set "CMD_MSBUILD=%PATH_MSBUILD_3%" -) - -@echo %RESULT_PATH_MSBUILD_1% %PATH_MSBUILD_1% -@echo %RESULT_PATH_MSBUILD_2% %PATH_MSBUILD_2% -@echo %RESULT_PATH_MSBUILD_3% %PATH_MSBUILD_3% -@echo. -@echo CMD_MSBUILD "%CMD_MSBUILD%" -@echo. diff --git a/tools/msbuild/readme.md b/tools/msbuild/readme.md deleted file mode 100644 index a9648198ba..0000000000 --- a/tools/msbuild/readme.md +++ /dev/null @@ -1,23 +0,0 @@ - - -- [msbuild のパスを見つけるバッチファイル](#msbuild-のパスを見つけるバッチファイル) - - [ロジック](#ロジック) - - [バッチファイルでのはまりポイント](#バッチファイルでのはまりポイント) - - - -# msbuild のパスを見つけるバッチファイル - -msbuild.exe のパスを見つけて 環境変数 `CMD_MSBUILD` に設定する - -## ロジック - -以下の順番でパスを検索して、見つかったパスを環境変数 `CMD_MSBUILD` にセットする。 - -- %ProgramFiles%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe -- %ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe -- %ProgramW6432%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe - -## バッチファイルでのはまりポイント - -[hhc.exe の readme](../hhc/readme.md) を参照 diff --git a/tools/zip/find-7z.bat b/tools/zip/find-7z.bat deleted file mode 100644 index 2cbe8c474e..0000000000 --- a/tools/zip/find-7z.bat +++ /dev/null @@ -1,41 +0,0 @@ -@rem see readme.md -@echo off -set CMD_7Z= -if "%FORCE_POWERSHELL_ZIP%" == "1" ( - exit /b 0 -) -set PATH_7Z_1= -set PATH_7Z_2= -set PATH_7Z_3= - -if not "%ProgramFiles%" == "" set "PATH_7Z_1=%ProgramFiles%\7-Zip\7z.exe" -if not "%ProgramFiles(x86)%" == "" set "PATH_7Z_2=%ProgramFiles(x86)%\7-Zip\7z.exe" -if not "%ProgramW6432%" == "" set "PATH_7Z_3=%ProgramW6432%\7-Zip\7z.exe" - -set RESULT_PATH_7Z_0=-- -set RESULT_PATH_7Z_1=-- -set RESULT_PATH_7Z_2=-- -set RESULT_PATH_7Z_3=-- - -where 7z 1>nul 2>&1 -if not errorlevel 1 ( - set RESULT_PATH_7Z_0=OK - set CMD_7Z=7z -) else if exist "%PATH_7Z_1%" ( - set RESULT_PATH_7Z_1=OK - set "CMD_7Z=%PATH_7Z_1%" -) else if exist "%PATH_7Z_2%" ( - set RESULT_PATH_7Z_2=OK - set "CMD_7Z=%PATH_7Z_2%" -) else if exist "%PATH_7Z_3%" ( - set RESULT_PATH_7Z_3=OK - set "CMD_7Z=%PATH_7Z_3%" -) - -@echo %RESULT_PATH_7Z_0% 7z.exe -@echo %RESULT_PATH_7Z_1% %PATH_7Z_1% -@echo %RESULT_PATH_7Z_2% %PATH_7Z_2% -@echo %RESULT_PATH_7Z_3% %PATH_7Z_3% -@echo. -@echo CMD_7Z "%CMD_7Z%" -@echo. diff --git a/tools/zip/listzip.bat b/tools/zip/listzip.bat index f55abf2271..d490fd55fa 100644 --- a/tools/zip/listzip.bat +++ b/tools/zip/listzip.bat @@ -1,8 +1,6 @@ @echo off set SRCZIP=%1 -call %~dp0find-7z.bat - @echo examining %SRCZIP%. @rem CMD_7Z contains double quotes. if "%CMD_7Z%" == "" ( diff --git a/tools/zip/unzip.bat b/tools/zip/unzip.bat index bd8ae5caf1..dee8411a33 100644 --- a/tools/zip/unzip.bat +++ b/tools/zip/unzip.bat @@ -4,8 +4,6 @@ set OUTDIR=%2 if exist "%OUTDIR%" rmdir /s /q "%OUTDIR%" -call %~dp0find-7z.bat - @echo extracting %SRCZIP%. @rem CMD_7Z contains double quotes. if "%CMD_7Z%" == "" ( diff --git a/tools/zip/zip.bat b/tools/zip/zip.bat index 38c6ac8a1c..e102f83e6a 100644 --- a/tools/zip/zip.bat +++ b/tools/zip/zip.bat @@ -4,8 +4,6 @@ set SRCDIR=%2 if exist "%DSTZIP%" del "%DSTZIP%" -call %~dp0find-7z.bat - @echo archiving %SRCZIP%. @rem CMD_7Z contains double quotes. if "%CMD_7Z%" == "" ( From 2f4405d9e835da0d6ce4922f210573d0b41afa4b Mon Sep 17 00:00:00 2001 From: KageShiron Date: Thu, 29 Nov 2018 23:38:43 +0900 Subject: [PATCH 02/15] =?UTF-8?q?Fix:=20find-tools.bat=E5=B0=8E=E5=85=A5?= =?UTF-8?q?=E6=99=82=E3=81=AE=E4=BF=AE=E6=AD=A3=E6=BC=8F=E3=82=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FORCE_POWERSHELL_ZIPオプションを廃止し、該当ドキュメントを除去 - find-tools.batを1度しか呼び出さないように修正 - zip関連バッチでfind-toolsを呼ぶように - find-doxygenの消し忘れ - find-tools.batをShift JISに --- build.md | 25 ------------------- find-tools.bat | 45 +++++++++++++++++++--------------- tools/doxygen/find-doxygen.bat | 32 ------------------------ tools/doxygen/readme.md | 17 ------------- tools/zip/listzip.bat | 1 + tools/zip/unzip.bat | 1 + tools/zip/zip.bat | 1 + 7 files changed, 28 insertions(+), 94 deletions(-) delete mode 100644 tools/doxygen/find-doxygen.bat delete mode 100644 tools/doxygen/readme.md diff --git a/build.md b/build.md index 4a21aac487..4991ba10fa 100644 --- a/build.md +++ b/build.md @@ -128,31 +128,6 @@ build-sln.bat x64 Release build-sln.bat x64 Debug ``` - -### Powershell によるZIPファイルの圧縮、解凍、内容確認の強制 - -`7z.exe` へのパスが通っている場合または `C:\Program Files\7-Zip\7z.exe` が存在している場合は -`7z.exe` を、ZIP ファイルの解凍、圧縮、内容確認に使用します。 - -上記以外の場合は [powershell によるスクリプト](tools/zip/readme.md) により処理を行います。 - -`7z.exe` のほうがはるかに処理速度が速いので `7z.exe` が利用可能なら [powershell によるスクリプト](tools/zip/readme.md) を -使う理由は殆どないのですが、デバッグ目的で強制的に [powershell によるスクリプト](tools/zip/readme.md) を使用する手段を -提供します。 - -コマンドラインでビルドするときに事前に FORCE_POWERSHELL_ZIP を 1 に設定することにより -強制的に [powershell によるスクリプト](tools/zip/readme.md) を使用します。 - -コマンド実行例 - -``` -set FORCE_POWERSHELL_ZIP=1 -build-sln.bat Win32 Release -build-sln.bat Win32 Debug -build-sln.bat x64 Release -build-sln.bat x64 Debug -``` - ### MinGW w64 ビルド 生成されるバイナリは正しく動作しないが、MinGWでのビルドも可能。 diff --git a/find-tools.bat b/find-tools.bat index f5ad9a7bea..8b9d4cab8e 100644 --- a/find-tools.bat +++ b/find-tools.bat @@ -1,14 +1,19 @@ -:: ビルドツールのパスを見つける +:: rhc[̃pX‚ :: -:: ===7z.exeのパスを探索する手順=== -:: 1. CMD_7Zがセットされていれば利用する -:: 2. パスが通っていればそれを使う -:: 3. デフォルトのインストールパスで見つかればそれを使う -:: 4. 1~3で見つからなければCMD_7Zを削除する +:: ===7z.exẽpXT菇=== +:: 1. CMD_7ZZbgĂΗp +:: 2. pXʂĂ΂g +:: 3. ftHg̃CXg[pXŌ‚΂g +:: 4. 1`3Ō‚ȂCMD_7Z폜 @echo off -:: CMD_*が定義されていなければ探索ルーチンへ +if defined FIND_TOOLS_CALLED ( + echo find-tools.bat already called + exit /b +) + +:: CMD_*`ĂȂΒT[` echo find-tools.bat if not defined CMD_7Z call :7z 2> nul if not defined CMD_HHC call :hhc 2> nul @@ -16,18 +21,19 @@ if not defined CMD_ISCC call :iscc 2> nul if not defined CMD_CPPCHECK call :cppcheck 2> nul if not defined CMD_DOXYGEN call :doxygen 2> nul if not defined CMD_MSBUILD call :msbuild 2> nul -echo ├─ CMD_7Z=%CMD_7Z% -echo ├─ CMD_HHC=%CMD_HHC% -echo ├─ CMD_ISCC=%CMD_ISCC% -echo ├─ CMD_CPPCHECK=%CMD_CPPCHECK% -echo ├─ CMD_DOXYGEN=%CMD_DOXYGEN% -echo └─ CMD_MSBUILD=%CMD_MSBUILD% +echo CMD_7Z=%CMD_7Z% +echo CMD_HHC=%CMD_HHC% +echo CMD_ISCC=%CMD_ISCC% +echo CMD_CPPCHECK=%CMD_CPPCHECK% +echo CMD_DOXYGEN=%CMD_DOXYGEN% +echo CMD_MSBUILD=%CMD_MSBUILD% +set FIND_TOOLS_CALLED=1 exit /b :7z setlocal PATH=%PATH%;%ProgramFiles%\7-Zip\;%ProgramFiles(x86)%\7-Zip\;%ProgramW6432%\7-Zip\; -:: whereの出力の1行目をCMD_7Zに代入 +:: wherȅo͂1sڂCMD_7Zɑ for /f "usebackq delims=" %%a in (`where 7z`) do ( endlocal && set "CMD_7Z=%%a" exit /b @@ -78,12 +84,11 @@ exit /b :msbuild :: ref https://github.com/Microsoft/vswhere setlocal -PATH=%PATH%;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\; -for /f "usebackq tokens=1* delims=: " %%i in (`vswhere -latest -requires Microsoft.Component.MSBuild`) do ( - if /i "%%i"=="installationPath" ( - endlocal && set "CMD_MSBUILD=%%j\MSBuild\15.0\Bin\MSBuild.exe" - exit /b - ) +PATH=%PATH%;%ProgramFiles%\Microsoft Visual Studio\Installer\;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\;%ProgramW6432%\Microsoft Visual Studio\Installer\; +for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( + set InstallDir=%%i + endlocal && set "CMD_MSBUILD=%%j\MSBuild\15.0\Bin\MSBuild.exe" + exit /b ) endlocal exit /b diff --git a/tools/doxygen/find-doxygen.bat b/tools/doxygen/find-doxygen.bat deleted file mode 100644 index a11b4ea641..0000000000 --- a/tools/doxygen/find-doxygen.bat +++ /dev/null @@ -1,32 +0,0 @@ -@rem see readme.md -@echo off -set CMD_DOXYGEN= -set PATH_DOXYGEN_1= -set PATH_DOXYGEN_2= -set PATH_DOXYGEN_3= - -if not "%ProgramFiles%" == "" set "PATH_DOXYGEN_1=%ProgramFiles%\doxygen\bin\doxygen.exe" -if not "%ProgramFiles(x86)%" == "" set "PATH_DOXYGEN_2=%ProgramFiles(x86)%\doxygen\bin\doxygen.exe" -if not "%ProgramW6432%" == "" set "PATH_DOXYGEN_3=%ProgramW6432%\doxygen\bin\doxygen.exe" - -set RESULT_PATH_DOXYGEN_1=-- -set RESULT_PATH_DOXYGEN_2=-- -set RESULT_PATH_DOXYGEN_3=-- - -if exist "%PATH_DOXYGEN_1%" ( - set RESULT_PATH_DOXYGEN_1=OK - set "CMD_DOXYGEN=%PATH_DOXYGEN_1%" -) else if exist "%PATH_DOXYGEN_2%" ( - set RESULT_PATH_DOXYGEN_2=OK - set "CMD_DOXYGEN=%PATH_DOXYGEN_2%" -) else if exist "%PATH_DOXYGEN_3%" ( - set RESULT_PATH_DOXYGEN_3=OK - set "CMD_DOXYGEN=%PATH_DOXYGEN_3%" -) - -@echo %RESULT_PATH_DOXYGEN_1% %PATH_DOXYGEN_1% -@echo %RESULT_PATH_DOXYGEN_2% %PATH_DOXYGEN_2% -@echo %RESULT_PATH_DOXYGEN_3% %PATH_DOXYGEN_3% -@echo. -@echo CMD_DOXYGEN "%CMD_DOXYGEN%" -@echo. diff --git a/tools/doxygen/readme.md b/tools/doxygen/readme.md deleted file mode 100644 index 09025306f7..0000000000 --- a/tools/doxygen/readme.md +++ /dev/null @@ -1,17 +0,0 @@ - - -- [doxygen のパスを見つけるバッチファイル](#doxygen-のパスを見つけるバッチファイル) - - [ロジック](#ロジック) - - -# doxygen のパスを見つけるバッチファイル - -doxygen.exe のパスを見つけて 環境変数 `CMD_DOXYGEN` に設定する - -## ロジック - -以下の順番でパスを検索して、見つかったパスを環境変数 `CMD_DOXYGEN` にセットする。 - -- %ProgramFiles%\doxygen\bin\doxygen.exe -- %ProgramFiles(x86)%\doxygen\bin\doxygen.exe -- %ProgramW6432%\doxygen\bin\doxygen.exe diff --git a/tools/zip/listzip.bat b/tools/zip/listzip.bat index d490fd55fa..0b890c36a8 100644 --- a/tools/zip/listzip.bat +++ b/tools/zip/listzip.bat @@ -1,6 +1,7 @@ @echo off set SRCZIP=%1 +call %~dp0../../find-tools.bat @echo examining %SRCZIP%. @rem CMD_7Z contains double quotes. if "%CMD_7Z%" == "" ( diff --git a/tools/zip/unzip.bat b/tools/zip/unzip.bat index dee8411a33..04d7c43037 100644 --- a/tools/zip/unzip.bat +++ b/tools/zip/unzip.bat @@ -4,6 +4,7 @@ set OUTDIR=%2 if exist "%OUTDIR%" rmdir /s /q "%OUTDIR%" +call %~dp0../../find-tools.bat @echo extracting %SRCZIP%. @rem CMD_7Z contains double quotes. if "%CMD_7Z%" == "" ( diff --git a/tools/zip/zip.bat b/tools/zip/zip.bat index e102f83e6a..40743ade53 100644 --- a/tools/zip/zip.bat +++ b/tools/zip/zip.bat @@ -4,6 +4,7 @@ set SRCDIR=%2 if exist "%DSTZIP%" del "%DSTZIP%" +call %~dp0../../find-tools.bat @echo archiving %SRCZIP%. @rem CMD_7Z contains double quotes. if "%CMD_7Z%" == "" ( From ef37b98dfa2e71043747fbd996ba45d19375aa24 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Thu, 29 Nov 2018 23:42:38 +0900 Subject: [PATCH 03/15] FIX: CMD_CPPCHECK -> CMD_DOXYGEN --- find-tools.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/find-tools.bat b/find-tools.bat index 8b9d4cab8e..cd5916b063 100644 --- a/find-tools.bat +++ b/find-tools.bat @@ -75,7 +75,7 @@ exit /b setlocal PATH=%PATH%;%ProgramFiles%\doxygen\bin\;%ProgramFiles(x86)%\doxygen\bin\;%ProgramW6432%\doxygen\bin\; for /f "usebackq delims=" %%a in (`where doxygen.exe`) do ( - endlocal && set "CMD_CPPCHECK=%%a" + endlocal && set "CMD_DOXYGEN=%%a" exit /b ) endlocal From 028d8e411590a08a11fb53ce1ae3a6e1815f5a84 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Thu, 29 Nov 2018 23:46:30 +0900 Subject: [PATCH 04/15] Fix: find msbuild bug --- find-tools.bat | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/find-tools.bat b/find-tools.bat index cd5916b063..1794336fbe 100644 --- a/find-tools.bat +++ b/find-tools.bat @@ -86,8 +86,7 @@ exit /b setlocal PATH=%PATH%;%ProgramFiles%\Microsoft Visual Studio\Installer\;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\;%ProgramW6432%\Microsoft Visual Studio\Installer\; for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( - set InstallDir=%%i - endlocal && set "CMD_MSBUILD=%%j\MSBuild\15.0\Bin\MSBuild.exe" + endlocal && set "CMD_MSBUILD=%%i\MSBuild\15.0\Bin\MSBuild.exe" exit /b ) endlocal From 869830dd0a47218cacd29d2b4c2870771e4c3a14 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Fri, 14 Dec 2018 02:37:07 +0900 Subject: [PATCH 05/15] =?UTF-8?q?find-tools.bat=E3=81=AE=E6=95=B4=E7=90=86?= =?UTF-8?q?=E3=81=A8=E7=A7=BB=E5=8B=95=20=E3=83=89=E3=82=AD=E3=83=A5?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E8=A8=98=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-chm.bat | 2 +- build-installer.bat | 2 +- build-sln.bat | 2 +- find-tools.bat | 93 ------------------------------------------- tools/find-tools.bat | 86 +++++++++++++++++++++++++++++++++++++++ tools/find-tools.md | 35 ++++++++++++++++ tools/zip/listzip.bat | 13 +++--- tools/zip/unzip.bat | 5 +-- tools/zip/zip.bat | 6 +-- 9 files changed, 135 insertions(+), 109 deletions(-) delete mode 100644 find-tools.bat create mode 100644 tools/find-tools.bat create mode 100644 tools/find-tools.md diff --git a/build-chm.bat b/build-chm.bat index abb7ce775f..c146c49690 100644 --- a/build-chm.bat +++ b/build-chm.bat @@ -1,4 +1,4 @@ -call %~dp0find-tools.bat +if not defined CMD_HHC %~dp0tools\find-tools.bat if not defined CMD_HHC ( echo hhc.exe was not found. exit /b 1 diff --git a/build-installer.bat b/build-installer.bat index 28186e76a0..eeae517ba8 100644 --- a/build-installer.bat +++ b/build-installer.bat @@ -21,7 +21,7 @@ if "%configuration%" == "Release" ( exit /b 1 ) -call %~dp0find-tools.bat +if not defined CMD_ISCC call %~dp0tools\find-tools.bat if not defined CMD_ISCC ( echo ISCC.exe was not found. exit /b 1 diff --git a/build-sln.bat b/build-sln.bat index a0bdd0683f..ba91c7a87c 100644 --- a/build-sln.bat +++ b/build-sln.bat @@ -19,7 +19,7 @@ if "%configuration%" == "Release" ( call :showhelp %0 exit /b 1 ) -call %~dp0find-tools.bat +if not defined CMD_MSBUILD call %~dp0tools\find-tools.bat if not defined CMD_MSBUILD ( echo msbuild.exe was not found. exit /b 1 diff --git a/find-tools.bat b/find-tools.bat deleted file mode 100644 index 1794336fbe..0000000000 --- a/find-tools.bat +++ /dev/null @@ -1,93 +0,0 @@ -:: rhc[̃pX‚ -:: -:: ===7z.exẽpXT菇=== -:: 1. CMD_7ZZbgĂΗp -:: 2. pXʂĂ΂g -:: 3. ftHg̃CXg[pXŌ‚΂g -:: 4. 1`3Ō‚ȂCMD_7Z폜 - -@echo off - -if defined FIND_TOOLS_CALLED ( - echo find-tools.bat already called - exit /b -) - -:: CMD_*`ĂȂΒT[` -echo find-tools.bat -if not defined CMD_7Z call :7z 2> nul -if not defined CMD_HHC call :hhc 2> nul -if not defined CMD_ISCC call :iscc 2> nul -if not defined CMD_CPPCHECK call :cppcheck 2> nul -if not defined CMD_DOXYGEN call :doxygen 2> nul -if not defined CMD_MSBUILD call :msbuild 2> nul -echo CMD_7Z=%CMD_7Z% -echo CMD_HHC=%CMD_HHC% -echo CMD_ISCC=%CMD_ISCC% -echo CMD_CPPCHECK=%CMD_CPPCHECK% -echo CMD_DOXYGEN=%CMD_DOXYGEN% -echo CMD_MSBUILD=%CMD_MSBUILD% -set FIND_TOOLS_CALLED=1 -exit /b - -:7z -setlocal -PATH=%PATH%;%ProgramFiles%\7-Zip\;%ProgramFiles(x86)%\7-Zip\;%ProgramW6432%\7-Zip\; -:: wherȅo͂1sڂCMD_7Zɑ -for /f "usebackq delims=" %%a in (`where 7z`) do ( - endlocal && set "CMD_7Z=%%a" - exit /b -) -endlocal -exit /b - -:hhc -setlocal -PATH=%PATH%;%ProgramFiles%\HTML Help Workshop\;%ProgramFiles(x86)%\HTML Help Workshop\;%ProgramW6432%\HTML Help Workshop\; -for /f "usebackq delims=" %%a in (`where hhc.exe`) do ( - endlocal && set "CMD_HHC=%%a" - exit /b -) -endlocal -exit /b - -:iscc -setlocal -PATH=%PATH%;%ProgramFiles%\Inno Setup 5\;%ProgramFiles(x86)%\Inno Setup 5\;%ProgramW6432%\Inno Setup 5\; -for /f "usebackq delims=" %%a in (`where ISCC.exe`) do ( - endlocal && set "CMD_ISCC=%%a" - exit /b -) -endlocal -exit /b - -:cppcheck -setlocal -PATH=%PATH%;%ProgramFiles%\cppcheck\;%ProgramFiles(x86)%\cppcheck\;%ProgramW6432%\cppcheck\; -for /f "usebackq delims=" %%a in (`where cppecheck.exe`) do ( - endlocal && set "CMD_CPPCHECK=%%a" - exit /b -) -endlocal -exit /b - -:doxygen -setlocal -PATH=%PATH%;%ProgramFiles%\doxygen\bin\;%ProgramFiles(x86)%\doxygen\bin\;%ProgramW6432%\doxygen\bin\; -for /f "usebackq delims=" %%a in (`where doxygen.exe`) do ( - endlocal && set "CMD_DOXYGEN=%%a" - exit /b -) -endlocal -exit /b - -:msbuild -:: ref https://github.com/Microsoft/vswhere -setlocal -PATH=%PATH%;%ProgramFiles%\Microsoft Visual Studio\Installer\;%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\;%ProgramW6432%\Microsoft Visual Studio\Installer\; -for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( - endlocal && set "CMD_MSBUILD=%%i\MSBuild\15.0\Bin\MSBuild.exe" - exit /b -) -endlocal -exit /b diff --git a/tools/find-tools.bat b/tools/find-tools.bat new file mode 100644 index 0000000000..5f66c53ff1 --- /dev/null +++ b/tools/find-tools.bat @@ -0,0 +1,86 @@ +@echo off +setlocal + +if defined FIND_TOOLS_CALLED ( + echo find-tools.bat already called + exit /b +) + +echo find-tools.bat +if not defined CMD_7Z call :7z 2> nul +if not defined CMD_HHC call :hhc 2> nul +if not defined CMD_ISCC call :iscc 2> nul +if not defined CMD_CPPCHECK call :cppcheck 2> nul +if not defined CMD_DOXYGEN call :doxygen 2> nul +if not defined CMD_MSBUILD call :msbuild 2> nul +echo ^|- CMD_7Z=%CMD_7Z% +echo ^|- CMD_HHC=%CMD_HHC% +echo ^|- CMD_ISCC=%CMD_ISCC% +echo ^|- CMD_CPPCHECK=%CMD_CPPCHECK% +echo ^|- CMD_DOXYGEN=%CMD_DOXYGEN% +echo ^|- CMD_MSBUILD=%CMD_MSBUILD% +endlocal && set "CMD_7Z=%CMD_7Z%" && set "CMD_HHC=%CMD_HHC%" && set "CMD_ISCC=%CMD_ISCC%" && set "CMD_CPPCHECK=%CMD_CPPCHECK%" && set "CMD_DOXYGEN=%CMD_DOXYGEN%"&& set "CMD_MSBUILD=%CMD_MSBUILD%" +set FIND_TOOLS_CALLED=1 +exit /b + +:7z +set APPDIR=7-Zip +set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; +for /f "usebackq delims=" %%a in (`where $PATH2:7z`) do ( + set "CMD_7Z=%%a" + exit /b +) +exit /b + +:hhc +set APPDIR=HTML Help Workshop +set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; +for /f "usebackq delims=" %%a in (`where $PATH2:hhc.exe`) do ( + set "CMD_HHC=%%a" + exit /b +) +exit /b + +:iscc +set APPDIR=Inno Setup 5 +set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; +for /f "usebackq delims=" %%a in (`where $PATH2:ISCC.exe`) do ( + set "CMD_ISCC=%%a" + exit /b +) +exit /b + +:cppcheck +set APPDIR=cppcheck +set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; +for /f "usebackq delims=" %%a in (`where $PATH2:cppecheck.exe`) do ( + set "CMD_CPPCHECK=%%a" + exit /b +) +exit /b + +:doxygen +set APPDIR=doxygen\bin +set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; +for /f "usebackq delims=" %%a in (`where $PATH2:doxygen.exe`) do ( + set "CMD_DOXYGEN=%%a" + exit /b +) +exit /b + +:: ref https://github.com/Microsoft/vswhere +:msbuild +for /f "usebackq delims=" %%a in (`where MSBuild.exe`) do ( + set "CMD_MSBUILD=%%a" + exit /b +) + +setlocal +set APPDIR=Microsoft Visual Studio\Installer +PATH=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; +for /f "usebackq tokens=*" %%i in (`vswhere -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( + endlocal && set "CMD_MSBUILD=%%i\MSBuild\15.0\Bin\MSBuild.exe" + exit /b +) +endlocal +exit /b diff --git a/tools/find-tools.md b/tools/find-tools.md new file mode 100644 index 0000000000..f9eb9788d5 --- /dev/null +++ b/tools/find-tools.md @@ -0,0 +1,35 @@ +# ビルド関連ツールのパスを探す +外部ツールを利用する前にデフォルトのインストールパスにある実行ファイルを自動で検索します。 +デフォルトパスにインストールしていない場合や別の実行ファイルを使いたい場合、実行前にパスを通しておくかCMD_7Zなどの対応する環境変数に絶対パスをセットしておいてください。 + +## 外部ツールの一覧 +| ツール名 | 環境変数 | ソフトのデフォルトパス | ファイル名 | +| ------------------ | ------------ | ---------------------- | ------------ | +| 7-Zip | CMD_7Z | 7-Zip | 7z | +| HTML Help Workshop | CMD_HHC | HTML Help Workshop% | hhc.exe | +| Inno Setup 5 | CMD_ISCC | Inno Setup 5 | ISCC.exe | +| cppcheck | CMD_CPPCHECK | cppcheck | cppcheck.exe | +| doxygen | CMD_DOXYGEN | doxygen\bin | doxygen.exe | +| MSBuild | CMD_MSBUILD | 特殊 | | + +## MSBuild以外の探索手順 +MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 + +1. CMD_7Zがセットされていればそれを使う +2. パスが通っていればそれを使う +3. 以下のディレクトリ内の「ソフトのデフォルトパス」で見つかればそれを使う + * %ProgramFiles% + * %ProgramFiles(x86) + * %ProgramW6432% +4. 1~3で見つからなければCMD_7Zには何もセットしない + +## MSBuild +1. CMD_MSBUILDがセットされていればそれを使う +2. パスが通っていればそれを使う +3. Visual Studio 2017以降にあるMicrosoft Visual Studio\Installer\vswhere.exeを利用し、msbuild.exeを探す。 +4. 1~3で見つからなければCMD_MSBUILDには何もセットしない + + +### 参照 +* https://github.com/Microsoft/vswhere +* https://github.com/Microsoft/vswhere/wiki/Find-MSBuild diff --git a/tools/zip/listzip.bat b/tools/zip/listzip.bat index 0b890c36a8..e97e7e9afc 100644 --- a/tools/zip/listzip.bat +++ b/tools/zip/listzip.bat @@ -1,13 +1,12 @@ @echo off set SRCZIP=%1 -call %~dp0../../find-tools.bat -@echo examining %SRCZIP%. -@rem CMD_7Z contains double quotes. -if "%CMD_7Z%" == "" ( - @echo ------------------------------------------------------- - @echo ---- you can make this faster by installing 7-zip. ---- - @echo ------------------------------------------------------- +echo examining %SRCZIP%. +if not defined CMD_7Z call %~dp0../find-tools.bat +if not defined CMD_7Z ( + echo ------------------------------------------------------- + echo ---- you can make this faster by installing 7-zip. ---- + echo ------------------------------------------------------- powershell -ExecutionPolicy RemoteSigned -File %~dp0listzip.ps1 %SRCZIP% ) else ( "%CMD_7Z%" l "%SRCZIP%" diff --git a/tools/zip/unzip.bat b/tools/zip/unzip.bat index 04d7c43037..4b2cd2b04a 100644 --- a/tools/zip/unzip.bat +++ b/tools/zip/unzip.bat @@ -4,10 +4,9 @@ set OUTDIR=%2 if exist "%OUTDIR%" rmdir /s /q "%OUTDIR%" -call %~dp0../../find-tools.bat @echo extracting %SRCZIP%. -@rem CMD_7Z contains double quotes. -if "%CMD_7Z%" == "" ( +if not defined CMD_7Z call %~dp0../find-tools.bat +if not defined CMD_7Z ( @echo ------------------------------------------------------- @echo ---- you can make this faster by installing 7-zip. ---- @echo ------------------------------------------------------- diff --git a/tools/zip/zip.bat b/tools/zip/zip.bat index 40743ade53..1c6b08c001 100644 --- a/tools/zip/zip.bat +++ b/tools/zip/zip.bat @@ -3,10 +3,10 @@ set DSTZIP=%1 set SRCDIR=%2 if exist "%DSTZIP%" del "%DSTZIP%" - -call %~dp0../../find-tools.bat @echo archiving %SRCZIP%. -@rem CMD_7Z contains double quotes. + +if not defined CMD_7Z call %~dp0../find-tools.bat +if not defined CMD_7Z ( if "%CMD_7Z%" == "" ( @echo ------------------------------------------------------- @echo ---- you can make this faster by installing 7-zip. ---- From 4a196f9b01d33d9d491519c60c32fd42b77ef9ed Mon Sep 17 00:00:00 2001 From: KageShiron Date: Fri, 14 Dec 2018 04:26:09 +0900 Subject: [PATCH 06/15] =?UTF-8?q?=E3=83=90=E3=83=83=E3=83=81=E3=81=AE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=BC=8F=E3=82=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/zip/zip.bat | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/zip/zip.bat b/tools/zip/zip.bat index 1c6b08c001..f00ce18a4c 100644 --- a/tools/zip/zip.bat +++ b/tools/zip/zip.bat @@ -7,7 +7,6 @@ if exist "%DSTZIP%" del "%DSTZIP%" if not defined CMD_7Z call %~dp0../find-tools.bat if not defined CMD_7Z ( -if "%CMD_7Z%" == "" ( @echo ------------------------------------------------------- @echo ---- you can make this faster by installing 7-zip. ---- @echo ------------------------------------------------------- From 07f80a97b5755a086c50734d94b115f301d421b7 Mon Sep 17 00:00:00 2001 From: kageshiron Date: Sat, 5 Jan 2019 12:16:49 +0900 Subject: [PATCH 07/15] =?UTF-8?q?Fix:=20POWERFORCE=5FPOWERSHELL=5FZIP?= =?UTF-8?q?=E3=81=AE=E8=BF=BD=E5=8A=A0=20=E8=AA=A4=E8=A8=98=E3=81=AE?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/find-tools.bat | 3 +++ tools/find-tools.md | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/tools/find-tools.bat b/tools/find-tools.bat index 5f66c53ff1..dc1ad8a107 100644 --- a/tools/find-tools.bat +++ b/tools/find-tools.bat @@ -24,6 +24,9 @@ set FIND_TOOLS_CALLED=1 exit /b :7z +if "%FORCE_POWERSHELL_ZIP%" == "1" ( + exit /b +) set APPDIR=7-Zip set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; for /f "usebackq delims=" %%a in (`where $PATH2:7z`) do ( diff --git a/tools/find-tools.md b/tools/find-tools.md index f9eb9788d5..a0b007ab8a 100644 --- a/tools/find-tools.md +++ b/tools/find-tools.md @@ -1,4 +1,11 @@ -# ビルド関連ツールのパスを探す +- [ビルド関連ツールのパスを探す](#%E3%83%93%E3%83%AB%E3%83%89%E9%96%A2%E9%80%A3%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%83%91%E3%82%B9%E3%82%92%E6%8E%A2%E3%81%99) + - [外部ツールの一覧](#%E5%A4%96%E9%83%A8%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7) + - [MSBuild以外の探索手順](#msbuild%E4%BB%A5%E5%A4%96%E3%81%AE%E6%8E%A2%E7%B4%A2%E6%89%8B%E9%A0%86) + - [MSBuild](#msbuild) + - [zipの処理に7zではなくPowerShellを強制する](#zip%E3%81%AE%E5%87%A6%E7%90%86%E3%81%AB7z%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8Fpowershell%E3%82%92%E5%BC%B7%E5%88%B6%E3%81%99%E3%82%8B) + - [参照](#%E5%8F%82%E7%85%A7) + +# ビルド関連ツールのパスを探す 外部ツールを利用する前にデフォルトのインストールパスにある実行ファイルを自動で検索します。 デフォルトパスにインストールしていない場合や別の実行ファイルを使いたい場合、実行前にパスを通しておくかCMD_7Zなどの対応する環境変数に絶対パスをセットしておいてください。 @@ -6,7 +13,7 @@ | ツール名 | 環境変数 | ソフトのデフォルトパス | ファイル名 | | ------------------ | ------------ | ---------------------- | ------------ | | 7-Zip | CMD_7Z | 7-Zip | 7z | -| HTML Help Workshop | CMD_HHC | HTML Help Workshop% | hhc.exe | +| HTML Help Workshop | CMD_HHC | HTML Help Workshop | hhc.exe | | Inno Setup 5 | CMD_ISCC | Inno Setup 5 | ISCC.exe | | cppcheck | CMD_CPPCHECK | cppcheck | cppcheck.exe | | doxygen | CMD_DOXYGEN | doxygen\bin | doxygen.exe | @@ -19,7 +26,7 @@ MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 2. パスが通っていればそれを使う 3. 以下のディレクトリ内の「ソフトのデフォルトパス」で見つかればそれを使う * %ProgramFiles% - * %ProgramFiles(x86) + * %ProgramFiles(x86)% * %ProgramW6432% 4. 1~3で見つからなければCMD_7Zには何もセットしない @@ -29,6 +36,9 @@ MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 3. Visual Studio 2017以降にあるMicrosoft Visual Studio\Installer\vswhere.exeを利用し、msbuild.exeを探す。 4. 1~3で見つからなければCMD_MSBUILDには何もセットしない +## zipの処理に7zではなくPowerShellを強制する +事前に環境変数の`FORCE_POWERSHELL_ZIP`を1にセットすることで、7zの検索をスキップできます。 +7z未インストールの環境で[PowerShellによるzipの処理](zip/readme.md)が正しく行われるかを検証する際に活用できます。 ### 参照 * https://github.com/Microsoft/vswhere From c62f70437a6111c695e5c5b84959e0c37e54c0d7 Mon Sep 17 00:00:00 2001 From: kageshiron Date: Tue, 8 Jan 2019 01:06:34 +0900 Subject: [PATCH 08/15] Fix: find-tools.bat path --- run-cppcheck.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-cppcheck.bat b/run-cppcheck.bat index d085269c89..b67f6a18dc 100644 --- a/run-cppcheck.bat +++ b/run-cppcheck.bat @@ -21,7 +21,7 @@ if "%configuration%" == "Release" ( exit /b 1 ) -call %~dp0find-tools.bat +call %~dp0tools\find-tools.bat if not defined CMD_CPPCHECK ( echo cppcheck.exe was not found. so skip to run it. exit /b 0 From d54f99d1e8ee722cd8f49ed56439373969cea235 Mon Sep 17 00:00:00 2001 From: kageshiron Date: Tue, 8 Jan 2019 12:38:26 +0900 Subject: [PATCH 09/15] =?UTF-8?q?call=E3=82=84=E6=94=B9=E8=A1=8C=E3=81=8C?= =?UTF-8?q?=E8=AC=9D=E3=81=A3=E3=81=A6=E6=B6=88=E3=81=88=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-chm.bat | 2 +- build.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build-chm.bat b/build-chm.bat index c146c49690..651b9bf25f 100644 --- a/build-chm.bat +++ b/build-chm.bat @@ -1,4 +1,4 @@ -if not defined CMD_HHC %~dp0tools\find-tools.bat +if not defined CMD_HHC call %~dp0tools\find-tools.bat if not defined CMD_HHC ( echo hhc.exe was not found. exit /b 1 diff --git a/build.md b/build.md index 4991ba10fa..61a6f645c0 100644 --- a/build.md +++ b/build.md @@ -157,3 +157,4 @@ cd sakura_core mingw32-make githash stdafx sakura_rc.o mingw32-make -j4 ``` + From e97c6212cc11219f4b02f60fdb99a7e3e3efe0ec Mon Sep 17 00:00:00 2001 From: kageshiron Date: Tue, 8 Jan 2019 12:39:59 +0900 Subject: [PATCH 10/15] =?UTF-8?q?FORCE=5FPOWERSHELL=5FZIP=E3=81=AE?= =?UTF-8?q?=E8=AA=AC=E6=98=8E=E3=82=92=E5=BE=A9=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/build.md b/build.md index 61a6f645c0..4a21aac487 100644 --- a/build.md +++ b/build.md @@ -128,6 +128,31 @@ build-sln.bat x64 Release build-sln.bat x64 Debug ``` + +### Powershell によるZIPファイルの圧縮、解凍、内容確認の強制 + +`7z.exe` へのパスが通っている場合または `C:\Program Files\7-Zip\7z.exe` が存在している場合は +`7z.exe` を、ZIP ファイルの解凍、圧縮、内容確認に使用します。 + +上記以外の場合は [powershell によるスクリプト](tools/zip/readme.md) により処理を行います。 + +`7z.exe` のほうがはるかに処理速度が速いので `7z.exe` が利用可能なら [powershell によるスクリプト](tools/zip/readme.md) を +使う理由は殆どないのですが、デバッグ目的で強制的に [powershell によるスクリプト](tools/zip/readme.md) を使用する手段を +提供します。 + +コマンドラインでビルドするときに事前に FORCE_POWERSHELL_ZIP を 1 に設定することにより +強制的に [powershell によるスクリプト](tools/zip/readme.md) を使用します。 + +コマンド実行例 + +``` +set FORCE_POWERSHELL_ZIP=1 +build-sln.bat Win32 Release +build-sln.bat Win32 Debug +build-sln.bat x64 Release +build-sln.bat x64 Debug +``` + ### MinGW w64 ビルド 生成されるバイナリは正しく動作しないが、MinGWでのビルドも可能。 @@ -157,4 +182,3 @@ cd sakura_core mingw32-make githash stdafx sakura_rc.o mingw32-make -j4 ``` - From 46f84fda7399358697a1d7309d5dbd319c91c51f Mon Sep 17 00:00:00 2001 From: kageshiron Date: Tue, 8 Jan 2019 22:56:51 +0900 Subject: [PATCH 11/15] =?UTF-8?q?cppcheck.exe=E3=81=AEtypo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/find-tools.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/find-tools.bat b/tools/find-tools.bat index dc1ad8a107..6686965184 100644 --- a/tools/find-tools.bat +++ b/tools/find-tools.bat @@ -56,7 +56,7 @@ exit /b :cppcheck set APPDIR=cppcheck set PATH2=%PATH%;%ProgramFiles%\%APPDIR%\;%ProgramFiles(x86)%\%APPDIR%\;%ProgramW6432%\%APPDIR%\; -for /f "usebackq delims=" %%a in (`where $PATH2:cppecheck.exe`) do ( +for /f "usebackq delims=" %%a in (`where $PATH2:cppcheck.exe`) do ( set "CMD_CPPCHECK=%%a" exit /b ) From 70dc302f6b261f094474e1ae4d12546ceec228dc Mon Sep 17 00:00:00 2001 From: kageshiron Date: Wed, 9 Jan 2019 00:50:37 +0900 Subject: [PATCH 12/15] fix run-doxygen.bat --- run-doxygen.bat | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/run-doxygen.bat b/run-doxygen.bat index 93ce207cdc..7d96e49888 100644 --- a/run-doxygen.bat +++ b/run-doxygen.bat @@ -1,6 +1,5 @@ call sakura\githash.bat "%~dp0sakura_core" -call tools\hhc\find-hhc.bat -call tools\doxygen\find-doxygen.bat +call tools\find-tools.bat if exist html rmdir /s /q html From 2bfd37baa3ba9a1494c62705bf8c04bcffd80f23 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Sun, 13 Jan 2019 20:34:04 +0900 Subject: [PATCH 13/15] =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sakura/externals.bat | 74 +++++++++++++++++++++++++++++++++++++++++++ tools/find-tools.md | 29 +++++++++-------- tools/zip/listzip.bat | 14 ++++---- tools/zip/unzip.bat | 2 +- tools/zip/zip.bat | 2 +- 5 files changed, 99 insertions(+), 22 deletions(-) create mode 100644 sakura/externals.bat diff --git a/sakura/externals.bat b/sakura/externals.bat new file mode 100644 index 0000000000..2323daaeb3 --- /dev/null +++ b/sakura/externals.bat @@ -0,0 +1,74 @@ +@echo on + +: ---- arguments ---- : +: "Win32" or "x64" +set PLATFORM=%1 +echo PLATFORM=%PLATFORM% + +: "Debug" or "Release" +set CONFIGURATION=%2 +echo CONFIGURATION=%CONFIGURATION% + +if "%platform%" == "Win32" ( + @rem OK +) else if "%platform%" == "x64" ( + @rem OK +) else ( + call :showhelp %0 + exit /b 1 +) + +if "%configuration%" == "Release" ( + @rem OK +) else if "%configuration%" == "Debug" ( + @rem OK +) else ( + call :showhelp %0 + exit /b 1 +) + +set DEST_DIR=%~dp0..\%PLATFORM%\%CONFIGURATION%\ +set EX_DIR=%~dp0..\installer\externals + +set UNZIP_CMD=%~dp0..\tools\zip\unzip.bat +FOR /F "usebackq tokens=* delims=" %%A IN (`dir /b /s %EX_DIR%\*.zip`) DO ( + echo %%~fA + echo %%~dpnA + call %UNZIP_CMD% %%~fA %%~dpnA +) + +: ---- Common ---- : +XCOPY /Y /I %EX_DIR%\bron412\*.txt %DEST_DIR%\License\bregonig\ + +: ---- Win32 ---- : +XCOPY /Y /I %EX_DIR%\bron412\bregonig.dll %DEST_DIR%\ +XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x86\ctags.exe %DEST_DIR%\ +XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x86\license\* %DEST_DIR%\license\ctags + +: ---- x64 ---- : +XCOPY /Y /I %EX_DIR%\bron412\x64\bregonig.dll %DEST_DIR%\ +XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x64\ctags.exe %DEST_DIR%\ +XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x64\license\* %DEST_DIR%\license\ctags\ +exit /b 0 + + +@rem ------------------------------------------------------------------------------ +@rem show help +@rem see http://orangeclover.hatenablog.com/entry/20101004/1286120668 +@rem ------------------------------------------------------------------------------ +:showhelp +@echo off +@echo usage +@echo %~nx1 platform configuration +@echo. +@echo parameter +@echo platform : Win32 or x64 +@echo configuration : Release or Debug +@echo. +@echo example +@echo %~nx1 Win32 Release +@echo %~nx1 Win32 Debug +@echo %~nx1 x64 Release +@echo %~nx1 x64 Debug +exit /b 0 + diff --git a/tools/find-tools.md b/tools/find-tools.md index a0b007ab8a..65e2e3eb7b 100644 --- a/tools/find-tools.md +++ b/tools/find-tools.md @@ -1,30 +1,31 @@ - [ビルド関連ツールのパスを探す](#%E3%83%93%E3%83%AB%E3%83%89%E9%96%A2%E9%80%A3%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%83%91%E3%82%B9%E3%82%92%E6%8E%A2%E3%81%99) - - [外部ツールの一覧](#%E5%A4%96%E9%83%A8%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7) - - [MSBuild以外の探索手順](#msbuild%E4%BB%A5%E5%A4%96%E3%81%AE%E6%8E%A2%E7%B4%A2%E6%89%8B%E9%A0%86) - - [MSBuild](#msbuild) - - [zipの処理に7zではなくPowerShellを強制する](#zip%E3%81%AE%E5%87%A6%E7%90%86%E3%81%AB7z%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8Fpowershell%E3%82%92%E5%BC%B7%E5%88%B6%E3%81%99%E3%82%8B) - - [参照](#%E5%8F%82%E7%85%A7) + - [外部ツールの一覧](#%E5%A4%96%E9%83%A8%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7) + - [MSBuild以外の探索手順](#msbuild%E4%BB%A5%E5%A4%96%E3%81%AE%E6%8E%A2%E7%B4%A2%E6%89%8B%E9%A0%86) + - [MSBuild](#msbuild) + - [参照](#%E5%8F%82%E7%85%A7) + - [zipの処理に7zではなくPowerShellを強制する](#zip%E3%81%AE%E5%87%A6%E7%90%86%E3%81%AB7z%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8Fpowershell%E3%82%92%E5%BC%B7%E5%88%B6%E3%81%99%E3%82%8B) # ビルド関連ツールのパスを探す -外部ツールを利用する前にデフォルトのインストールパスにある実行ファイルを自動で検索します。 -デフォルトパスにインストールしていない場合や別の実行ファイルを使いたい場合、実行前にパスを通しておくかCMD_7Zなどの対応する環境変数に絶対パスをセットしておいてください。 +外部ツールの実行ファイルの位置を探し、見つかれば環境変数にセットします。現在パスが通っている場所と、インストーラがデフォルトでインストールする場所が検索されます。詳細は[MSBuild以外の探索手順](#msbuild%E4%BB%A5%E5%A4%96%E3%81%AE%E6%8E%A2%E7%B4%A2%E6%89%8B%E9%A0%86)の項目を参照してください。 + +外部ツールのインストール時にデフォルトパスにインストールしていない場合や別の実行ファイルを使いたい場合、実行前にパスを通しておくかCMD_7Zなどの対応する環境変数に絶対パスをセットしておいてください。 ## 外部ツールの一覧 -| ツール名 | 環境変数 | ソフトのデフォルトパス | ファイル名 | +| ツール名 | 環境変数 | デフォルトパス | ファイル名 | | ------------------ | ------------ | ---------------------- | ------------ | | 7-Zip | CMD_7Z | 7-Zip | 7z | | HTML Help Workshop | CMD_HHC | HTML Help Workshop | hhc.exe | | Inno Setup 5 | CMD_ISCC | Inno Setup 5 | ISCC.exe | | cppcheck | CMD_CPPCHECK | cppcheck | cppcheck.exe | | doxygen | CMD_DOXYGEN | doxygen\bin | doxygen.exe | -| MSBuild | CMD_MSBUILD | 特殊 | | +| MSBuild | CMD_MSBUILD | 特殊 | MSBuild.exe | ## MSBuild以外の探索手順 MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 1. CMD_7Zがセットされていればそれを使う 2. パスが通っていればそれを使う -3. 以下のディレクトリ内の「ソフトのデフォルトパス」で見つかればそれを使う +3. 以下のディレクトリ内の「デフォルトパス」を順に探索し、実行ファイルが見つかればそれを使う * %ProgramFiles% * %ProgramFiles(x86)% * %ProgramW6432% @@ -36,10 +37,10 @@ MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 3. Visual Studio 2017以降にあるMicrosoft Visual Studio\Installer\vswhere.exeを利用し、msbuild.exeを探す。 4. 1~3で見つからなければCMD_MSBUILDには何もセットしない -## zipの処理に7zではなくPowerShellを強制する -事前に環境変数の`FORCE_POWERSHELL_ZIP`を1にセットすることで、7zの検索をスキップできます。 -7z未インストールの環境で[PowerShellによるzipの処理](zip/readme.md)が正しく行われるかを検証する際に活用できます。 - ### 参照 * https://github.com/Microsoft/vswhere * https://github.com/Microsoft/vswhere/wiki/Find-MSBuild + +## zipの処理に7zではなくPowerShellを強制する +事前に環境変数の`FORCE_POWERSHELL_ZIP`を1にセットすることで、7zの検索をスキップできます。 +7z未インストールの環境で[PowerShellによるzipの処理](zip/readme.md)が正しく行われるかを検証する際に活用できます。[build.md](../build.md#powershell-によるzipファイルの圧縮解凍内容確認の強制)も参照してください。 diff --git a/tools/zip/listzip.bat b/tools/zip/listzip.bat index e97e7e9afc..f5cf65830a 100644 --- a/tools/zip/listzip.bat +++ b/tools/zip/listzip.bat @@ -1,12 +1,14 @@ @echo off set SRCZIP=%1 -echo examining %SRCZIP%. -if not defined CMD_7Z call %~dp0../find-tools.bat -if not defined CMD_7Z ( - echo ------------------------------------------------------- - echo ---- you can make this faster by installing 7-zip. ---- - echo ------------------------------------------------------- +if not defined CMD_7Z call %~dp0..\find-tools.bat + +@echo examining %SRCZIP%. +@rem CMD_7Z contains double quotes. +if "%CMD_7Z%" == "" ( + @echo ------------------------------------------------------- + @echo ---- you can make this faster by installing 7-zip. ---- + @echo ------------------------------------------------------- powershell -ExecutionPolicy RemoteSigned -File %~dp0listzip.ps1 %SRCZIP% ) else ( "%CMD_7Z%" l "%SRCZIP%" diff --git a/tools/zip/unzip.bat b/tools/zip/unzip.bat index 4b2cd2b04a..85795df104 100644 --- a/tools/zip/unzip.bat +++ b/tools/zip/unzip.bat @@ -5,7 +5,7 @@ set OUTDIR=%2 if exist "%OUTDIR%" rmdir /s /q "%OUTDIR%" @echo extracting %SRCZIP%. -if not defined CMD_7Z call %~dp0../find-tools.bat +if not defined CMD_7Z call %~dp0..\find-tools.bat if not defined CMD_7Z ( @echo ------------------------------------------------------- @echo ---- you can make this faster by installing 7-zip. ---- diff --git a/tools/zip/zip.bat b/tools/zip/zip.bat index f00ce18a4c..c6da17aa21 100644 --- a/tools/zip/zip.bat +++ b/tools/zip/zip.bat @@ -5,7 +5,7 @@ set SRCDIR=%2 if exist "%DSTZIP%" del "%DSTZIP%" @echo archiving %SRCZIP%. -if not defined CMD_7Z call %~dp0../find-tools.bat +if not defined CMD_7Z call %~dp0..\find-tools.bat if not defined CMD_7Z ( @echo ------------------------------------------------------- @echo ---- you can make this faster by installing 7-zip. ---- From 4b24dc58814145f1155151f89f3f9200e2be23b6 Mon Sep 17 00:00:00 2001 From: kageshiron Date: Sun, 13 Jan 2019 23:23:19 +0900 Subject: [PATCH 14/15] =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E8=AA=A4=E8=BF=BD=E5=8A=A0=E3=81=A8=E7=B4=9B=E3=82=89=E3=82=8F?= =?UTF-8?q?=E3=81=97=E3=81=84=E6=96=87=E9=9D=A2=E3=82=92=E8=A8=82=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sakura/externals.bat | 74 -------------------------------------------- tools/find-tools.md | 18 +++++------ 2 files changed, 9 insertions(+), 83 deletions(-) delete mode 100644 sakura/externals.bat diff --git a/sakura/externals.bat b/sakura/externals.bat deleted file mode 100644 index 2323daaeb3..0000000000 --- a/sakura/externals.bat +++ /dev/null @@ -1,74 +0,0 @@ -@echo on - -: ---- arguments ---- : -: "Win32" or "x64" -set PLATFORM=%1 -echo PLATFORM=%PLATFORM% - -: "Debug" or "Release" -set CONFIGURATION=%2 -echo CONFIGURATION=%CONFIGURATION% - -if "%platform%" == "Win32" ( - @rem OK -) else if "%platform%" == "x64" ( - @rem OK -) else ( - call :showhelp %0 - exit /b 1 -) - -if "%configuration%" == "Release" ( - @rem OK -) else if "%configuration%" == "Debug" ( - @rem OK -) else ( - call :showhelp %0 - exit /b 1 -) - -set DEST_DIR=%~dp0..\%PLATFORM%\%CONFIGURATION%\ -set EX_DIR=%~dp0..\installer\externals - -set UNZIP_CMD=%~dp0..\tools\zip\unzip.bat -FOR /F "usebackq tokens=* delims=" %%A IN (`dir /b /s %EX_DIR%\*.zip`) DO ( - echo %%~fA - echo %%~dpnA - call %UNZIP_CMD% %%~fA %%~dpnA -) - -: ---- Common ---- : -XCOPY /Y /I %EX_DIR%\bron412\*.txt %DEST_DIR%\License\bregonig\ - -: ---- Win32 ---- : -XCOPY /Y /I %EX_DIR%\bron412\bregonig.dll %DEST_DIR%\ -XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x86\ctags.exe %DEST_DIR%\ -XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x86\license\* %DEST_DIR%\license\ctags - -: ---- x64 ---- : -XCOPY /Y /I %EX_DIR%\bron412\x64\bregonig.dll %DEST_DIR%\ -XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x64\ctags.exe %DEST_DIR%\ -XCOPY /Y /I %EX_DIR%\ctags-2018-09-16_e522743d-x64\license\* %DEST_DIR%\license\ctags\ -exit /b 0 - - -@rem ------------------------------------------------------------------------------ -@rem show help -@rem see http://orangeclover.hatenablog.com/entry/20101004/1286120668 -@rem ------------------------------------------------------------------------------ -:showhelp -@echo off -@echo usage -@echo %~nx1 platform configuration -@echo. -@echo parameter -@echo platform : Win32 or x64 -@echo configuration : Release or Debug -@echo. -@echo example -@echo %~nx1 Win32 Release -@echo %~nx1 Win32 Debug -@echo %~nx1 x64 Release -@echo %~nx1 x64 Debug -exit /b 0 - diff --git a/tools/find-tools.md b/tools/find-tools.md index 65e2e3eb7b..985f9812b9 100644 --- a/tools/find-tools.md +++ b/tools/find-tools.md @@ -11,14 +11,14 @@ 外部ツールのインストール時にデフォルトパスにインストールしていない場合や別の実行ファイルを使いたい場合、実行前にパスを通しておくかCMD_7Zなどの対応する環境変数に絶対パスをセットしておいてください。 ## 外部ツールの一覧 -| ツール名 | 環境変数 | デフォルトパス | ファイル名 | -| ------------------ | ------------ | ---------------------- | ------------ | -| 7-Zip | CMD_7Z | 7-Zip | 7z | -| HTML Help Workshop | CMD_HHC | HTML Help Workshop | hhc.exe | -| Inno Setup 5 | CMD_ISCC | Inno Setup 5 | ISCC.exe | -| cppcheck | CMD_CPPCHECK | cppcheck | cppcheck.exe | -| doxygen | CMD_DOXYGEN | doxygen\bin | doxygen.exe | -| MSBuild | CMD_MSBUILD | 特殊 | MSBuild.exe | +| ツール名 | 環境変数 | デフォルトパス | ファイル名 | +| ------------------ | ------------ | ------------------ | ------------ | +| 7-Zip | CMD_7Z | 7-Zip | 7z | +| HTML Help Workshop | CMD_HHC | HTML Help Workshop | hhc.exe | +| Inno Setup 5 | CMD_ISCC | Inno Setup 5 | ISCC.exe | +| cppcheck | CMD_CPPCHECK | cppcheck | cppcheck.exe | +| doxygen | CMD_DOXYGEN | doxygen\bin | doxygen.exe | +| MSBuild | CMD_MSBUILD | 特殊 | MSBuild.exe | ## MSBuild以外の探索手順 MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 @@ -43,4 +43,4 @@ MSBuild以外の探索手順は同一であり、7-Zipを例に説明する。 ## zipの処理に7zではなくPowerShellを強制する 事前に環境変数の`FORCE_POWERSHELL_ZIP`を1にセットすることで、7zの検索をスキップできます。 -7z未インストールの環境で[PowerShellによるzipの処理](zip/readme.md)が正しく行われるかを検証する際に活用できます。[build.md](../build.md#powershell-によるzipファイルの圧縮解凍内容確認の強制)も参照してください。 +[PowerShellによるzipの処理](zip/readme.md)が正しく行われるかを7zがインストール済みの環境で検証する際に活用できます。[build.md](../build.md#powershell-によるzipファイルの圧縮解凍内容確認の強制)も参照してください。 From e8c6ec5bba28861c19e3db5f61fc9612168e3776 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Mon, 14 Jan 2019 16:35:08 +0900 Subject: [PATCH 15/15] =?UTF-8?q?defined=E3=81=AE=E3=82=B9=E3=82=BF?= =?UTF-8?q?=E3=82=A4=E3=83=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/zip/listzip.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/zip/listzip.bat b/tools/zip/listzip.bat index f5cf65830a..df54af21b8 100644 --- a/tools/zip/listzip.bat +++ b/tools/zip/listzip.bat @@ -1,11 +1,11 @@ @echo off set SRCZIP=%1 -if not defined CMD_7Z call %~dp0..\find-tools.bat @echo examining %SRCZIP%. @rem CMD_7Z contains double quotes. -if "%CMD_7Z%" == "" ( +if not defined CMD_7Z call %~dp0..\find-tools.bat +if not defined CMD_7Z ( @echo ------------------------------------------------------- @echo ---- you can make this faster by installing 7-zip. ---- @echo -------------------------------------------------------