as well as their remove counterparts.
Updated teh register.py script to be able to register subdirectories to
the o3de_manifest.json
Also added the ability to register external subdirectories to the
project.json if the --external-subdirectory-project-path is supplied
Added the ability to register external subdirectories to the engine.json
if the --external-subdirector-engine-path is supplied
which are to be seen as sub gem roots as a workaround for detecting the
location of the "gem" root for the Atom/AtomLyIntegration GEM_MODULE targets
Removed the logic in the SettingsRegistry.cmake for reading a
"gem_module_roots" key from the gem.json file in order to determine the
root of the Atom and Atom LyIntegration sub gem modules
cmake_dependencies.<prefix>.<target>.setreg files to detect the nearest
gem module root for a cmake target that has been marked with the
GEM_MODULE property.
The list of gem module roots are made up of the gem.json location + list
of paths in the gem.json "gem_module_roots" JSON array if it exist
AtomLyIntegration gems to allow additional module roots to be checked
when determining the root directory of a GEM_MODULE target
With this change the AtomViewportDisplayInfo gem.json as it is no longer
needed.
Removed the ability to suppress errors in the add-gem-to-cmake and add-external-subdirectory command
Reduced duplicate logic in the download.py, register.py and repo.py scripts
Removed the registration.py script and moved the registration of those comamnds directly to the o3de.py script
Reduced the exception scope in the o3de command scripts to be as constrained as possible.
For example instead of having a block of Exception for catching a dictionary KeyError, the block has been updated to just catch KeyError
Added a python test for validating the "register.py --this-engine" functionality
Removed the EngineFinder.cmake file from the Engine cmake directory as it is only needed in a Project
Added an EngineJson.cmake which reads the "external_subdirectories" list from the engine.json file and calls add_subdirectory on it
Re-ordered the population of the generated gem dependency list to prepend the dependencies before the dependent targets
contains the implementation of a subparser command.
Updated the register command to be not register engine gems, templates,
projects and external subdirectories to the o3de_manifest
Updated the register-show command to be able to read the engine's gems,
templates, projects and external subdirectories from the engine.json
file
a key, value mapping of engine name to engine path in the
o3de_manifest.json file
Added a pytest to validate the new engine_name -> engine_path
functionality and registered those test with CTest.
Fixed miscellaneous issues in the registration.py around incorrect
return values for get_*_data functions where some of the returns values
were integers where the return value should have been None