ソースをダウンロードしてビルド、アーカイブを作成するバッチファイルです。
必要
Visual Studio
2019以降でビルドできます。
こちらの記事を参考にインストールしてください。
2022で動作確認しています。
Node.js
公式サイトからLTS版をダウンロードします。
インストールで特に変更するところはありません。
Yarn
コマンドプロンプトで以下のコマンドを実行してインストールします。
npm install -g yarn
Git for Windows
公式サイトの「Download」をクリックします。
インストールで特に変更するところはありません。
7-Zip
公式サイトからダウンロードしてインストールします。
バッチファイル
拡張子を.batにして保存します。
@echo off setlocal cd /d %~dp0 rem デフォルト設定 set ARCH=x86 set TARGET=Build set CONFIG=Release set REPO_DEL=False set REPO_DIR=TVTDataBroadcastingWV2 set OUT_DIR=package rem 引数の取得 for %%i in (%*) do ( if /i "%%i" == "help" goto Help if /i "%%i" == "x86" set ARCH=x86 if /i "%%i" == "x64" set ARCH=x64 if /i "%%i" == "Both" set ARCH=Both if /i "%%i" == "Build" set TARGET=Build if /i "%%i" == "Rebuild" set TARGET=Rebuild if /i "%%i" == "Clean" set TARGET=Clean if /i "%%i" == "Debug" set CONFIG=Debug if /i "%%i" == "Release" set CONFIG=Release if /i "%%i" == "del" set REPO_DEL=True ) if /i "%REPO_DEL%" == "True" ( if exist "%REPO_DIR%" rd /s /q "%REPO_DIR%" ) rem ソースのダウンロード if not exist "%REPO_DIR%" ( git clone --recursive https://github.com/otya128/TVTDataBroadcastingWV2.git "%REPO_DIR%" ) cd /d "%REPO_DIR%" rem Visual Studioのインストールフォルダの検索 for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do ( set VS_INSTALL_DIR=%%i ) rem 開発者コマンドプロンプトの起動 call "%VS_INSTALL_DIR%\Common7\Tools\VsDevCmd.bat" -no_logo if /i "%ARCH%" == "Both" ( call :Build x86 if errorlevel 1 exit /b 1 call :Build x64 if errorlevel 1 exit /b 1 ) else ( call :Build %ARCH% if errorlevel 1 exit /b 1 ) exit /b 0 :Build set ARCH=%1 set TOOLSET=v142 if "%VisualStudioVersion%" == "17.0" set TOOLSET=v143 rem ビルド MSBuild TVTDataBroadcastingWV2.sln /nologo /m /t:%TARGET% /restore /p:Configuration=%CONFIG%;Platform=%ARCH%;PlatformToolset=%TOOLSET%;RestorePackagesConfig=true if errorlevel 1 exit /b 1 if /i "%TARGET%" == "Clean" exit /b 0 pushd browser if not exist dist\TVTDataBroadcastingWV2.js ( call yarn install call yarn workspace @chinachu/aribts build call yarn run build ) popd if errorlevel 1 exit /b 1 rem フォントのダウンロード if not exist fonts ( md fonts curl -L https://github.com/googlefonts/kosugi/raw/main/fonts/ttf/Kosugi-Regular.ttf -o fonts\Kosugi-Regular.ttf curl -L https://github.com/googlefonts/kosugi-maru/raw/main/fonts/ttf/KosugiMaru-Regular.ttf -o fonts\KosugiMaru-Regular.ttf ) if /i "%ARCH%" == "x86" ( set SRC_DIR=%CONFIG% ) else ( set SRC_DIR=%ARCH%\%CONFIG% ) set DST_DIR=%OUT_DIR%\%ARCH%\%CONFIG% rem フォルダの準備 if exist "%DST_DIR%" rd /s /q "%DST_DIR%" md "%DST_DIR%\TVTDataBroadcastingWV2\resources\dist" rem ファイルの配置 copy /v %SRC_DIR%\TVTDataBroadcastingWV2.tvtp "%DST_DIR%" >nul copy /v browser\dist\TVTDataBroadcastingWV2.js "%DST_DIR%\TVTDataBroadcastingWV2\resources\dist" >nul copy /v browser\TVTDataBroadcastingWV2.html "%DST_DIR%\TVTDataBroadcastingWV2\resources" >nul copy /v fonts "%DST_DIR%\TVTDataBroadcastingWV2\resources\dist" >nul copy /v README.md "%DST_DIR%\TVTDataBroadcastingWV2_README.md" >nul rem コミットハッシュの取得 for /f "usebackq tokens=*" %%i in (`git rev-parse --short HEAD`) do set GIT_HASH=%%i set ARCHIVE_NAME=%OUT_DIR%\TVTDataBroadcastingWV2_%GIT_HASH%_%ARCH% rem 7-Zipのインストールフォルダの検索 for /f "usebackq tokens=1,2*" %%i in (`reg query HKLM\Software\7-Zip /v Path`) do if "%%i" == "Path" set PATH=%%k;%PATH% if exist "%ARCHIVE_NAME%.7z" del "%ARCHIVE_NAME%.7z" rem アーカイブの作成 7z a "%ARCHIVE_NAME%.7z" ".\%DST_DIR%\*" -mx=9 -ms=on -myx=9 exit /b :Help echo %~nx0 [x86^|x64^|Both] [Build^|Rebuild^|Clean] [Debug^|Release] [del] exit /b
使い方
コマンドプロンプトでバッチファイルを実行するときに引数を指定します。
TVTDataBroadcastingWV2.bat [x86|x64|Both] [Build|Rebuild|Clean] [Debug|Release] [del]
上記はhelpを指定すると表示されます。
引数のデフォルト値は以下です。
TVTDataBroadcastingWV2.bat x86 Build Release
x86は32bit版、x64は64bit版、Bothは32bit版と64bit版の両方です。
delはソースを削除します。ダウンロードし直す場合に指定します。
バッチファイルと同じフォルダにある TVTDataBroadcastingWV2\package に出力されます。
ソースのダウンロード先を変更する場合は「set REPO_DIR=」にフォルダパスを書きます。
アーカイブの出力先を変更する場合は「set OUT_DIR=」にフォルダパスを書きます。
コメント