@@ -14,44 +14,50 @@ bool OverrideConfigValue(const FString& FileName,const FString& Section,const FS
1414 if (GConfig->GetInt ( *Section, *Key, DefaultValue, FileName ))
1515 {
1616 GConfig->SetInt ( *Section, *Key, NewValue, FileName );
17- UE_LOG (LogCmdHandler, Display, TEXT (" Override section : %s key: %s from %d to %d." ), *Section,*Key,DefaultValue,NewValue);
17+ UE_LOG (LogCmdHandler, Display, TEXT (" Override Section : %s key: %s from %d to %d." ), *Section,*Key,DefaultValue,NewValue);
1818 bRet = true ;
1919 }
2020 else
2121 {
22- UE_LOG (LogCmdHandler, Warning, TEXT (" section : %s key: %s is not found!" ), *Section,*Key);
22+ UE_LOG (LogCmdHandler, Warning, TEXT (" Override Section : %s key: %s is not found!" ), *Section,*Key);
2323 }
2424 return bRet;
2525}
2626
27+ #if WITH_EDITOR
28+ static bool bDDCUrl = false ;
2729static FString MultiCookerDDCBackendName = TEXT(" MultiCookerDDC" );
28- void AddMultiCookerBackendToConfig (const FString& DDCAddr)
30+ bool AddMultiCookerBackendToConfig (const FString& DDCAddr)
2931{
30- if (DDCAddr.IsEmpty ())
32+ bool bStatus = false ;
33+ UE_LOG (LogCmdHandler,Display,TEXT (" -ddcurl: %s" ),*DDCAddr);
34+ if (DDCAddr.IsEmpty () || DDCAddr.StartsWith (TEXT (" " )))
3135 {
3236 UE_LOG (LogCmdHandler, Warning, TEXT (" not use MultiCookerDDC" ));
33- return ;
37+ return bStatus ;
3438 }
3539 auto EngineIniIns = GConfig->FindConfigFile (GEngineIni);
3640 auto MultiCookerDDCBackendSection = EngineIniIns->FindOrAddSection (MultiCookerDDCBackendName);
37-
41+ MultiCookerDDCBackendSection->Empty ();
42+
3843 auto UpdateKeyLambda = [](FConfigSection* Section,const FString& Key,const FString& Value)
3944 {
4045 if (Section->Find (*Key))
4146 {
4247 Section->Remove (*Key);
4348 }
49+ UE_LOG (LogCmdHandler, Display, TEXT (" Override Section MultiCookerDDC key: %s to %d." ),*Key,*Value);
4450 Section->Add (*Key,FConfigValue (*Value));
4551 };
4652
4753 UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" MinimumDaysToKeepFile" ),TEXT (" 7" ));
4854 UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" Root" ),TEXT (" (Type=KeyLength, Length=120, Inner=AsyncPut)" ));
4955 UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" AsyncPut" ),TEXT (" (Type=AsyncPut, Inner=Hierarchy)" ));
50- UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" Hierarchy" ),TEXT (" (Type=Hierarchical, Inner=Boot, Inner=PakWrite , Inner=PakRead , Inner=Local, Inner=Shared)" ));
56+ UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" Hierarchy" ),TEXT (" (Type=Hierarchical, Inner=Boot, Inner=Pak , Inner=EnginePak , Inner=Local, Inner=Shared)" ));
5157 UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" Boot" ),TEXT (" (Type=Boot, Filename=\" %GAMEDIR%DerivedDataCache/Boot.ddc\" , MaxCacheSize=512)" ));
5258
5359 FString DDC = FString::Printf (
54- TEXT (" (Type=FileSystem, ReadOnly=false, Clean=true, Flush=false, DeleteUnused=true , UnusedFileAge=10, FoldersToClean=10, MaxFileChecksPerSec=1, ConsiderSlowAt=70, PromptIfMissing=false , Path=%s, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache)" ),
60+ TEXT (" (Type=FileSystem, ReadOnly=false, Clean=true, Flush=false, DeleteUnused=false , UnusedFileAge=10, FoldersToClean=10, MaxFileChecksPerSec=1, Path=%s, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache)" ),
5561 *DDCAddr
5662 );
5763 UpdateKeyLambda (MultiCookerDDCBackendSection,TEXT (" Shared" ),DDC);
@@ -61,13 +67,15 @@ void AddMultiCookerBackendToConfig(const FString& DDCAddr)
6167 {
6268 DDCBackendName = MultiCookerDDCBackendName;
6369 FCommandLine::Append (*FString::Printf (TEXT (" -ddc=%s" ),*DDCBackendName));
64- UE_LOG (LogCmdHandler, Warning, TEXT (" Append cmd: %s" ),FCommandLine::Get ());
70+ UE_LOG (LogCmdHandler, Display, TEXT (" Append cmd: %s" ),FCommandLine::Get ());
71+ bStatus = true ;
6572 }
66- UE_LOG (LogCmdHandler, Warning, TEXT (" use MultiCookerDDC: %s" ),*DDCBackendName);
73+
74+ UE_LOG (LogCmdHandler, Display, TEXT (" Use DDCBackend: %s" ),*DDCBackendName);
75+ return bStatus;
6776}
6877
69- static bool bDDCUrl = false ;
70- void FCmdHandlerModule::StartupModule ()
78+ void OverrideEditorEnv ()
7179{
7280 int32 OverrideNumUnusedShaderCompilingThreads = 3 ;
7381 if (FParse::Value (FCommandLine::Get (), TEXT (" -MaxShaderWorker=" ), OverrideNumUnusedShaderCompilingThreads))
@@ -92,19 +100,50 @@ void FCmdHandlerModule::StartupModule()
92100 FString DDCURL;
93101 if (FParse::Value (FCommandLine::Get (),TEXT (" -ddcurl=" ),DDCURL) && !DDCURL.IsEmpty ())
94102 {
95- AddMultiCookerBackendToConfig (DDCURL);
96- bDDCUrl = true ;
103+ bDDCUrl = AddMultiCookerBackendToConfig (DDCURL);
97104 }
98105}
99106
100- void FCmdHandlerModule::ShutdownModule ()
107+ void UnOverrideEditorEnv ()
101108{
102109 if (bDDCUrl)
103110 {
104111 auto EngineIniIns = GConfig->FindConfigFile (GEngineIni);
105112 EngineIniIns->Remove (MultiCookerDDCBackendName);
106113 }
107114}
115+
116+ #else
117+
118+ void OverrideRuntimeEnv ()
119+ {
120+
121+ }
122+
123+ void UnOverrideRuntimeEnv ()
124+ {
125+
126+ }
127+ #endif
128+
129+ void FCmdHandlerModule::StartupModule ()
130+ {
131+ #if WITH_EDITOR
132+ OverrideEditorEnv ();
133+ #else
134+ OverrideRuntimeEnv ();
135+ #endif
136+ }
137+
138+ void FCmdHandlerModule::ShutdownModule ()
139+ {
140+ #if WITH_EDITOR
141+ UnOverrideEditorEnv ();
142+ #else
143+ UnOverrideRuntimeEnv ();
144+ #endif
145+ }
146+
108147#undef LOCTEXT_NAMESPACE
109148
110149IMPLEMENT_MODULE (FCmdHandlerModule, CmdHandler)
0 commit comments