Skip to content

Commit e1a8656

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

File tree

1 file changed

+43
-16
lines changed

1 file changed

+43
-16
lines changed

nimp/base_commands/package.py

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,10 @@ def run(self, env):
258258
)
259259

260260
if env.variant:
261-
variant_configuration_directory = package_configuration.configuration_directory + '/Variants/Active'
261+
if env.use_ue_custom_config:
262+
variant_configuration_directory = package_configuration.configuration_directory + '/Custom/' + env.variant
263+
else:
264+
variant_configuration_directory = package_configuration.configuration_directory + '/Variants/Active'
262265
if os.path.exists(variant_configuration_directory):
263266
package_configuration.configuration_directory = variant_configuration_directory
264267
variant_resource_directory = package_configuration.resource_directory + '/Variants/' + env.variant
@@ -416,17 +419,24 @@ def _setup_default_config_file(config_file):
416419
if is_monorepo_behavior:
417420
_try_remove(active_configuration_directory, False)
418421
if should_configure_variant:
419-
variant_configuration_directory = f'{project_directory}/Config/Variants/{env.variant}'
422+
if env.use_ue_custom_config:
423+
variant_configuration_directory = f'{project_directory}/Config/Custom/{env.variant}'
424+
else:
425+
variant_configuration_directory = f'{project_directory}/Config/Variants/{env.variant}'
420426
if not os.path.exists(variant_configuration_directory):
421427
raise FileNotFoundError(f"Variant not found : {variant_configuration_directory}")
422-
logging.info(f'configuring variant {env.variant} in : {active_configuration_directory}')
423-
shutil.copytree(
424-
variant_configuration_directory, active_configuration_directory, copy_function=shutil.copyfile
425-
)
428+
configuration_directory = variant_configuration_directory
429+
if not env.use_ue_custom_config:
430+
logging.info('configuring variant %s in : %s', env.variant, active_configuration_directory)
431+
shutil.copytree(
432+
variant_configuration_directory, active_configuration_directory, copy_function=shutil.copyfile
433+
)
434+
configuration_directory = active_configuration_directory
435+
426436
# necessary for shader debug info in case no defaultEngine is present
427-
_setup_default_config_file(f'{active_configuration_directory}/DefaultEngine.ini')
428-
_setup_default_config_file(f'{active_configuration_directory}/DefaultGame.ini')
429-
Package.write_project_revisions(env, active_configuration_directory)
437+
_setup_default_config_file(f'{configuration_directory}/DefaultEngine.ini')
438+
_setup_default_config_file(f'{configuration_directory}/DefaultGame.ini')
439+
Package.write_project_revisions(env, configuration_directory)
430440
if env.unreal_platform == 'PS5':
431441
# UE only supports a single TitleConfiguration.json describing builds of the same package.
432442
# To have DLCs in their own packages, we need to select the variant's one by copying it
@@ -457,13 +467,19 @@ def enumerate_unreal_configs(env):
457467
# order matters: from deepest ini to broadest (deep<-variant<-platform<-game)
458468
config_files_patterns = []
459469
if hasattr(env, 'variant') and env.variant:
460-
config_files_patterns.extend(
470+
if env.use_ue_custom_config:
471+
config_files_patterns.extend([
472+
'{uproject_dir}/Config/{cook_platform}/Custom/{variant}/{cook_platform}Game.ini',
473+
'{uproject_dir}/Config/Custom/{variant}/DefaultGame.ini'
474+
])
475+
else:
476+
config_files_patterns.extend(
461477
[
462-
'{uproject_dir}/Config/Variants/Active/{cook_platform}/{cook_platform}Game.ini',
463-
'{uproject_dir}/Config/Variants/{variant}/{cook_platform}/{cook_platform}Game.ini',
464-
'{uproject_dir}/Config/Variants/Active/DefaultGame.ini',
465-
'{uproject_dir}/Config/Variants/{variant}/DefaultGame.ini',
466-
]
478+
'{uproject_dir}/Config/Variants/Active/{cook_platform}/{cook_platform}Game.ini',
479+
'{uproject_dir}/Config/Variants/{variant}/{cook_platform}/{cook_platform}Game.ini',
480+
'{uproject_dir}/Config/Variants/Active/DefaultGame.ini',
481+
'{uproject_dir}/Config/Variants/{variant}/DefaultGame.ini',
482+
]
467483
)
468484
config_files_patterns.extend(
469485
[
@@ -784,7 +800,10 @@ def cook(env, package_configuration):
784800
cook_command += shlex.split(option)
785801

786802
# Load the active variant
787-
cook_command += ['-DNEConfigVariant']
803+
if env.variant:
804+
if env.use_ue_custom_config:
805+
cook_command += [ f'-CustomConfig={env.variant}' ]
806+
cook_command += [ '-DNEConfigVariant' ]
788807

789808
if package_configuration.shader_debug_info:
790809
sdb_path = (
@@ -892,6 +911,10 @@ def stage(env, package_configuration):
892911
if env.is_dne_legacy_ue4:
893912
stage_command += ['-SkipPak']
894913

914+
if env.use_ue_custom_config:
915+
if env.variant:
916+
stage_command += [ f'-CustomConfig={env.variant}' ]
917+
895918
stage_success = nimp.sys.process.call(stage_command, dry_run=env.dry_run, heartbeat=60)
896919
if stage_success != 0:
897920
raise RuntimeError('Stage failed')
@@ -1505,6 +1528,10 @@ def package_with_uat(env, package_configuration):
15051528
if package_configuration.no_compile_packaging:
15061529
package_command += ['-NoCompile']
15071530

1531+
if env.use_ue_custom_config:
1532+
if env.variant:
1533+
package_command += [ f'-CustomConfig={env.variant}' ]
1534+
15081535
for option in package_configuration.extra_options:
15091536
package_command += shlex.split(option)
15101537

0 commit comments

Comments
 (0)