### request - x64 - #129 - arm64 - #227 ### 現状 x86 ビルドのバイナリは Windows の [WOW64](https://ja.wikipedia.org/wiki/WOW64) により x64 Windows, Arm Winodws で実行可能である。 ### 対応するメリット - 確実に(どの程度?)実行可能である ### 対応するデメリット(コスト) - 現在は徹底して「1つのリリースバージョンは1つのバイナリ」になるようにしている - バグ等の報告の際、ビルドの差による影響を完全に排除するため - インストーラ版とzip版に全く同じバイナリを含める(ソースは同じでリビルドされたもの、ではない)ようにしている cf. ttssh2-devel 4728, 4769, 4773, 4776, ttssh2-dev 273, https://github.com/TeraTermProject/teraterm/wiki/Prevent-rebuild - バグ等への対応 - 「バイナリのアーキテクチャ固有の問題かどうかの切り分け」「問題発見者が報告にアーキテクチャを含めてくれるか」「修正対応者がを実機を持っていて確認できるか」など - 使用しているすべてのライブラリが、そのアーキテクチャ用にビルドできるか - 複数アーキテクチャに対応したソースを書く必要がある - 複数アーキテクチャのバイナリを(AppVeyorで)ビルドする必要がある - 複数アーキテクチャのためにインストーラ(とzip版?)を作成する必要がある cf. 過去に出した x64 に関する意見 ttssh2-devel 3994 ### まとめ - [x] 各アーキテクチャのビルド - [x] 既存のアーティファクト名を修正 - [x] ファイル名が変わる - `teraterm-x.y.z.exe` -> `teraterm-x.y.z-x86.exe`, `teraterm-x.y.z-x64.exe`, `teraterm-x.y.z-arm64.exe` - `teraterm-x.y.z.zip` -> `teraterm-x.y.z-x86.zip`, `teraterm-x.y.z-x64.zip`, `teraterm-x.y.z-arm64.zip` - [x] インストールできるOS https://github.com/TeraTermProject/teraterm/issues/228#issuecomment-3179111593 - x86 ... x86, x64, arm64 にインストール可能 - x64 ... x64, arm64 にインストール可能 - arm64 ... arm64 にインストール可能 - 制限は[しない](https://github.com/TeraTermProject/teraterm/issues/228#issuecomment-3188509343) - [ ] プログラムメニューのグループ名 - [ ] デスクトップのショートカット名
Activity
zmatsuo commentedon Jun 5, 2024
テストできるバイナリがないとテストが進まないところがジレンマですね。
x64版はビルド可能で、動作も問題なさそうです。
手もとで日常使いしています。一人テスト状態ですね。
x86が正式バイナリ、x64版,ARM版は実験的バイナリとして
ダウンロードできる状態にするのはどうでしょうか。
従来(x86版)を優先してx64,ARM版は後回しでまずは進めればよいかなと思います。
_M_X64 で動作を分岐している箇所がいくつかあります。
最もアーキテクチャ依存が大きい箇所が common/ttdebug.cpp 内の
レジスタ表示だと思います。
ダンプを使っての調査の方が便利(レジスタ見てもすぐわからない)ので
x64ではレジスタ表示を省いています。ARMでもレジスタ表示は不要かなと思います。
ローカルの開発環境が整っていれば
ci_scripts\build_local_appveyor_vs2022_x64.batを実行すれば x64のzip,インストーラーができてきます。
これを AppVeyor で動かせれば作成できるはずです。
ARM版はまだ手つかずで、現在はARM版をすぐ作ることはできないです。
またバイナリができても
手もとに実機がないのでテストができないです。
ビルド対象が増えるとビルド時間が増えるのも欠点ですね。
GitHub でビルドするともう少し速くなりそうです #208
GitHubにpushすれば、自動でビルドがかかり、
snapshot のx86版と beta の x64,ARM版 バイナリが
ダウンロードできる状態になるのが手間なくていいなと思います。
可能なのか、CPU時間やストレージにコストがかかるかも?
などよくわかっていないところです。
zmatsuo commentedon Jun 30, 2024
cmakeビルドでarm64版バイナリがビルドできました。
#228-arm64 ブランチです。
ライブラリ、Tera Termのソースで特に引っ掛かるところはなく
exeを生成することができました。
ツールがそろっていればソースツリーのtopから次の手順でビルドできます。
(arm64のところをx64,win32に変えれば、各々のバイナリが作れます)
arm64環境がないのでexeの実行など全くテストは行えていません。
様子を見て特に指摘などなければmainにマージしようと思います。
arm64サポート(experimental) #228
Merge pull request #243 from TeraTermProject/#228-arm64
zmatsuo commentedon Jul 3, 2024
arm64サポートを main にマージしました。
nmaya commentedon Mar 9, 2025
今の release.bat
graph TD; start-->chm; chm-->libs; libs-->vcxproj; vcxproj-->cygterm; cygterm-->zip; zip-->installer; installer-->stop;直列に実行される。直列なのが悪いと言っているわけではない。
依存関係
こうなっているはず
graph TD; start-->chm; start-->cygterm/arch:x64; start-->libs/arch:x86; chm-->zip; chm-->installer/arch:x86; cygterm/arch:x64-->zip; cygterm/arch:x64-->installer/arch:x86; libs/arch:x86-->vcxproj/arch:x86; vcxproj/arch:x86-->zip; vcxproj/arch:x86-->installer/arch:x86; zip-->stop; installer/arch:x86-->stop;こうなるといい?
graph TD; start-->chm; start-->cygterm/arch:x64; start-->libs/arch:x86; start-->libs/arch:x64; start-->libs/arch:arm64; chm-->zip; chm-->installer/arch:x86; cygterm/arch:x64-->zip; cygterm/arch:x64-->installer/arch:x86; libs/arch:x86-->vcxproj/arch:x86; libs/arch:x64-->vcxproj/arch:x64; libs/arch:arm64-->vcxproj/arch:arm64; vcxproj/arch:x86-->zip; vcxproj/arch:x86-->installer/arch:x86; vcxproj/arch:x64-->zip_bin_x64; vcxproj/arch:arm64-->zip_bin_arm64; zip-->stop; zip_bin_x64-->stop; zip_bin_arm64-->stop; installer/arch:x86-->stop;GitHub Actions で、cmake を使って Win32 x64 arm64 をビルド TeraTermProject#228
開始条件を変更 TeraTermProject#228
開始条件を変更 #228
開始条件を変更 TeraTermProject#228
キャッシュのリストアでソースツリーのファイルが古くなっても復旧するようにした TeraTermProject#228
57 remaining items
Windows の「アプリ」「プログラム」での表示名を変更 TeraTermProject#228
Oniguruma ビルドの出力先を変更 TeraTermProject#228
zlib ビルドの出力先を変更 TeraTermProject#228
LibreSSL ビルドの出力先を変更 TeraTermProject#228
SFMT ビルドの出力先を変更 TeraTermProject#228
Visual Studio プロジェクトのビルドの出力先を変更 TeraTermProject#228
ビルドの Target Platform に変数を使うようにした TeraTermProject#228
ビルドスクリプトを整理 TeraTermProject#228
x64 の構成をを追加 TeraTermProject#228
ARM64 の構成を追加 TeraTermProject#228
ドキュメントを修正 TeraTermProject#228
Windows の「アプリ」「プログラム」での表示名を変更 TeraTermProject#228
リリース手順を修正 #824
ドキュメント "動作環境" に x64, arm64 について追記 #228
Merge pull request #830 from TeraTermProject/fix/#228-doc_requirements