-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
リビルド時、githash.hが再生成されるように修正 #1757
リビルド時、githash.hが再生成されるように修正 #1757
Conversation
Kudos, SonarCloud Quality Gate passed! |
✅ Build sakura 1.0.3978 completed (commit 15dd34f9ff by @berryzplus) |
@@ -9,4 +9,10 @@ | |||
BeforeTargets="ClCompile"> | |||
<Exec Command="..\sakura\githash.bat ..\sakura_core $(GeneratedGitHash)" /> | |||
</Target> | |||
<Target Name="AppendCleanTargets" BeforeTargets="CoreClean"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Name が重複しているので変えた方が上書きされないので良いと思います。
このファイル sakura/githash.targets
ですが複数のプロジェクトからImportされています。
- sakura/sakura.vcxproj
- sakura_lang_en_US/sakura_lang_en_US.vcxproj
このうちsakuraプロジェクト用の sakura/sakura.vcxproj
では <Import Project="..\sakura\githash.targets" />
の記述の後方に下記の記述が存在します。
<Target Name="AppendCleanTargets" BeforeTargets="CoreClean">
<!-- Add files to @Clean just before running CoreClean. -->
<ItemGroup>
<Clean Include="$(OutDir)sakura.ini" />
<Clean Include="$(OutDir)bregonig.dll" />
<Clean Include="$(OutDir)ctags.exe" />
</ItemGroup>
</Target>
これで上書きされるので、sakuraプロジェクトをCleanしても sakura/githash.h
ファイルが削除されません。ただし sakura_lang_en_USプロジェクト側でカバーされるので、Clean SolutionやRebuild Solution時には問題は起きません。という事で半ば動きはするので実質的に問題は無いとは言えます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
動いてそうですが、それでも問題ありますか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
プロジェクトごとにビルド/クリーンしているような場合は大丈夫なんでしょうか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SolutionではなくsakuraプロジェクトをCleanした際に sakura/githash.h
ファイルが削除されない事は簡単に確認出来ます。
色々な条件で確認せずになんとなく動いてそうと判断して不完全さが残るお約束というか様式美を体現する芸風に感じ入るところはあるのでApproveしておきます。
PRを撤回します。 |
PR の目的
リビルド時にgithash.hを再作成して、更新されるようにします。
カテゴリ
PR の背景
Git clone後にビルドして、 githash.h が生成された状態にすると、
pullしてソースを最新にしても githash.h が更新されないようです。
#1750 (comment)
PR のメリット
リビルド時にgithash.hが再生成されるようになります。
PR のデメリット (トレードオフとかあれば)
リビルド時にgit情報の変更がなくてもgithash.hが再生成されてしまいます。
仕様・動作説明
リビルド時にgithash.hが再生成されるように、
クリーン時にgithash.hを削除するビルドタスクを追加します。
PR の影響範囲
通常のビルド(≒MinGWビルド以外)に影響する変更です。
アプリの機能には影響を与えないと考えられます。
テスト内容
テスト1
手順
ソリューションをビルドする。 →githash.hが生成されたことを確認。
ソリューションをクリーンする。 →githash.hが削除されたことを確認。
ソリューションをクリーンする。 →githash.hが存在しなくてもエラーにならないことを確認。
ソリューションをリビルドする。 →githash.hが生成されることを確認。
関連 issue, PR
参考資料
追加するタスクは sakura.vcxproj からコピペして作成しました。
sakura/sakura/sakura.vcxproj
Lines 957 to 964 in 42568b8