From b7fd28074500ece33d86864a0277038f8e81ad21 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 15 May 2026 18:22:35 +0900 Subject: [PATCH 1/5] docs: add UCRT64 build guide --- docs/build_windows_ucrt64.md | 94 ++++++++++++++++++++++++++++++++++++ index.html | 1 + 2 files changed, 95 insertions(+) create mode 100644 docs/build_windows_ucrt64.md diff --git a/docs/build_windows_ucrt64.md b/docs/build_windows_ucrt64.md new file mode 100644 index 00000000..8ba8181f --- /dev/null +++ b/docs/build_windows_ucrt64.md @@ -0,0 +1,94 @@ +--- +layout: docs +title: MSYS2 UCRT64を使ってのビルド方法 +--- + +ビルド手順はVimのバージョンによって一部変更されていることがあります。公式のビルド手順は、ソースファイル内の [src/INSTALLpc.txt](https://github.com/vim/vim/blob/master/src/INSTALLpc.txt) および、[MinGW用Makefile](https://github.com/vim/vim/blob/master/src/Make_ming.mak)や[Cygwin/MinGW共通Makefile](https://github.com/vim/vim/blob/master/src/Make_cyg_ming.mak)内のコメントを参照してください。 + +UCRT64 環境は、従来の MSVCRT ではなく Universal C Runtime (UCRT) に対してリンクする MSYS2 のサブシステムです。Windows 10 以降では UCRT が標準で搭載されており、新規にビルドする場合は MinGW64 (MSVCRT) よりも UCRT64 を選択することが推奨されています。 + +1. msys2 のインストール + + msys2 をダウンロードしてインストールします。以下は msys2 がインストール済みの前提で記述しています。 + +2. Git・GCCのインストール + + スタートメニューから `MSYS2 MSYS` を実行し、以下のコマンドを実行してシステムの更新を行います。 + + pacman -Suuy + + MSYS2を終了して再実行するように言われた場合は、それに従ってminttyのウィンドウを閉じ、スタートメニューから再度 `MSYS2 MSYS` を実行し、`pacman -Suu` を実行します。 + システムの更新が終わったら、以下のコマンドを実行してGitやGCCなど必要なパッケージをインストールします。 + + pacman -S git mingw-w64-ucrt-x86_64-toolchain + + pacmanのwrapperコマンドであるpacboyを使えば、もう少し簡単に、以下のコマンドでインストールできます。 + + pacboy -S git toolchain:u + + pacboyの使い方は、`pacboy help`を実行すると表示されます。パッケージ名の後に`:u`でUCRT64用(`mingw-w64-ucrt-x86_64-`)、`:x`でMinGW64用(`mingw-w64-x86_64-`)、`:c`でClang64用(`mingw-w64-clang-x86_64-`)のパッケージがインストールされます。 + +3. ソース取得 + + スタートメニューから `MSYS2 UCRT64` を実行し、そこから以下を実行します。 + + git clone https://github.com/vim/vim.git + + `git clone`を実行した後にソースが更新された場合は、以下のコマンドで最新のソースを取得できます。 + + git pull + + 特定のバージョンを指定して取得する場合は、以下のコマンドを実行します。 + + git checkout v9.1.0000 + +4. コンパイル + + `vim/src`フォルダに移動し以下のコマンドを実行します。 + + mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes \ + ICONV=yes DEBUG=no + + Python3拡張やXPMサポートなどを有効にする場合は、以下の様に指定します(GUI版)。 + + mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ + PYTHON3=c:/msys64/ucrt64 DYNAMIC_PYTHON3=yes PYTHON3_VER=314 \ + PYTHON3_HOME=c:/msys64/ucrt64/ \ + PYTHON3INC=-Ic:/msys64/ucrt64/include/python3.14 \ + DYNAMIC_PYTHON3_DLL=libpython3.14.dll \ + CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no \ + XPM=c:/msys64/ucrt64 + + CUI版(コンソール版)を同時にビルドする場合は、`GUI=no` を指定してもう一度実行します。 + + mingw32-make -f Make_ming.mak GUI=no IME=yes MBYTE=yes ICONV=yes \ + PYTHON3=c:/msys64/ucrt64 DYNAMIC_PYTHON3=yes PYTHON3_VER=314 \ + PYTHON3_HOME=c:/msys64/ucrt64/ \ + PYTHON3INC=-Ic:/msys64/ucrt64/include/python3.14 \ + DYNAMIC_PYTHON3_DLL=libpython3.14.dll \ + CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no \ + XPM=c:/msys64/ucrt64 + + Perl・Ruby・Lua拡張も含めて、msys2 付属のパッケージを利用する場合は以下の様に指定します。バージョン番号(`PERL_VER`等)はインストールされているパッケージに合わせて適宜変更してください。 + + mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ + PERL=c:/msys64/ucrt64 DYNAMIC_PERL=yes PERL_VER=540 \ + PERLEXE=c:/msys64/ucrt64/bin/perl.exe \ + PERLLIB=c:/msys64/ucrt64/lib/perl5/core_perl \ + PYTHON3=c:/msys64/ucrt64 DYNAMIC_PYTHON3=yes PYTHON3_VER=314 \ + PYTHON3_HOME=c:/msys64/ucrt64/ \ + PYTHON3INC=-Ic:/msys64/ucrt64/include/python3.14 \ + DYNAMIC_PYTHON3_DLL=libpython3.14.dll \ + RUBY=c:/msys64/ucrt64 DYNAMIC_RUBY=yes RUBY_VER=34 RUBY_API_VER_LONG=3.4.0 \ + LUA=c:/msys64/ucrt64 DYNAMIC_LUA=yes LUA_VER=54 \ + CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no \ + XPM=c:/msys64/ucrt64 + + 注意1) 複数行に跨るのでシェルスクリプトに記載して実行して下さい。Windowsのバッチファイルで実行する場合は行末のバックスラッシュ(`\`)をキャレット(`^`)に置き換えてください。 + + 注意2) `PYTHON3_VER`、`PYTHON3INC`、`DYNAMIC_PYTHON3_DLL` 等の数字は、インストールされているPythonのバージョンに合わせてください。バージョンは `pacman -Qi mingw-w64-ucrt-x86_64-python` で確認できます。Perl・Ruby・Lua も同様です。 + + 注意3) `XPM=c:/msys64/ucrt64` を指定する場合は、事前に `pacboy -S xpm-nox:u` で XPM ライブラリをインストールしておく必要があります。 + + Vim 7.4.393以降で使えるようになったDirectWriteを有効にするには、`DIRECTX=yes` を指定する必要があります。 + なお、DirectWriteを有効にすると、デフォルトでは実行時に libstdc++-6.dll, libgcc\_s\_seh-1.dll 等が必要となりますが、`STATIC_STDCPLUS=yes` を指定することでこれらのライブラリをスタティックリンクすることが出来ます。(VimやGCCのバージョンによって出来ないこともあり。) diff --git a/index.html b/index.html index b973c533..7f61092d 100644 --- a/index.html +++ b/index.html @@ -35,6 +35,7 @@
  • » パッチリスト {% assign hatena-url = '/docs/patches_list.html' %}{% include hatena.html %}
  • » VisualStudioを使ってのビルド方法 {% assign hatena-url = '/docs/build_windows_msvc.html' %}{% include hatena.html %}
  • » MinGWを使ってのビルド方法 {% assign hatena-url = '/docs/build_windows_mingw.html' %}{% include hatena.html %}
  • +
  • » MSYS2 UCRT64を使ってのビルド方法 {% assign hatena-url = '/docs/build_windows_ucrt64.html' %}{% include hatena.html %}
  • » Linuxでのビルド方法 {% assign hatena-url = '/docs/build_linux.html' %}{% include hatena.html %}
  • » Windowsへのインストール方法 {% assign hatena-url = '/docs/install_windows.html' %}{% include hatena.html %}
  • » バイナリーを配布しているサイトの紹介 {% assign hatena-url = '/docs/binary.html' %}{% include hatena.html %}
  • From 83f3e69ad68ccfe643d4a79b786694a84539dba0 Mon Sep 17 00:00:00 2001 From: mattn Date: Fri, 15 May 2026 19:23:54 +0900 Subject: [PATCH 2/5] Update docs/build_windows_ucrt64.md Co-authored-by: K.Takata --- docs/build_windows_ucrt64.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build_windows_ucrt64.md b/docs/build_windows_ucrt64.md index 8ba8181f..3b99caa6 100644 --- a/docs/build_windows_ucrt64.md +++ b/docs/build_windows_ucrt64.md @@ -40,7 +40,7 @@ UCRT64 環境は、従来の MSVCRT ではなく Universal C Runtime (UCRT) に 特定のバージョンを指定して取得する場合は、以下のコマンドを実行します。 - git checkout v9.1.0000 + git checkout v9.2.0000 4. コンパイル From 293f8749b1d20c47fdc82083a5acad13b4986260 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 15 May 2026 19:35:44 +0900 Subject: [PATCH 3/5] docs: add VIMDLL=yes section to UCRT64 build guide --- docs/build_windows_ucrt64.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/build_windows_ucrt64.md b/docs/build_windows_ucrt64.md index 3b99caa6..bffbca2b 100644 --- a/docs/build_windows_ucrt64.md +++ b/docs/build_windows_ucrt64.md @@ -69,6 +69,17 @@ UCRT64 環境は、従来の MSVCRT ではなく Universal C Runtime (UCRT) に CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no \ XPM=c:/msys64/ucrt64 + GUI/CUI 双方をビルドする場合は `VIMDLL=yes` を指定することで、GUI/CUI が利用する共通の DLL (`vim.dll`) を生成できます。ビルドが1回で済み、サイズも多少節約できます。 + + mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ + VIMDLL=yes \ + PYTHON3=c:/msys64/ucrt64 DYNAMIC_PYTHON3=yes PYTHON3_VER=314 \ + PYTHON3_HOME=c:/msys64/ucrt64/ \ + PYTHON3INC=-Ic:/msys64/ucrt64/include/python3.14 \ + DYNAMIC_PYTHON3_DLL=libpython3.14.dll \ + CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no \ + XPM=c:/msys64/ucrt64 + Perl・Ruby・Lua拡張も含めて、msys2 付属のパッケージを利用する場合は以下の様に指定します。バージョン番号(`PERL_VER`等)はインストールされているパッケージに合わせて適宜変更してください。 mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ From febdda0d4a633430642b62cc487e3758037d5e01 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 15 May 2026 19:38:32 +0900 Subject: [PATCH 4/5] docs: drop DirectWrite/STATIC_STDCPLUS note from UCRT64 guide --- docs/build_windows_ucrt64.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/build_windows_ucrt64.md b/docs/build_windows_ucrt64.md index bffbca2b..a84a4436 100644 --- a/docs/build_windows_ucrt64.md +++ b/docs/build_windows_ucrt64.md @@ -100,6 +100,3 @@ UCRT64 環境は、従来の MSVCRT ではなく Universal C Runtime (UCRT) に 注意2) `PYTHON3_VER`、`PYTHON3INC`、`DYNAMIC_PYTHON3_DLL` 等の数字は、インストールされているPythonのバージョンに合わせてください。バージョンは `pacman -Qi mingw-w64-ucrt-x86_64-python` で確認できます。Perl・Ruby・Lua も同様です。 注意3) `XPM=c:/msys64/ucrt64` を指定する場合は、事前に `pacboy -S xpm-nox:u` で XPM ライブラリをインストールしておく必要があります。 - - Vim 7.4.393以降で使えるようになったDirectWriteを有効にするには、`DIRECTX=yes` を指定する必要があります。 - なお、DirectWriteを有効にすると、デフォルトでは実行時に libstdc++-6.dll, libgcc\_s\_seh-1.dll 等が必要となりますが、`STATIC_STDCPLUS=yes` を指定することでこれらのライブラリをスタティックリンクすることが出来ます。(VimやGCCのバージョンによって出来ないこともあり。) From b1df959b5606c2bf03acaaeb7fde306d1bac0182 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 15 May 2026 19:44:55 +0900 Subject: [PATCH 5/5] docs: fix VIMDLL output name to vim64.dll --- docs/build_windows_ucrt64.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build_windows_ucrt64.md b/docs/build_windows_ucrt64.md index a84a4436..35a61cb3 100644 --- a/docs/build_windows_ucrt64.md +++ b/docs/build_windows_ucrt64.md @@ -69,7 +69,7 @@ UCRT64 環境は、従来の MSVCRT ではなく Universal C Runtime (UCRT) に CSCOPE=yes NETBEANS=yes STATIC_STDCPLUS=yes DEBUG=no \ XPM=c:/msys64/ucrt64 - GUI/CUI 双方をビルドする場合は `VIMDLL=yes` を指定することで、GUI/CUI が利用する共通の DLL (`vim.dll`) を生成できます。ビルドが1回で済み、サイズも多少節約できます。 + GUI/CUI 双方をビルドする場合は `VIMDLL=yes` を指定することで、GUI/CUI が利用する共通の DLL (`vim64.dll`) を生成できます。ビルドが1回で済み、サイズも多少節約できます。 mingw32-make -f Make_ming.mak GUI=yes IME=yes MBYTE=yes ICONV=yes \ VIMDLL=yes \