[main] add 3rd party to engine registration
Merge pull request #1131 from aws-lumberyard-dev/default_3rdparty
This commit is contained in:
@@ -97,6 +97,12 @@ def get_o3de_logs_folder() -> pathlib.Path:
|
||||
return logs_folder
|
||||
|
||||
|
||||
def get_o3de_third_party_folder() -> pathlib.Path:
|
||||
third_party_folder = get_o3de_folder() / '3rdParty'
|
||||
third_party_folder.mkdir(parents=True, exist_ok=True)
|
||||
return third_party_folder
|
||||
|
||||
|
||||
# o3de manifest file methods
|
||||
def get_o3de_manifest() -> pathlib.Path:
|
||||
manifest_path = get_o3de_folder() / 'o3de_manifest.json'
|
||||
@@ -113,6 +119,7 @@ def get_o3de_manifest() -> pathlib.Path:
|
||||
default_gems_folder = get_o3de_gems_folder()
|
||||
default_templates_folder = get_o3de_templates_folder()
|
||||
default_restricted_folder = get_o3de_restricted_folder()
|
||||
default_third_party_folder = get_o3de_third_party_folder()
|
||||
|
||||
default_projects_restricted_folder = default_projects_folder / 'Restricted'
|
||||
default_projects_restricted_folder.mkdir(parents=True, exist_ok=True)
|
||||
@@ -129,6 +136,7 @@ def get_o3de_manifest() -> pathlib.Path:
|
||||
json_data.update({'default_gems_folder': default_gems_folder.as_posix()})
|
||||
json_data.update({'default_templates_folder': default_templates_folder.as_posix()})
|
||||
json_data.update({'default_restricted_folder': default_restricted_folder.as_posix()})
|
||||
json_data.update({'default_third_party_folder': default_third_party_folder.as_posix()})
|
||||
|
||||
json_data.update({'projects': []})
|
||||
json_data.update({'external_subdirectories': []})
|
||||
|
||||
@@ -486,7 +486,7 @@ def register_default_engines_folder(json_data: dict,
|
||||
remove: bool = False) -> int:
|
||||
return register_default_o3de_object_folder(json_data,
|
||||
manifest.get_o3de_engines_folder() if remove else default_engines_folder,
|
||||
'default_engines_folder', remove)
|
||||
'default_engines_folder')
|
||||
|
||||
|
||||
def register_default_projects_folder(json_data: dict,
|
||||
@@ -494,7 +494,7 @@ def register_default_projects_folder(json_data: dict,
|
||||
remove: bool = False) -> int:
|
||||
return register_default_o3de_object_folder(json_data,
|
||||
manifest.get_o3de_projects_folder() if remove else default_projects_folder,
|
||||
'default_projects_folder', remove)
|
||||
'default_projects_folder')
|
||||
|
||||
|
||||
def register_default_gems_folder(json_data: dict,
|
||||
@@ -502,7 +502,7 @@ def register_default_gems_folder(json_data: dict,
|
||||
remove: bool = False) -> int:
|
||||
return register_default_o3de_object_folder(json_data,
|
||||
manifest.get_o3de_gems_folder() if remove else default_gems_folder,
|
||||
'default_gems_folder', remove)
|
||||
'default_gems_folder')
|
||||
|
||||
|
||||
def register_default_templates_folder(json_data: dict,
|
||||
@@ -510,16 +510,22 @@ def register_default_templates_folder(json_data: dict,
|
||||
remove: bool = False) -> int:
|
||||
return register_default_o3de_object_folder(json_data,
|
||||
manifest.get_o3de_templates_folder() if remove else default_templates_folder,
|
||||
'default_templates_folder', remove)
|
||||
'default_templates_folder')
|
||||
|
||||
|
||||
def register_default_restricted_folder(json_data: dict,
|
||||
default_restricted_folder: str or pathlib.Path,
|
||||
reset_to_default: bool = False) -> int:
|
||||
remove: bool = False) -> int:
|
||||
return register_default_o3de_object_folder(json_data,
|
||||
manifest.get_o3de_restricted_folder() if remove else default_restricted_folder,
|
||||
'default_restricted_folder', remove)
|
||||
'default_restricted_folder')
|
||||
|
||||
def register_default_third_party_folder(json_data: dict,
|
||||
default_third_party_folder: pathlib.Path,
|
||||
remove: bool = False) -> int:
|
||||
return register_default_o3de_object_folder(json_data,
|
||||
manifest.get_o3de_third_party_folder() if remove else default_third_party_folder,
|
||||
'default_third_party_folder')
|
||||
|
||||
def register(engine_path: str or pathlib.Path = None,
|
||||
project_path: str or pathlib.Path = None,
|
||||
@@ -533,6 +539,7 @@ def register(engine_path: str or pathlib.Path = None,
|
||||
default_gems_folder: str or pathlib.Path = None,
|
||||
default_templates_folder: str or pathlib.Path = None,
|
||||
default_restricted_folder: str or pathlib.Path = None,
|
||||
default_third_party_folder: pathlib.Path = None,
|
||||
external_subdir_engine_path: pathlib.Path = None,
|
||||
external_subdir_project_path: pathlib.Path = None,
|
||||
remove: bool = False,
|
||||
@@ -553,6 +560,7 @@ def register(engine_path: str or pathlib.Path = None,
|
||||
:param default_gems_folder: default gems folder
|
||||
:param default_templates_folder: default templates folder
|
||||
:param default_restricted_folder: default restricted code folder
|
||||
:param default_third_party_folder: default 3rd party cache folder
|
||||
:param external_subdir_engine_path: Path to the engine to use when registering an external subdirectory.
|
||||
The registration occurs in the engine.json file in this case
|
||||
:param external_subdir_engine_path: Path to the project to use when registering an external subdirectory.
|
||||
@@ -620,6 +628,9 @@ def register(engine_path: str or pathlib.Path = None,
|
||||
elif isinstance(default_restricted_folder, str) or isinstance(default_restricted_folder, pathlib.PurePath):
|
||||
result = register_default_restricted_folder(json_data, default_restricted_folder, remove)
|
||||
|
||||
elif default_third_party_folder:
|
||||
result = register_default_third_party_folder(json_data, default_third_party_folder, remove)
|
||||
|
||||
# engine is done LAST
|
||||
# Now that everything that could have an engine context is done, if the engine is supplied that means this is
|
||||
# registering the engine itself
|
||||
@@ -712,6 +723,15 @@ def remove_invalid_o3de_objects() -> None:
|
||||
f" Set default {default_restricted_folder}")
|
||||
register(default_restricted_folder=default_restricted_folder.as_posix())
|
||||
|
||||
default_third_party_folder = pathlib.Path(json_data['default_third_party_folder']).resolve()
|
||||
if not default_third_party_folder.is_dir():
|
||||
default_third_party_folder = manifest.get_o3de_folder() / '3rdParty'
|
||||
default_third_party_folder.mkdir(parents=True, exist_ok=True)
|
||||
logger.warn(
|
||||
f"Default 3rd Party folder {default_third_party_folder} is invalid."
|
||||
f" Set default {default_third_party_folder}")
|
||||
register(default_third_party_folder=default_third_party_folder.as_posix())
|
||||
|
||||
|
||||
def _run_register(args: argparse) -> int:
|
||||
if args.override_home_folder:
|
||||
@@ -751,6 +771,7 @@ def _run_register(args: argparse) -> int:
|
||||
default_gems_folder=args.default_gems_folder,
|
||||
default_templates_folder=args.default_templates_folder,
|
||||
default_restricted_folder=args.default_restricted_folder,
|
||||
default_third_party_folder=args.default_third_party_folder,
|
||||
external_subdir_engine_path=args.external_subdirectory_engine_path,
|
||||
external_subdir_project_path=args.external_subdirectory_project_path,
|
||||
remove=args.remove,
|
||||
@@ -804,6 +825,8 @@ def add_parser_args(parser):
|
||||
help='The default templates folder to register/remove.')
|
||||
group.add_argument('-drf', '--default-restricted-folder', type=str, required=False,
|
||||
help='The default restricted folder to register/remove.')
|
||||
group.add_argument('-dtpf', '--default-third-party-folder', type=pathlib.Path, required=False,
|
||||
help='The default 3rd Party folder to register/remove.')
|
||||
group.add_argument('-u', '--update', action='store_true', required=False,
|
||||
default=False,
|
||||
help='Refresh the repo cache.')
|
||||
|
||||
Reference in New Issue
Block a user