Skip to content

Commit f339b37

Browse files
phiskotdesveaux
andcommitted
package: use CustomConfig instead of DNEConfigVariant
Co-authored-by: Thomas Desveaux <[email protected]>
1 parent 58e47bd commit f339b37

File tree

1 file changed

+42
-14
lines changed

1 file changed

+42
-14
lines changed

nimp/base_commands/package.py

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,10 @@ def run(self, env):
224224

225225

226226
if env.variant:
227-
variant_configuration_directory = package_configuration.configuration_directory + '/Variants/Active'
227+
if env.unreal_version >= 5.3:
228+
variant_configuration_directory = package_configuration.configuration_directory + '/Custom/' + env.variant
229+
else:
230+
variant_configuration_directory = package_configuration.configuration_directory + '/Variants/Active'
228231
if os.path.exists(variant_configuration_directory):
229232
package_configuration.configuration_directory = variant_configuration_directory
230233
variant_resource_directory = package_configuration.resource_directory + '/Variants/' + env.variant
@@ -363,15 +366,22 @@ def _setup_default_config_file(config_file):
363366
if is_monorepo_behavior:
364367
_try_remove(active_configuration_directory, False)
365368
if should_configure_variant:
366-
variant_configuration_directory = f'{project_directory}/Config/Variants/{env.variant}'
369+
if env.unreal_version >= 5.3:
370+
variant_configuration_directory = f'{project_directory}/Config/Custom/{env.variant}'
371+
else:
372+
variant_configuration_directory = f'{project_directory}/Config/Variants/{env.variant}'
367373
if not os.path.exists(variant_configuration_directory):
368374
raise FileNotFoundError(f"Variant not found : {variant_configuration_directory}")
369-
logging.info(f'configuring variant {env.variant} in : {active_configuration_directory}')
370-
shutil.copytree(variant_configuration_directory, active_configuration_directory, copy_function=shutil.copyfile)
375+
configuration_directory = variant_configuration_directory
376+
if not env.unreal_version >= 5.3:
377+
logging.info('configuring variant %s in : %s', env.variant, active_configuration_directory)
378+
shutil.copytree(variant_configuration_directory, active_configuration_directory, copy_function=shutil.copyfile)
379+
configuration_directory = active_configuration_directory
380+
371381
# necessary for shader debug info in case no defaultEngine is present
372-
_setup_default_config_file(f'{active_configuration_directory}/DefaultEngine.ini')
373-
_setup_default_config_file(f'{active_configuration_directory}/DefaultGame.ini')
374-
Package.write_project_revisions(env, active_configuration_directory)
382+
_setup_default_config_file(f'{configuration_directory}/DefaultEngine.ini')
383+
_setup_default_config_file(f'{configuration_directory}/DefaultGame.ini')
384+
Package.write_project_revisions(env, configuration_directory)
375385
if env.unreal_platform == 'PS5':
376386
# UE only supports a single TitleConfiguration.json describing builds of the same package.
377387
# To have DLCs in their own packages, we need to select the variant's one by copying it
@@ -412,12 +422,18 @@ def enumerate_unreal_configs(env):
412422
# order matters: from deepest ini to broadest (deep<-variant<-platform<-game)
413423
config_files_patterns = []
414424
if hasattr(env, 'variant') and env.variant:
415-
config_files_patterns.extend([
416-
'{uproject_dir}/Config/Variants/Active/{cook_platform}/{cook_platform}Game.ini',
417-
'{uproject_dir}/Config/Variants/{variant}/{cook_platform}/{cook_platform}Game.ini',
418-
'{uproject_dir}/Config/Variants/Active/DefaultGame.ini',
419-
'{uproject_dir}/Config/Variants/{variant}/DefaultGame.ini'
420-
])
425+
if env.unreal_version >= 5.3:
426+
config_files_patterns.extend([
427+
'{uproject_dir}/Config/{cook_platform}/Custom/{variant}/{cook_platform}Game.ini',
428+
'{uproject_dir}/Config/Custom/{variant}/DefaultGame.ini'
429+
])
430+
else:
431+
config_files_patterns.extend([
432+
'{uproject_dir}/Config/Variants/Active/{cook_platform}/{cook_platform}Game.ini',
433+
'{uproject_dir}/Config/Variants/{variant}/{cook_platform}/{cook_platform}Game.ini',
434+
'{uproject_dir}/Config/Variants/Active/DefaultGame.ini',
435+
'{uproject_dir}/Config/Variants/{variant}/DefaultGame.ini'
436+
])
421437
config_files_patterns.extend([
422438
'{uproject_dir}/Platforms/{cook_platform}/Config/DefaultGame.ini',
423439
'{uproject_dir}/Config/DefaultGame.ini',
@@ -694,7 +710,11 @@ def cook(env, package_configuration):
694710
cook_command += shlex.split(option)
695711

696712
# Load the active variant
697-
cook_command += [ '-DNEConfigVariant' ]
713+
if env.unreal_version >= 5.3:
714+
if env.variant:
715+
cook_command += [ f'-CustomConfig={env.variant}' ]
716+
else:
717+
cook_command += [ '-DNEConfigVariant' ]
698718

699719
if package_configuration.shader_debug_info:
700720
sdb_path = package_configuration.project_directory + '/Saved/ShaderDebugInfo/' + package_configuration.target_platform
@@ -790,6 +810,10 @@ def stage(env, package_configuration):
790810
if env.is_dne_legacy_ue4:
791811
stage_command += [ '-SkipPak' ]
792812

813+
if env.unreal_version >= 5.3:
814+
if env.variant:
815+
stage_command += [ f'-CustomConfig={env.variant}' ]
816+
793817
stage_success = nimp.sys.process.call(stage_command, dry_run=env.dry_run, heartbeat=60)
794818
if stage_success != 0:
795819
raise RuntimeError('Stage failed')
@@ -1280,6 +1304,10 @@ def package_with_uat(env, package_configuration):
12801304
if package_configuration.no_compile_packaging:
12811305
package_command += [ '-NoCompile' ]
12821306

1307+
if env.unreal_version >= 5.3:
1308+
if env.variant:
1309+
package_command += [ f'-CustomConfig={env.variant}' ]
1310+
12831311
for option in package_configuration.extra_options:
12841312
package_command += shlex.split(option)
12851313

0 commit comments

Comments
 (0)