Hello Ys world ?

技術的なことや何か役立つこと、日々の活動を記録する

Microsoft Build 2019で新たに発表されたWindows Terminalをビルドする

2019年5月6日のMicrosoft Build 2019でWindowsの新しいターミナルアプリケーションが発表されました。コマンドプロンプトとかPowershellとかWindows Subsystem for Linuxのシェルもひとまとめにできるらしい。タブ機能をあって便利そう!

現在Cmderを使っているがCmderを置き換えるまではいかないとは思いつつ、結構興味があるので試しに触れてみようと思う。GitHubにレポジトリがあり、ソースコードをビルドすることができるようなのでビルドしてみる。

devblogs.microsoft.com

以下のGitHubのIssueを参考にWindows Terminalをビルドしてみる。

github.com

環境と必要なツール

環境

  • Windows10
  • 空き容量10GB程度

必要なツール

GitHubのIssueにもあるように以下のツールが必要である。

  • VisualStudio 2017 (確認していないが2019でも可能であると思われる)
    • C++によるデスクトップ開発
    • ユニバーサル Windows プラットフォーム開発
  • Gitコマンドツール (Git for Windows)
  • Nuget.exe (レポジトリ内のTerminal/dep/nuget/nuget.exe)

ビルド手順

レポジトリのクローン

github.com

以下のコマンドでGitHubにあるWindowsTerminalのレポジトリをクローンする。

git clone https://github.com/microsoft/Terminal.git

f:id:Ysss:20190508022452p:plain

サブモジュールなどの更新

サブモジュールの更新

クローンしたレポジトリに移動し、サブモジュールの更新をする

cd Terminal
git submodule update --init --recursive

f:id:Ysss:20190508022503p:plain

NuGetパッケージのリストア

dep/nuget/nuget restore OpenConsole.sln

f:id:Ysss:20190508022533p:plain

ファイルエンコードの変更

ビルド時にエンコーディングエラーなど警告されるので、以下のファイルのエンコード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 の韓国語の部分の警告が消せなかったので、プロパティの変更を行なった。 f:id:Ysss:20190508022834p:plain

プロパティ > C/C++ > 全般 > 警告をエラーとして扱うはい(/WX) から いいえ(/WX-) に変更する。 f:id:Ysss:20190508022551p:plain

ビルド

ビルドはVisualStudioかコマンドライン上でMSBuildを使って行う。どちらでやってもかわらないと思う。

ビルド (Visual Studio)

ビルド メニューの ソリューションのビルド からソリューションのビルドを行う。 f:id:Ysss:20190508025632p:plain

ビルド (コマンドライン)

コマンドプロンプトなどのコマンドライン上で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 で実行する。 f:id:Ysss:20190508025659p:plain

アプリケーションのデプロイ

Windowsの設定の変更

デプロイするにはWindowsの設定を変更する必要がある。Windowsの設定の 更新とセキュリティ > 開発者向け をクリックして表示される 開発者モード を選択する。 f:id:Ysss:20190508022608p:plain

デプロイ

ビルドが終わったWindows Terminalをデプロイ(配置)する。上部の ビルド メニューの ソリューションの配置(D) メニューをクリックしデプロイする。 f:id:Ysss:20190508022624p:plain

デプロイが完了するとスタートメニューのアプリケーション一覧に Windows Console (Preview)Windows Terminal (Preview) が表示される。

アプリパッケージの作成

ビルドしたアプリケーションをストアアプリパッケージとしてビルドすることもできる。

Visual Studio Installerで「C++ ユニバーサル Windows プラットフォームツール」を有効にする。 f:id:Ysss:20190508122514p:plain

「ソリューションエクスプローラー」の 「CascadiaPackage」を右クリックし ストア > アプリパッケージの作成 をクリックする。 f:id:Ysss:20190508122733p:plain

ダイアログの「サイドロード用のパッケージを作成します」にチェックをし次に進む。 f:id:Ysss:20190508122849p:plain

出力先を指定し、使用しているアーキテクチャ(x64)にチェックを入れ、Release(x64)としてパッケージを作成する。 f:id:Ysss:20190508122900p:plain

自分はアプリパッケージ以外はビルドしてあったため比較的すぐに終わった。 f:id:Ysss:20190508123215p:plain

指定したディレクトリに以下のようにアプリパッケージが生成される。生成されたファイルの Add-AppDevPackage.ps1 を実行することでインストールすることもできる。 f:id:Ysss:20190508123407p:plain

参考資料