Commit Graph

88 Commits

Author SHA1 Message Date
lumberyard-employee-dm b53182fdb6 Fixed invalid variable access in register.py (#3433)
* Fixed invalid variable access in register.py

The register_restricted_path and register_template_path methods did not specify the parameter for project path

Updated register_o3de_object_path function to pass in absolute paths to the engine or project in order to make relative paths to the registered o3de object to it.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed register_*_path resolve calls in register.py

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-08-25 13:29:24 -05:00
Esteban Papp b609d5e2cb supporting multiple directories
automatically excluding obvious things
cleanup and verification

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-08-23 19:41:57 -07:00
Esteban Papp a1b59e5e5e install reorg/cleanup
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-08-19 08:51:29 -07:00
lumberyard-employee-dm 9afbd07a88 Added new feature to the register command to auto detect manifest file based on input path (#2967)
* Added new feature to the register command to auto detect the correct
o3de manifest file to write to based on the supplied registration path

Updated the create-gem command to register the gem on creation.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added new feature to the register command to auto detect the correct
o3de manifest file to write to based on the supplied registration path

Updated the create-gem command to register the gem on creation.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fix incorrect variable reference in register_project_path

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed o3de python package unit test
The enable_gem, register and engine template test have been updated to
account for the logic to register a gem after creation

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added a --no-register arg to engine-template.py
This allows registration of gems/projects using the create-project and
create-gem commands to be skipped

Prevented registration of a gems and projects in the engine_template
command test

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Wrapped first parameter to find_ancestor_dir_containing_file with
pathlib.PurePath

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-08-09 16:58:19 -05:00
AMZN-nggieber 2c7f6f9742 Adds Links to Gem Directory and Documentation for Gems (#2922)
* Changed blue text to white that is not meant as a link, made 'View in Director' link work for gems in the inspector, added parsing for gem documentation link

Signed-off-by: nggieber <nggieber@amazon.com>

* Added documentation links for gems, changed markup for urls in summaries and requirements so they are clickable

Signed-off-by: nggieber <nggieber@amazon.com>

* Fixed a couple of the documentation links

Signed-off-by: nggieber <nggieber@amazon.com>

* Added documentation url to edit gem properties script and updated unit tests

Signed-off-by: nggieber <nggieber@amazon.com>
2021-08-06 10:19:35 -05:00
lumberyard-employee-dm a65b326558 Fixed the enable-gem command unit test (#2880)
* Fixed the enable-gem command unit test

The enable-gem unit test would fail if there wasn't an
o3de_manifest.json file in the users $HOME/.o3de directory

The change now is to patch the call to load the o3de manifest

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adjustments to the enable-gem command unit test to pass on Linux

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-08-05 16:58:57 -05:00
lumberyard-employee-dm 21ca3a4aea The enable-gem command registers gem with project if not registered (#2817)
* The enable_gems command now registers the gem with the project if only registered with o3de_manifest.json

Updated the `enable_gems` command to register the gem with the project if the gem is not registered with either the project or the engine being used.
This allows the gem to be added to the build system if it wasn't registered before.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding quoting around the invocation of the OpenProjectManager command

The --project-path parameter now is able to pass in a path with spaces
to the invocation of the Project Manager.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-08-04 13:13:28 -05:00
lumberyard-employee-dm 055df37482 Register show command fix (#2408)
* Updated print_registration functions to fix "register-show" command

Added unit test to validate the argparse options to the register show
command.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the register.py script to once again register an engine list

Previosly each engine were registered into a dictionary with multiple
keys, but once the engine.json started to self describe the registered
content that came with it, it was reduced to a single 'path' key.
Therefore it has been changed to a list to be consistent with other o3de
object paths

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the SettingsRegistryMergeUtitls Code which parses the attempts to locate the engine path associated associated with the project.json engine key to check the 'engines_path' object within the o3de_manifest.json

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated print registration unit test to patch the get_project_path

This is to make sure that the existence of the placeholder project path
isn't validated when running the test

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Typo and formatting fixes for the print_registration script

Also corrected indentation in unit_test_print_registration script

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-28 16:21:37 -05:00
lumberyard-employee-dm 6868a48bb0 Adding o3de.py subcommands for engine.json and gem.json modification (#2411)
The new commands are edit-engine-properties and edit-gem-properties
They can modify specific fields within these manifest files, that should
affect build system.

More importantly, this commands can be used to modify the "engine_name"
field in the engine.json and the "gem_name" field in the gem.json

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-27 22:04:37 -05:00
Steve Pham 38261d0800 Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
2021-07-16 15:25:48 -07:00
Chris Galvan e924ed0b86 Merged stabilization/2106 to development; Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-12 10:45:23 -05:00
lumberyard-employee-dm 6ebf3a93d1 Added protection in the register python script queries of the default folders against a non-existent key causing a KeyError in python (#1946)
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-09 12:56:29 -05:00
hultonha dee65914f0 Merge remote-tracking branch 'upstream/stabilization/2106' into hultonha/gitflow_210706 2021-07-07 09:23:48 +01:00
lumberyard-employee-dm 8592e4fbbe Added if checks in the get_project* and get_engine* function to protect against None being returned from get_project_json_data and get_engine_json_data respectively (#1880)
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-06 20:42:09 -05:00
hultonha 2ea9bfb144 merge stabilization/2106 into development
Signed-off-by: hultonha <hultonha@amazon.co.uk>
2021-07-06 17:34:04 +01:00
lumberyard-employee-dm d73a98aa2f Added detection of gems which are not directly under an external subdirectory root (#1841)
* Added proper detection of the list of Gems in the Project Templates
enabled_gems.cmake file

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added a CMake alias target for the Atom Gem and the AtomLyIntegration

Both of those targets just aliases the Atom_AtomBridge gem
Therefore they turn on Atom

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Replacing the Atom_AtomBridge gem in the project template with the Atom gem

The Atom gem is just an alias to the Atom_AtomBridge gem

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the manifest.py gem gathering logic to recurse through the external subdirecotories locating gem.json files to discover all gems in a subdirectory

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-02 21:46:26 -05:00
Chris Galvan b9e06e70d9 Fixed copyright header issues per new validator
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-02 15:34:04 -05:00
Chris Galvan d7574777a8 Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-02 12:42:44 -05:00
AMZN-Phil b3fd63a0f3 Merge branch 'stabilization/2106' into LYN-4507 2021-07-02 09:31:22 -07:00
lumberyard-employee-dm 2478c60793 Fixed several o3de python package and install layout issues (#1714)
* Updated the CrashLog directory path to save to the project user
directory instead of the engine-root directory

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Removing the custom OUTPUT_NAME for the Multiplayer Gem Builder target

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Changed the default value for the LY_3RDPARTY_PATH cache variable to be
~/.o3de/3rdParty

This simplifies the first time user experience when running cmake

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed Windows only issue where using creating a VS Solution for an O3DE project on a different drive resulted in an unloaded "<drive letter>:" entry appearing in the solution explorer

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Refactored install layout logic for External Subdirectories

Instead of performing a regular expression over the Gems/* directory, now the each external subdirectory including the project (external) directory is recursied over and scanned for any folders that aren't excluded.
By default those folders are the [Cc]ache, [Bb]uild and [Uu]ser directories

Afterwards the list files to copy over are then split into a directory list and a file list that is filtered by an include regex
Next the directory list is iterated over and the directories are copied to the install layout
Finally the file list is iterated and the list of files are also copied to the install layout

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed the o3de.bat script changing the working directory before running the o3de.py script

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed exception in engine-template.py script when the create-gem command
is invoked with the --template-name parameter that does not correspond
to a registered Template

Updated the create-project command to register the project with the
o3de_manifest.json and the engine with the project as the final step

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed register.py over-registration of non-engine directories when then
--this-engine parameter is supplied.
All the projects, gems and templates inside of the default o3de_manifest
folder locations were being registered with the engine that was being
registered

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed register.py register_project_path() method to return 0 when the
project path is successfully registered.

This issue was that the save_o3de_manifest method "return" value was
being checked and that method doesn't actually return a value

Added question mark to the engine_template.py to correct text around
notifying the user if the project was registered

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added doc comment on the new cmke ly_get_vs_folder_directory function()

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added clarifying comment to the ly_setup_others() command logic to copy over directories and files from any external subdirectories(Gems) that are registered with the engine at the time of install

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed infinite recursion when trying to create a template with the
source directory used to seed the template

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-07-02 00:22:12 -05:00
pconroy a0b754bb4d Fix return value when multiple projects are removed and one fails
Signed-off-by: pconroy <pconroy@amazon.com>
2021-07-01 20:10:23 -07:00
pconroy ae6a424064 Make remove_invalid_o3de_projects take a path and return a value
Signed-off-by: pconroy <pconroy@amazon.com>
2021-07-01 20:10:16 -07:00
pconroy e0c3d15d5a Remove deleted projects from project manager
Signed-off-by: pconroy <pconroy@amazon.com>
2021-07-01 20:10:10 -07:00
Steve Pham b4a2edec6a Final update copyright headers to reference license files at the repo root (#1693)
* Final update copyright headers to reference license files at the repo root

Signed-off-by: spham <spham@amazon.com>

* Fix copyright validator unit tests to support the stale O3DE header scenario

Signed-off-by: spham <spham@amazon.com>
2021-06-30 19:51:55 -07:00
Gene Walters dd206caf37 Updating pytest to work with new project_property::edit_project_props parameters
Signed-off-by: Gene Walters <genewalt@amazon.com>
2021-06-29 23:27:27 -07:00
Gene Walters f905b71844 Adding missing o3de copyright headers
Signed-off-by: Gene Walters <genewalt@amazon.com>
2021-06-29 13:48:45 -07:00
Gene Walters 4e14c0069b Merge branch 'upstream/stabilization/2106' into genewalt/gitflow_210628 2021-06-28 19:09:20 -07:00
Steve Pham 70042fcdcd O3DE Copyright Updates for Linux Foundation (#1504) 2021-06-23 10:55:22 -07:00
Alex Peterson aa885e5d0b Fix project creation (#1445)
* Add ability to change project name

* Fixed several issues where path types were changed

* Added PythonBindings CreateProject unit test

* Fix python warning format

* Validate new project name in CLI

* Fix issue creating pathview on linux

* Use better testing macros

* Refactored the unit_test_engine_template.py test to actually test
against the current engine_template.py commands

The commands of create-template, create-from-template, create-project
and create-gem is now being validated.

Registered the unit_test_engine_template.py script with CTest in the smoke test
suite so that it runs in Automated Review

Fixed issues in the engine_template.py script where the template_restricted_path parameter was required in the create_project and create_gem functions

Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2021-06-23 09:19:17 -07:00
nvsickle e55580af57 Merge remote-tracking branch 'upstream/stabilization/2106' into nvsickle/MergeStabilizationJun18 2021-06-18 13:25:53 -07:00
lumberyard-employee-dm 7dabe8b6e9 Updated Several Engine Gem's CMakeLists.txt to add themselves as required Gems (#1262)
* Fixed organization of the AssetProcessor SourceAssetBrowser

Assets within the Engine Root were grouped under a '/' entry.
That has been fixed to use the relative path within the engine root for
those assets
Assets outside of the Engine Root, but on the same drive were using
absolute paths before. Now there are child entries that navigate up the
directory hierarchy to those asset locations

* Added ly_enable_gems call to Atom gems targets that are required

The DefaultLevel.prefab contains several Atom components, that require
the Atom RHI, RPI, Common_Feature, ShaderBuilder and AtomLyIntegration CommonFeatures
gems to be enabled in order to successfully process in the
AssetProcessor.

* Added ly_enable_gems call to make the Camera gem required in Tools,
Builders and Clients.

This is needed as the DefaultLevel.prefab contains an Editor Camera
Component

* Adding the ly_enable_gem call to make the Maestro gem required

CrySystem currently requires Maestro to be enabled in order to
initialize

* Added ly_enable_gems call to the SceneProcessing gem to make it required

The SceneCore and SceneData libraries that are part of the core engine
Code folder requires the SceneProcessing gem to be enabled in order to
invoke the InitializeDynamicModule hooks in DllMain.cpp in order to
initialize those libraries.

* Fixed bad argument in comment for Prefab CMakeLists.txt

* Fixed Assert in Asset Builders due to the Atom RPI Builder

The Atom RPI Builder was enabling the Asset Catalog for the ScriptAsset a second time

The Atom Feature Common EditorSystemCommonComponent.cpp which also loads
in the AssetBuilder is enabling the Asset Catalog for the ScriptAsset

Added BehaviorContext reflection to the OutputDeviceTransformType enum
to fix the BehaviorContext errors about reflecting a method that returns
such an enum

* Added TypeId output to the JsonDeserializer report message about missing
ClassData

Previously the report callback would indicate that the target type was
missing Serialization class data, but didn't indicate the TypeId of the
target type

* Added support to the ly_enable_gems function to be able to support
0 gems being enabled.

Updated the Install step for CMake to propagate any ly_enable_gems
within a CMakeLists.txt for a target into the generated CMakeLists.txt
that is made for each installed IMPORTED target

* Adding newline to the end of the Camera Gem CMakeLists.txt

* Fixing target TYPE parameter for actual Gem Modules to use the GEM_MODULE tag instead of MODULE

* Reverting change to the DESTINATION directory for the installed CMakeLists.txt to use the relative path to the installed directory

* Adding the Atom_Bootstrap gem as a required gem

The Client and GameLaunchers required the Atom_Bootstrap gem in order to create the NativeWindow
Added Atom_Feature_Common client module as a runtime dependency of the AtomLyIntegration CommonsFeature client module

* Fixed register.py --all-projects-path and --all-gems-path arguments to
NOT register projects or gems that are within a template folder
Fixed reading of old pre-1.0 o3de_manifest.json files where the
"engines" key was a json array

* Changed how the relative target source directory is calculated when that source directroy resides outside of the engine root.
The final dirname component is used with a unique SHA256 has to form a <dirname>-<8 char SHA256> folder for installing files into

* Adding newline to the end of Atom_Bootstrap CMakeLists.txt

* Moving ly_enable_gems variants for Tools and Builders inside of PAL_TRAIT_BUILD_HOST_TOOLS block

* Adding a comment to AWSCore.ResourceMappingTool target to indicate that it is not a GEM_MODULE.
Furthermore it cannot be loaded with the Gem system because the library is in a different directory the executable
2021-06-17 13:58:20 -05:00
lumberyard-employee-dm 4014cacff8 Added a ${GemName}.Builders variant to Asset-Only Gems (#1324)
* Creating Builder variant aliases for all Asset Gems

* Added an AssetGem template for creating an Asset Gem

The AssetGem template is meant for non-code Gems

* Updated the engine_template.py commands to use pathlib

Each of the four commands: create-template, create-from-template,
create-project and create-gem have been updated to use pathlib.Path or
any path manipulation

Fix several python errors when instantiating a template with missing
o3de objects.
For example attempting to use the create-project command with the
"DefaultGem" template would result in a python exception instaed of a
error log and a return value 0..

Added a **force** option to the engine_template commands
to force overriding of existing files

* Optimized search through text files when the create-template command is
run when attempting to replace the license text section

* Adding a Minimal Project Template that contains the minimal set of gems
as stated by UX

* Minor changes to the DefaultProject template. Added a license section to the EngineFinder.cmake

* Adding the MinimalProject to the engine.json file
2021-06-15 20:44:23 -05:00
amzn-mgwynn 63bb8aa8a9 Merge pull request #1286 from aws-lumberyard-dev/Prism/gem-db
updating missed variable name change in logging call
2021-06-11 17:09:42 -07:00
mgwynn a5cead4414 updating missed variable name change in logging call 2021-06-11 19:05:51 -04:00
amzn-mgwynn 5992c1404b Merge pull request #1259 from aws-lumberyard-dev/Prism/gem-db
Adding unit test for project properties cli
2021-06-11 15:56:14 -07:00
lumberyard-employee-dm fe441b01a0 Split the new_tags and delete_tags paramaters if they are strings on spaces. 2021-06-11 15:04:51 -05:00
lumberyard-employee-dm 3127bf7477 Making sure the expected tag set exactly matches the "user_tags" in the project_json 2021-06-11 15:02:15 -05:00
mgwynn 0b3a56d031 Incorporating review comments. Adding checks for json contents. Added class. Minor reformatting. 2021-06-11 15:01:33 -04:00
mgwynn e80ba41bdd Adding project properties test to cmakeLists 2021-06-10 22:08:05 -04:00
mgwynn d029ba894e Added failure condition for fail case test 2021-06-10 21:24:27 -04:00
mgwynn 9a61557932 Adding unit test for project properties cli 2021-06-10 21:17:24 -04:00
amzn-sj 607f32fae6 No need to check if the first character is a number. This is already validated before. 2021-06-10 13:34:16 -07:00
amzn-sj 2ee4d8ff6b Sanitize identifier names before substituting them in C++ template files 2021-06-10 11:01:23 -07:00
amzn-sj 6c056ad566 Remove duplicate definition of function 2021-06-09 15:29:39 -07:00
lumberyard-employee-dm 217eddc8bd Fixing the enable_gem.py and disable_gem.py commands (#1207)
* Fixing the enable_gem.py and disable_gem.py commands
The project path wasn't taking into account when querying for gems,
templates and restricted directories registered with the project

Fixing the cmake.py add_gem_dependency and remove_gem_dependency methods
to properly detect a gem within a `set(ENABLED_GEM ...)` cmake variable
Also updated the add_gem_dependency to add the gem right before the end
marker of ')'
Updated the remove_gem_dependency to remove each instance of a gem with
a content that is in between in the `set(ENABLED_GEM ...)` cmake
variable

* Correct Typo in manifest.get_registered doc string
2021-06-09 14:14:01 -05:00
amzn-mgwynn 38865c95e2 Merge pull request #1162 from aws-lumberyard-dev/Prism/gem-db
Adding python bindings for modifying project properties
2021-06-07 16:59:10 -04:00
mgwynn b0826c5f9c added tag managerment arguments for CLI to mutually exclusive group 2021-06-07 15:08:18 -04:00
mgwynn 6d6f8413c8 Incorporating review comments. Some parameter modifications. Some cli edge case handling. Remove remove_tag member from project info 2021-06-07 14:14:32 -04:00
Alex Peterson aeaf1bcdbe Fix engine settings not populating or saving
* Allow multiple settings to be registered at once
* Old manifests versions may not have default_third_party_folder
2021-06-04 21:29:36 -07:00
mgwynn 7984f82e48 Bing project_properties CLI to updateProject method. Update project info struct.
Update project properties cli to support lists for tags. Minor adjustments to support
changes.
2021-06-04 23:03:17 -04:00