project.json when building a project.
This allows the project to build additional gems via adding the external
subdirectory in the project.json file manually
or using the `o3de.py register --external-subdirectory-path=<path>
--external_subdirectory-project-path-<project-path>` command
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