-
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
tests1 プロジェクトをリビルドしたりクリーンすると異なる構成のビルドに影響してしまう #1013
Comments
なんかユニットテストフレームワークのライブラリのビルドの面倒を見る事にマンパワーが取られるのって不毛な気がするんですよね。。 |
不備の心当たりがあるので「うっ!」という感じです:sob: ときに、再現しませんでしたが手順あってます?
なお、3の手順で普通にRebuildするとWin32/x64切替でビルドが走ります。 |
自分の方でもその手順で再確認してみますね。 自分は確認した時には Batch Build を使わずにコンボボックスの選択を切り替えて行ってました。
それって、
って事でしょうか? うーん、微妙だなぁ。。 |
@berryzplus さん 再確認してみました。 という事は #999 や #1001 の対応に問題があったわけではなく、自分が依存関係を考えずにリビルドやクリーンを行った後に予期しない結果に驚いたというだけの事みたいです。 …と思いきや、 考えられる対処方法としては |
簡易的な方法で対策コミットを作ってみたんですが、依存関係の他にもマズい点があるようです。
間違っちゃいないんですが、本質は別のところにありました。 実は、x64とWin32、DebugとReleaseは、ソースコードを共有しているんです(キリッ サクラエディタのソースコードは、一部が自動生成されています。
リビルドはクリーンしてビルドですが、クリーン時にこれらのファイルを削除するようにしているので、それが原因でビルドが走っているみたいです。 考え得る対策
|
自動生成ファイルを作成する専用のプロジェクトを用意するとかも良いんじゃないかと思います。 |
サクラエディタの さて、サクラエディタのcppファイルは全部で370個くらいあります。 自動生成ファイルのうち、 約370個あるcppのうち、本当に 変更量がそれなりに多いわりに効果が微妙なので、「う~む」という感じです。 |
こういう流れで取り込んでいる事が分かりました。 ヘッダファイルには
|
修正ファイル数22、リビルドされるファイル数165の時点で止めてしまいましたが、似たようなことをやってました 😄 対応による変化をどう捉えるかですよね。
前者の考え方をしたほうが幸せでいられると思うんですが、これまでのプロジェクトの流れでは後者の考え方による否定的なコメントが多かったように思います。 技術的な裏付けがある修正対応で、 自動生成ファイルの出力先を分ける対応を入れれば、このPRの困りごと自体は解決できるはずで、「対応すべきなのかどうか」はやっぱり「微妙」なんですけどね 😢 少なくとも「対応する価値」はあるような気がします。 |
他の手段としてパフォーマンスは低下しますが、ビルド時に静的に数値の対応付けを解決させるのではなく、実行時にランタイムで文字列をキーにしたハッシュテーブル等を経由して動的に解決させるように作り変えるという方法もあると思います。 おそらくパフォーマンスの低下は許容出来る範囲内だと思いますが、コードの書き換えが大変手間なので別の意味で実現可能性が低いかも知れません…。 |
自動生成ファイルの出力先を構成毎に分ける方法で解決するべきなのかどうかは判断付きかねます。
もっとも |
この問題は解消したと思うので Close します。 UnitTestのプロジェクトが犯人だと思っていたらそんな事はなかったので申し訳ないです。 |
問題内容
x64/Win32, Debug/Release と4つの組み合わせの構成がありますが、ある構成で tests1 プロジェクトをリビルドしたりクリーンすると、異なる構成の sakura プロジェクトや tests1 プロジェクトのビルドを既に済ませていたのに再度ビルドを行わないといけなくなります。
おそらく依存関係が適切でなくて、異なる構成のファイルを巻き込んで変更したり削除してしまっているものと思われます。
再現手順
再現頻度
毎回発生
問題のカテゴリ
関連チケット
#999, #1001
The text was updated successfully, but these errors were encountered: