Fix android gradle scripts to prevent cmake_dependencies.<game>.<game>_gamelauncher from being wiped out of the APK
Update gradle script generation to correct task dependencies (#3120) - copyNativeArtifacts must run after syncLYLayoutMode - syncLYLayoutMode must must after externalNativeBuild Signed-off-by: Steve Pham <spham@amazon.com>
This commit is contained in:
@@ -372,9 +372,12 @@ CUSTOM_GRADLE_COPY_NATIVE_CONFIG_BUILD_ARTIFACTS_FORMAT_STR = """
|
||||
}}
|
||||
|
||||
compile{config}Sources.dependsOn copyNativeArtifacts{config}
|
||||
"""
|
||||
|
||||
CUSTOM_GRADLE_COPY_NATIVE_CONFIG_BUILD_ARTIFACTS_DEPENDENCY_FORMAT_STR = """
|
||||
|
||||
copyNativeArtifacts{config}.mustRunAfter {{
|
||||
tasks.findAll {{ task->task.name.contains('externalNativeBuild{config}') }}
|
||||
tasks.findAll {{ task->task.name.contains('syncLYLayoutMode{config}') }}
|
||||
}}
|
||||
"""
|
||||
|
||||
@@ -383,7 +386,13 @@ CUSTOM_APPLY_ASSET_LAYOUT_TASK_FORMAT_STR = """
|
||||
workingDir '{working_dir}'
|
||||
commandLine '{python_full_path}', 'layout_tool.py', '--project-path', '{project_path}', '-p', 'Android', '-a', '{asset_type}', '-m', '{asset_mode}', '--create-layout-root', '-l', '{asset_layout_folder}'
|
||||
}}
|
||||
|
||||
compile{config}Sources.dependsOn syncLYLayoutMode{config}
|
||||
|
||||
syncLYLayoutMode{config}.mustRunAfter {{
|
||||
tasks.findAll {{ task->task.name.contains('externalNativeBuild{config}') }}
|
||||
}}
|
||||
|
||||
"""
|
||||
|
||||
|
||||
@@ -832,25 +841,28 @@ class AndroidProjectGenerator(object):
|
||||
asset_layout_folder=(self.build_dir / 'app/src/main/assets').resolve().as_posix(),
|
||||
file_includes='Test.Assets/**/*.*')
|
||||
else:
|
||||
# Copy over settings registry files from the Registry folder with build output directory
|
||||
gradle_build_env[f'CUSTOM_APPLY_ASSET_LAYOUT_{native_config_upper}_TASK'] = \
|
||||
CUSTOM_APPLY_ASSET_LAYOUT_TASK_FORMAT_STR.format(working_dir=common.normalize_path_for_settings(self.engine_root / 'cmake/Tools'),
|
||||
python_full_path=common.normalize_path_for_settings(self.engine_root / 'python' / PYTHON_SCRIPT),
|
||||
asset_type=self.asset_type,
|
||||
project_path=self.project_path.as_posix(),
|
||||
asset_mode=self.asset_mode if native_config != 'Release' else 'PAK',
|
||||
asset_layout_folder=(self.build_dir / 'app/src/main/assets').resolve().as_posix(),
|
||||
config=native_config)
|
||||
# Copy over settings registry files from the Registry folder with build output directory
|
||||
gradle_build_env[f'CUSTOM_APPLY_ASSET_LAYOUT_{native_config_upper}_TASK'] += \
|
||||
CUSTOM_GRADLE_COPY_NATIVE_CONFIG_BUILD_ARTIFACTS_FORMAT_STR.format(config=native_config,
|
||||
config_lower=native_config_lower,
|
||||
asset_layout_folder=(self.build_dir / 'app/src/main/assets').resolve().as_posix(),
|
||||
file_includes='**/Registry/*.setreg')
|
||||
|
||||
if self.include_assets_in_apk:
|
||||
if not self.is_test_project:
|
||||
if self.include_assets_in_apk:
|
||||
# This is a dependency of the layout sync only if we are including assets in the APK
|
||||
gradle_build_env[f'CUSTOM_APPLY_ASSET_LAYOUT_{native_config_upper}_TASK'] += \
|
||||
CUSTOM_APPLY_ASSET_LAYOUT_TASK_FORMAT_STR.format(working_dir=common.normalize_path_for_settings(self.engine_root / 'cmake/Tools'),
|
||||
python_full_path=common.normalize_path_for_settings(self.engine_root / 'python' / PYTHON_SCRIPT),
|
||||
asset_type=self.asset_type,
|
||||
project_path=self.project_path.as_posix(),
|
||||
asset_mode=self.asset_mode if native_config != 'Release' else 'PAK',
|
||||
asset_layout_folder=(self.build_dir / 'app/src/main/assets').resolve().as_posix(),
|
||||
config=native_config)
|
||||
else:
|
||||
gradle_build_env[f'CUSTOM_APPLY_ASSET_LAYOUT_{native_config_upper}_TASK'] = ''
|
||||
CUSTOM_GRADLE_COPY_NATIVE_CONFIG_BUILD_ARTIFACTS_DEPENDENCY_FORMAT_STR.format(config=native_config)
|
||||
|
||||
|
||||
|
||||
|
||||
if self.signing_config:
|
||||
gradle_build_env[f'SIGNING_{native_config_upper}_CONFIG'] = f'signingConfig signingConfigs.{native_config_lower}' if self.signing_config else ''
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user