-
Notifications
You must be signed in to change notification settings - Fork 119
Prevent rebuild
nmaya edited this page Oct 31, 2023
·
2 revisions
Tera Term のリリースでは、一つの操作でインストーラとポータブル (zip) 版が生成される。
インストーラに含まれるバイナリとポータブル版に含まれるバイナリは、同じソースをそれぞれビルドしたものでなく、完全に同じものになるようにしている。cf. ttssh2-devel 4728, ttssh2-dev 273(ビルドのタイムスタンプでも含まれているのか、ソースを全く変更せずリビルドしたバイナリ同士を比較しても差がある)
ビルドするための操作方法が2つあるが、それぞれリビルドされないためにどうしているか解説する。
- PreCompile セクションの指示により、"build.bat rebuild" が実行される
- "libs/buildall.bat" を実行し、ライブラリがビルドされる(すでにビルドされていればリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
- *.sln が "devenv /rebuild release" で実行される(release ターゲット・'''必ずリビルド''')
- Inno Setup により、ビルドされたバイナリを含むインストーラ exe が生成される
- PostCompile セクションの指示により、"makearchive.bat release" が実行される
- "build.bat release" が実行される
- "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(先ほどから SVN リビジョンが上がっていないので teraterm/ttpdlg/svnversion.h は更新されない)
- *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースは変化していないので'''リビルドされない''')''
- ファイルをまとめたスナップショットフォルダが作成される
- "libs/download.cmake" を実行し、ライブラリのソースをダウンロードする
- "libs/buildall.bat" を実行し、ライブラリがビルドされる(すでにビルドされていればリビルドされない)
- ビルド
- RELEASE=1 の場合
- "build.bat rebuild" が実行される
- "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
- *.sln が "devenv /rebuild release" で実行される(release ターゲット・'''必ずリビルド''')
- "makearchive.bat release" が実行される
- "build.bat release" が実行される
- "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(先ほどから SVN リビジョンが上がっていないので teraterm/ttpdlg/svnversion.h は更新されない)
- *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースは変化していないので'''リビルドされない''')
- ファイルをまとめたスナップショットフォルダが作成される
- "build.bat release" が実行される
- rebuild の場合
- "build.bat rebuild" が実行される
- "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
- *.sln が "devenv /rebuild release" で実行される(release ターゲット・'''必ずリビルド''')
- "makearchive.bat" が実行される
- "build.bat" が実行される
- "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(先ほどから SVN リビジョンが上がっていないので teraterm/ttpdlg/svnversion.h は更新されない)
- *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースは変化していないので'''リビルドされない''')
- ファイルをまとめたスナップショットフォルダが作成される
- "build.bat" が実行される
- それ以外 の場合
- "makearchive.bat" が実行される
- "build.bat" が実行される
- "libs/buildall.bat" が実行される(すでにビルドされているのでリビルドされない)
- buildtools\svnrev\svnrev.bat が実行される(SVN リビジョンが上がっていれば teraterm/ttpdlg/svnversion.h が更新される)
- *.sln が "devenv release" で実行される(release ターゲット・rebuild が指定されていない ... ソースに変化があれば'''ビルドされる''')
- ファイルをまとめたスナップショットフォルダが作成される
- "build.bat" が実行される
- スナップショットフォルダが zip 圧縮される
- Inno Setup により、ビルドされたバイナリを含むインストーラ exe が生成される