* 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
* 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
* Update the minimum CMake version to 3.20
Sets the cmake_minimum_required calls to version 3.20 and updates the
README.md to point at the general CMake download page instead of a stale
link.
* Remove unnecessary cmake minimum version
It was using an old 3.0 version and can be removed.
* Additional updates to CMake 3.20, build scripts
Updates the version and remove logic to find a CMake in 3rdParty.
* Removing backup path to ninja path in the build_ninja_windows.cmd
The backup path for finding ninja was coming from the Perforce depot which isn't available for o3de builds.
* Removing reference to 3rdParty Android SDK 29 from the build and run unit test script
The Android SDK is not part of the new 3rdParty system and users are expected to install the Android SDK on their own in order to build the engine for Android.
* Update the get_python scripts and README
No longer try to append a CMake path to LY_3RDPARTY_PATH, but do still
support LY_CMAKE_PATH because there are still uses of it. Remove
mention of an LY_3RDPARTY_PATH-relative CMake path from the README.md.
* Removing LY_NINJA_PATH from the build_ninja_windows.cmd
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* 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
* Removing second get_all_restricted() method
* 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
* Fix quotes
* Revert "Fix quotes"
This reverts commit 29ace5ef2bf1c78991a8cfeb840bfb30c4ce5d8d.
* evaluating the parameters
* Revert "Revert "Fix quotes""
This reverts commit 4f7008e9ccbd5fdc0b33853a4fb1f50285233da9.
* just one eval
* double escaping
* another attempt to happiness
* changing NODE_NAME to LABEL_NAME since that one is more stable and doesnt have spaces
* should pickup the external directories registered by the project
* Add support for AzTest and AzTestRunner in the SDK
* missing IMPORT_LIB
* Moved where .Assets targets get generated so they are visible in the SDK
* generate the Directory.Build.props in the right path
* excluding target on platforms that dont support it
* SPEC-7135 Provide a method to re-trigger compiler detection for changes that require it
* removing check (is wrong and is not necessary)
* Invert existance check
* add empty lines at the end
* Clean is triggering on each build
* clearing if the variable is false
* test code to understand what is going on...
* yeap, looks good
* handling "false" in linux/mac
* fix for linux/mac
* Fixing typos
* Updating manifest.py template query functions
The get_project_templates, get_gem_templates and get_generic_templates
methods have been renamed to indicate that the methods return the
templates that can be used in a create-project, create-gem and
create-from-template command of the engine_template.py
Updated the print_registration.py script to support outputing project
specific gems and templates.
Add a unit test script for the manifest.py script.
Added unit test to validate the new functions:
`get_templates_for_project_creation`
`get_templates_for_gem_creation`
`get_templates_for_generic_creation`
* Implementing the project print registration methods
Added implementations of the project print registration methods and tested them locally
Removed implementations of the download print registration methods, since they have not went through app-sec review.
* Renaming get_restricted_data to get_restricted_json_data
Fixed the get_registered method in manifest.py when looking up projects
* Updated the print_manifest_json_data calls to return the result
Prism/gem db to main. Adding ability to modify project settings (display name, origin, icon, summary, user tags) through the o3de CLI with edit-project-properties using a project path or registered project name.
* Removing the Pyside implementation of the project manager python scripts
* Removing reference to the scripts/project_manager directory
The Install_common.cmake script reference to the project_manager directory has been removed.
* Add Android 'gradle' job as a default job
* Replace warning about version checking type with string preprocessing of the captured version before comparisons
- build.gradle format updates for newer Android Gradle Plugin
- Remove hard coded Android Gradle Plugin version 3.6.4 to be passed in from command args
- Set Android Gradle Plugin min version 4.2.0 in order to support Min CMake version 3.20
- Add ability to use the android sdk to install missing components if needed rather than doing it externally
- Removed argument to pass in the NDK folder to use the android, use the android-sdk instead. Can request specific NDK versions if possible
- Android Gradle Plugin has dependencies by version and is being managed
- More defaults based on tools on path, agp version made possible so they are no longer needed in the command args
path when setting the global project path
Also updated that script to support an input path when reading the
global project path.
Added a unit test for the global_projecy.py "set-global-project" command
* Updated the enable gem and disable gem API
Renamed remove_gem_project.py -> disable_gem.py
Renamed add_gem_project.py -> enable_gem.py
Renamed the "add-gem-to-project" command -> "enable-gem"
Renamed the "remove-gem-from-project" command -> "disable-gem"
Fixed the parsing of the enabled gems from the enabled_gems.cmake file
* Adding newline to the end of the CMakeLists.txt
The add_gem_project and remove_gem project scripts, now just enables on
a gem name basis instead of a CMake target basis
Updated the ProjectManager code and scripts to account for the
add_gem_project and rmeove_gem_project script changes.
- Remove '--repeat until-pass' from profile test ctest argument
- Moved flaky TCP tests from main googletest suite to sandbox
- Added 'TARGET' to 'ly_add_googletest' to support adding the same module to multiple tests or adding a test that is not named the same as the module
- Fix minor bug in ly_add_googletest
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
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
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
Any commits created through the GitHub UI (e.g. commits created by
merging PRs) usually assign GitHub itself as the ccommitter. This is
expected behaviour, as the commit is applied by GitHub itself. However,
for the purposes of changelog creation, showing the author (e.g. the
person who clicked the merge button on the PR) is more useful.
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
Remove:
- Code/CryEngine/CryCommon/Platform
- Some unused Code/CryEngine/CryCommon/Mock files
- Code/Tools/CryXML and almost all of Code/Tools/CryCommonTools
- Code/Tools/TestBed/ResourceCompilerImage
- Tools/DeepBandwidthToExcel
- Various .p4ignore files
SPEC-3510: Linux environment setup scripts
* Add orchestrating script to install ubuntu packages for O3DE on Linux
* Fix issue parsing package content file for build-tools
Remove:
- CryCommon/CryExtension/*
- CryCommon/Serialization/*
- Sandbox/Plugins/EditorCommon/QPropertyTree/*
- All related CryCommon interfaces
- All CrySystem implementations
- Various related Editor classes
* fix project centric set current
* Adding newline to project.json template
* Adding newline to engine.json
* Changed register -this-engine to be data driven
* adding build server support
* fix log dir
* fix add remove
* fix template creation for restricted
* fix typos and descriptions
* Add newline to the end of template.json
* Adding newline to the end of assets_scan_folders.seteg
* current_project in global project that creates/edits the .o3de/Registry/bootstrap.setreg
* fix the build server flags
* fix the o3de manifest server portion
* disable project manager tests for now. Its changed too much and lytestools is not working at the moment. I will get back to this later.
* fix the Mac build config
* disable project_test, this is the project manager. It has changed too much for these tests to work at the moment. I'll get back to them
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>