この記事は Vim 駅伝 の 2024/10/09 の記事です。 前回の記事は monaqa さんによる、 2024/10/07 の「Vim で挿入モードから抜けることなく直前の単語を UPPER CASE にする」という記事でした。
次回は 2024/10/11 に投稿される予定です。
この記事はなに?
MinGW でビルドしたことはあるけど、 Visual Studio でビルドしたことがなかったので試してみる。
今回は、 GVim の 64 bit 版をビルドし、
%USERPROFILE%\app\vim
にインストールします。
また、もろもろ環境を汚すのが嫌なので、Windows サンドボックス上で試していく。
前提
- OS: Windows 11 Pro 23H2 ビルド 22631.4037
- Windows サンドボックス機能を有効化済みであること
Windows サンドボックス環境の準備
winget のインストール
今回は、 Visual Studio Community や Git を winget でインストールするので、 Windows サンドボックスで winget を利用可能にする手順を実施する。
$progressPreference = 'silentlyContinue'
Write-Information "Downloading WinGet and its dependencies..."
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Invoke-WebRequest -Uri https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile Microsoft.VCLibs.x64.14.00.Desktop.appx
Invoke-WebRequest -Uri https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x64.appx -OutFile Microsoft.UI.Xaml.2.8.x64.appx
Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage Microsoft.UI.Xaml.2.8.x64.appx
Add-AppxPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
†: 普通の Windows であれば winget 導入済みのはずなので不要なはず…
Vim ビルドの準備
Vim をビルドするために必要なパッケージをインストールしていく。
Visual Studio Community のインストール
winget install --silent --accept-source-agreements Microsoft.VisualStudio.2022.Community
これで、 Visual Studio Community と Visual Studio Installer がそれぞれ下記に配置され、
- Visual Studio Community:
C:\Program Files\Microsoft Visual Studio\2022\Community
- Visual Studio Installer:
C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe
次に、Vim のビルドに必要な NativeDesktop コンポーネントをインストール。
& "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify `
--installPath "C:\Program Files\Microsoft Visual Studio\2022\Community" `
--add Microsoft.VisualStudio.Workload.NativeDesktop `
--add Microsoft.Component.MSBuild `
--add Microsoft.VisualStudio.Component.VC.ATL `
--add Microsoft.VisualStudio.Component.VC.CMake.Project `
--add Microsoft.VisualStudio.Component.Windows11SDK.22621 `
--quiet
†: インストール完了がとても分かりにくいので、 --quiet
は付けない方が良いかも…?
Git のインストール
winget install --silent --accept-source-agreements Git.Git
Vim のビルド
以降のコマンドは、スタートメニューから
x64 Native Tools Command Prompt for VS 2022
を起動し、その中で実行する。
Vim のクローン
git clone --depth 1 https://github.com/vim/vim
Vim のビルド
cd vim\src
.\msvc-latest.bat x86_amd64
nmake -f .\Make_mvc.mak GUI=yes
動作確認
src
直下に gvim.exe
が生成されているので、それを実行する。
.\gvim.exe
gvim が起動すれば OK.
Windows 版 Vim の配布可能構成を作る
ここまは、「gvim.exe
の実行ファイルを作成」しただけ。
そのほか gvim.exe
の起動に必要なランタイムやデフォルトプラグインなどを指定の構成で配置する必要がある。
See: 17. Installing after building from sources
vim91
ディレクトリの作成
配布可能パッケージのルートとなるディレクトリを作成する。
cd ${VIM_REPOSITORY_ROOT}
mkdir vim91
runtime
ディレクトリ内のファイルを vim91
内へコピー
copy runtime\* vim91
xcopy /s runtime\* vim91
ビルドした実行バイナリを
vim91
内へコピー
copy src\*exe vim91
copy src\tee\tee.exe vim91
copy src\xxd\xxd.exe vim91
mkdir vim91\GvimExt64
copy src\GvimExt\gvimext.dll vim91\GvimExt64
gettext と iconv を取得し、配置
powershell.exe -Command Invoke-WebRequest -Uri https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.21-v1.16/gettext0.21-iconv1.16-shared-64.zip -OutFile .\gettext0.21-iconv1.16-shared-64.zip
powershell.exe -Command Expand-Archive -Path .\gettext0.21-iconv1.16-shared-64.zip -DestinationPath .\gettext-iconv
copy gettext-iconv\bin\libintl-8.dll vim91
copy gettext-iconv\bin\libintl-8.dll vim91\GvimExt64
copy gettext-iconv\bin\libiconv-2.dll vim91
copy gettext-iconv\bin\libiconv-2.dll vim91\GvimExt64
Vim のインストール
インストールディレクトリの作成
今回は、 %USERPROFILE%\app\vim
にインストールしたいので、そのディレクトリを作成する。
mkdir %USERPROFILE%\app\vim
Vim の配置
mkdir %USERPROFILE%\app\vim\vim91
xcopy /e vim91 %USERPROFILE%\app\vim\vim91
Vim のインストール
cd %USERPROFILE%\app\vim\vim91
install.exe
install.exe
を実行すると、「インストール時に何をするか・しないか」のリストが表示されるので、数字を入力し、「する・しない」を切り替える。
切り替えた後 d
を入力すると選択したものが実行される。
デフォルトで d
を押して、デスクトップに表示された
gvim9.1 のショートカットから起動できれば OK.
参考資料
- Vim のビルド・インストール関連
- Windows サンドボックス関連
- winget 関連
- CLI で Visual Studio コンポーネントインストール
0 件のコメント:
コメントを投稿