TeraTermProject / teraterm

Other
389 stars 31 forks source link

x86 以外のビルドのリリース #228

Open nmaya opened 1 month ago

nmaya commented 1 month ago

request

現状

x86 ビルドのバイナリは Windows の WOW64 により x64 Windows, Arm Winodws で実行可能である。

対応するメリット

対応するデメリット(コスト)

cf. 過去に出した x64 に関する意見 ttssh2-devel 3994

zmatsuo commented 1 month ago

テストできるバイナリがないとテストが進まないところがジレンマですね。

確実に(どの程度?)実行可能である

x64版はビルド可能で、動作も問題なさそうです。 手もとで日常使いしています。一人テスト状態ですね。

現在は徹底して「1つのリリースバージョンは1つのバイナリ」になるようにしている バグ等への対応

x86が正式バイナリ、x64版,ARM版は実験的バイナリとして ダウンロードできる状態にするのはどうでしょうか。 従来(x86版)を優先してx64,ARM版は後回しでまずは進めればよいかなと思います。

使用しているすべてのライブラリが、そのアーキテクチャ用にビルドできるか

_M_X64 で動作を分岐している箇所がいくつかあります。 最もアーキテクチャ依存が大きい箇所が common/ttdebug.cpp 内の レジスタ表示だと思います。 ダンプを使っての調査の方が便利(レジスタ見てもすぐわからない)ので x64ではレジスタ表示を省いています。ARMでもレジスタ表示は不要かなと思います。

複数アーキテクチャのバイナリを(AppVeyorで)ビルドする必要がある 複数アーキテクチャのためにインストーラ(とzip版?)を作成する必要がある

ローカルの開発環境が整っていれば ci_scripts\build_local_appveyor_vs2022_x64.bat を 実行すれば x64のzip,インストーラーができてきます。 これを AppVeyor で動かせれば作成できるはずです。

ARM版はまだ手つかずで、現在はARM版をすぐ作ることはできないです。 またバイナリができても 手もとに実機がないのでテストができないです。

ビルド対象が増えるとビルド時間が増えるのも欠点ですね。 GitHub でビルドするともう少し速くなりそうです #208

GitHubにpushすれば、自動でビルドがかかり、 snapshot のx86版と beta の x64,ARM版 バイナリが ダウンロードできる状態になるのが手間なくていいなと思います。 可能なのか、CPU時間やストレージにコストがかかるかも? などよくわかっていないところです。

zmatsuo commented 5 days ago

cmakeビルドでarm64版バイナリがビルドできました。

228-arm64 ブランチです。

ライブラリ、Tera Termのソースで特に引っ掛かるところはなく exeを生成することができました。

ツールがそろっていればソースツリーのtopから次の手順でビルドできます。

cd libs
cmake -DCMAKE_GENERATOR="Visual Studio 17 2022" -DARCHITECTURE=arm64 -P buildall.cmake
cd ..
mkdir build_vs2022_arm64
cd build_vs2022_arm64
cmake .. -G "Visual Studio 17 2022" -A arm64
cmake --build . --config release
cmake --build . --config release --target install
cmake --build . --config release --target zip

(arm64のところをx64,win32に変えれば、各々のバイナリが作れます)

arm64環境がないのでexeの実行など全くテストは行えていません。 様子を見て特に指摘などなければmainにマージしようと思います。

zmatsuo commented 2 days ago

arm64サポートを main にマージしました。