お世話になっております。
Unreal Engine Projectのビルド時に、コンパイラオプションを指定してビルドしたいです。
プロダクトの品質管理のために、/sdlや/GSなどのコンパイラオプションをつけてビルドしたいのですが、どのようにすればよいでしょうか?
TargetRulesにStaticAnalyzerを指定することでUBTの静的解析ツールがかかることは確認していますが、追加でコンパイラオプションを有効にしたいと考えています。
UEの静的解析ツールUBTのドキュメントにはRunUBT.batを使う説明がされていますが、UE5.3-5.5ではRunUBT.batは存在しないようです。
どうぞよろしくお願いいたします。
お世話になっております。
コンパイルオプションは UnrealBuildTool が指定するようになっています。
オプションの追加を行うには VCToolChain.cs 内の AppendCLArguments_Global 関数などに追記するような形になるかと思います。
これにはソースコード版のエンジンが必要です(https://www.unrealengine.com/ja/ue-on-github)。
エンジンの改変に伴う事柄についてはサポート外となる点にご注意下さい。
ご指摘の通り、Launcher 版のエンジンには RunUBT.bat が含まれていないようです。
これに関しては確認中ですのでお待ち下さい。
よろしくお願いいたします。
Launcher 版のエンジンに RunUBT.bat が含まれていないことに関しては、とりあえず仕様ということのようです
(ですので、静的解析についてのドキュメントはコードからビルドしたエンジンをもとに書かれた内容になっているものと考えられます)。
確実な理由は不明なのですが、RunUBT.bat(及び関連する幾つかのファイル)はエンジンをビルドすることを主目的としたものであるためかもしれません。
よろしくお願いいたします。
ありがとうございます。
RunUBT.batが含まれていない理由について理解出来ました。
もう一件、本筋から外れてしまうかもしれないので、必要であれば改めますが、Traget.csに下記のようにUEの静的解析ツールをオンにした場合に、どのようなコンパイルオプションがオンになっているかについて確認したいのですが、どちらで確認すればよろしいでしょうか?
Visual Studioコンパイラの静的解析ツールを内部的に利用しているものと思いますが、その中身を知りたく質問させていただきました。
```
StaticAnalyzer = StaticAnalyzer.VisualCpp;
```
ありがとうございます。
VCToolChain.csの中に静的解析用のコンパイルオプションが追加されていることを確認できました。
本件クローズで構いません。
ご対応ありがとうございました。
コンパイラオプションの確認方法については以下が参考になるかと思います。
なお、現在のバージョンにおいては response ファイルの拡張子が .response から .rsp に変更されているようです。
コードとしては VCToolChain.cs 内にて Target.StaticAnalyzer に応じた引数の追加が行われています。
StaticAnalyzer.VisualCpp は StaticAnalyzer.Default と同じ値ですが、プログラム内では基本的に後者で記述されています。
よろしくお願いいたします。