モジュールに対して依存モジュールを指定する方法に関しまして、調べましたところ以下の2種類が存在するように見受けられます。
- Hoge.uprojectのModulesのAdditionalDependencies
- Hoge.Build.csのPublic(Private)DependencyModuleNames.AddRange()
どういった違いがありますでしょうか?
また、どちらを使うのが良い等あれば教えていただけますと幸いです。
調べてみたところ、下記のドキュメントは見つかったのですが、違いについての記載されているものは見つかりませんでした。
下記は依存モジュールの指定方法に関しての検証です。
新規でUe4DepandencySampleというプロジェクトを作成しています。
Ue4DependencySampleというモジュールが新規で作成され、下記のようなuprojectとBuild.csが自動生成されました。
自動生成されたUe4DependencySample/Ue4DependencySample.uproject
{
"FileVersion": 3,
"EngineAssociation": "4.27",
"Category": "",
"Description": "",
"Modules": [
{
"Name": "Ue4DependencySample",
"Type": "Runtime",
"LoadingPhase": "Default"
}
]
}
自動生成されたUe4DependencySample/Source/Ue4DependencySample/Ue4DependencySample.Build.cs
using UnrealBuildTool;
public class Ue4DependencySample : ModuleRules
{
public Ue4DependencySample(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
PrivateDependencyModuleNames.AddRange(new string[] { });
}
}
試しに下記のようにBuild.csのPublicDependencyModuleNames.AddRange(new string[] { })から依存モジュールを消し、依存モジュールをuprojectのModulesのAdditionalDependenciesに追加してビルドしました。
無事ビルドが通り、エディタ起動も問題なく行えました。
修正後のUe4DependencySample/Ue4DependencySample.uproject
{
"FileVersion": 3,
"EngineAssociation": "4.27",
"Category": "",
"Description": "",
"Modules": [
{
"Name": "Ue4DependencySample",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"Core",
"CoreUObject",
"Engine",
"InputCore"
]
}
]
}
修正後のUe4DependencySample/Source\Ue4DependencySample/Ue4DependencySample.Build.cs
using UnrealBuildTool;
public class Ue4DependencySample : ModuleRules
{
public Ue4DependencySample(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { });
PrivateDependencyModuleNames.AddRange(new string[] { });
}
}