Microsoft Build 2019で新たに発表されたWindows Terminalをビルドする
2019年5月6日のMicrosoft Build 2019でWindowsの新しいターミナルアプリケーションが発表されました。コマンドプロンプトとかPowershellとかWindows Subsystem for Linuxのシェルもひとまとめにできるらしい。タブ機能をあって便利そう!
現在Cmderを使っているがCmderを置き換えるまではいかないとは思いつつ、結構興味があるので試しに触れてみようと思う。GitHubにレポジトリがあり、ソースコードをビルドすることができるようなのでビルドしてみる。
以下のGitHubのIssueを参考にWindows Terminalをビルドしてみる。
環境と必要なツール
環境
- Windows10
- 空き容量10GB程度
必要なツール
GitHubのIssueにもあるように以下のツールが必要である。
- VisualStudio 2017 (確認していないが2019でも可能であると思われる)
- Gitコマンドツール (Git for Windows)
- Nuget.exe (レポジトリ内のTerminal/dep/nuget/nuget.exe)
ビルド手順
レポジトリのクローン
以下のコマンドでGitHubにあるWindowsTerminalのレポジトリをクローンする。
git clone https://github.com/microsoft/Terminal.git
サブモジュールなどの更新
サブモジュールの更新
クローンしたレポジトリに移動し、サブモジュールの更新をする
cd Terminal git submodule update --init --recursive
NuGetパッケージのリストア
dep/nuget/nuget restore OpenConsole.sln
ファイルエンコードの変更
ビルド時にエンコーディングエラーなど警告されるので、以下のファイルのエンコードを UTF-8 BOM
で保存し直す。自分はVisualStudioCodeで行なった。
Terminal\src\inc\test\CommonState.hpp
Terminal\src\terminal\parser\ut_parser\InputEngineTest.cpp
Terminal\src\tools\vtpipeterm\main.cpp
警告のエラー扱いを止める
ビルド時に警告が発生するとエラーとして扱われビルドが失敗することがある。その場合、該当するプロジェクトのプロパティを変更して警告のエラー扱いを止める。
自分の環境では VtPipeTerm
の韓国語の部分の警告が消せなかったので、プロパティの変更を行なった。
プロパティ
> C/C++
> 全般
> 警告をエラーとして扱う
を はい(/WX)
から いいえ(/WX-)
に変更する。
ビルド
ビルドはVisualStudioかコマンドライン上でMSBuildを使って行う。どちらでやってもかわらないと思う。
ビルド (Visual Studio)
ビルド
メニューの ソリューションのビルド
からソリューションのビルドを行う。
ビルド (コマンドライン)
コマンドプロンプトなどのコマンドライン上でMSBuildを用いてビルドを行う。プラットフォームはx64で、Release構成としてビルドする。
msbuild OpenConsole.sln /t:build /p:Configuration=Release;Platform=x64 /m
※ MSBuildにパスが通っていない場合は C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
で実行する。
アプリケーションのデプロイ
Windowsの設定の変更
デプロイするにはWindowsの設定を変更する必要がある。Windowsの設定の 更新とセキュリティ
> 開発者向け
をクリックして表示される 開発者モード
を選択する。
デプロイ
ビルドが終わったWindows Terminalをデプロイ(配置)する。上部の ビルド
メニューの ソリューションの配置(D)
メニューをクリックしデプロイする。
デプロイが完了するとスタートメニューのアプリケーション一覧に Windows Console (Preview)
と Windows Terminal (Preview)
が表示される。
アプリパッケージの作成
ビルドしたアプリケーションをストアアプリパッケージとしてビルドすることもできる。
Visual Studio Installerで「C++ ユニバーサル Windows プラットフォームツール」を有効にする。
「ソリューションエクスプローラー」の 「CascadiaPackage」を右クリックし ストア
> アプリパッケージの作成
をクリックする。
ダイアログの「サイドロード用のパッケージを作成します」にチェックをし次に進む。
出力先を指定し、使用しているアーキテクチャ(x64)にチェックを入れ、Release(x64)としてパッケージを作成する。
自分はアプリパッケージ以外はビルドしてあったため比較的すぐに終わった。
指定したディレクトリに以下のようにアプリパッケージが生成される。生成されたファイルの
Add-AppDevPackage.ps1
を実行することでインストールすることもできる。