Commit Graph

59 Commits (e06ec2caa903260f9ce2de90e0be9bfba90ed747)

Author SHA1 Message Date
lumberyard-employee-dm e06ec2caa9
Fixed cmake configuring when using an External Gem (#2020)
The ly_get_absolute_pal_filename method has been refactored to no longer
use regular expressions to determine how to split a PAL directory, but
instead Path operations are used

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
AMZN-nggieber 5b44ea9b9a
Project Manager: Added Per Project Template Previews and Icon Overlays (#1994)
* Project Manager: Added Per Project Template Previews and Icon Overlays

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

* Remove template icon overlays and bake them into template preview

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

* Remove unused variables and headers

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Chris Galvan 30f8c75613
Merge pull request #1908 from aws-lumberyard-dev/cgalvan/FixLegacyCryIcons
Fixed legacy launcher/mac/ios icons and removed some remaining unused Editor icons.
5 years ago
Chris Galvan ca4156e1c0 Fixed template.json file name replacements.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
lumberyard-employee-dm 02922806a5
Updated gem.json for all top-level Gems. (#1715) (#1917)
* Updated gem.json for all top-level Gems. All the top level gems now have identical gem.json formats based on the DefautlGem template gem.json. Two additional fields have been added, a type: field and a requirements: field. These fields are for display in Project Mananger. All gem.json files have a default requirements: value of None. Devs are responsible for providing requirements. Gem descriptions and tags have been signed off by developers.

Signed-off-by: Cronin <mikecro@amazon.com>

* Fixed minor formatting issues with RADTelemetry gem.json

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

* Adding newline to QtForPython gem.json

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

* Adding newline to the Twitch gem.json

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

* Adding newline to AWSCore gem.json

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

* Adding newline to the AtomTressFX gem.json

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

* Adding newline to the end of the AudioEngineWwise gem.json

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

* Adding newline to the end of the CertificateManager gem.json

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

* Removing extra whitespace in summary of CrashReporting gem.json

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

* Adding newline to the end of the CustomAssetExample gem.json

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

* Removing extra whitespace in editorPythonBindings gem summary

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

* Adding newline to the end of the ScriptedEntityTweener gem.json

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

* Adding newline to the end of the Gestures gem.json

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

* Removing extra whitetspace in the summary of the GameStateSamples gem

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

* Adding newline to the end of the ExpressionEvaluation gem.json

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

* Updated the ProjectManager PythonBindings.cpp code to reference the
newer fields in the gem.json files

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

* Updating the Gem and Project templates gem.json files to include the
"type" and the "requirements" field.

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

* Updated the default "requirments" field value to be empty string instead
of "None"

This works better with the ProjectManager GemInfoFromPath function.

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

* Correcting "summary" field name

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

* Added the requirements text to the AudioEngineWwise Gem

This gem requires downloading the Wwise 3rdParty library from AudioKinetic's website

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

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

Co-authored-by: Mike Cronin <58789750+micronAMZN@users.noreply.github.com>
5 years ago
Chris Galvan 635473e5cf [LYN-4990] Fixed legacy launcher/mac/ios icons and removed some remaining unused Editor icons.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
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>
5 years ago
AMZN-Phil c84d189b61
Merge pull request #1735 from aws-lumberyard-dev/LYN-4678
Set correct display text for the default and minimal projects.
5 years ago
pconroy adb3b9366c Update icons and launcher images to the O3DE logo
Signed-off-by: pconroy <pconroy@amazon.com>
5 years ago
pconroy 16f9eece76 Set correct display text for the default and minimal projects.
Signed-off-by: pconroy <pconroy@amazon.com>
5 years ago
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>
5 years ago
Esteban Papp 9f0bbf3b74
SPEC-7531 Change Code/CryEngine to Code/Legacy (#1634)
* git mv Code\CryEngine Code\Legacy
* redirecting CMakeLists.txt
* fixing uic warning
* Some more CryEngine mentions
* validation scripts

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
5 years ago
AMZN-nggieber 61d0ed0b5c
Replace project template previews with default project preview (#1622) 5 years ago
AMZN-nggieber ba0f1ad758
Updated Project Manager O3DE Logos with Rotated Squares Version (#1595) 5 years ago
lumberyard-employee-dm 47a83f4f15
Adding the PrimitiveAssets gem to the Default Project template (#1503) 5 years ago
Steve Pham 70042fcdcd
O3DE Copyright Updates for Linux Foundation (#1504) 5 years ago
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>
5 years ago
Esteban Papp 2fa6883455
SPEC-6663 add file(READ files to tracking (#1416)
* adding property to track files read by file(READ

* code review comments

* adding newline
5 years ago
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
5 years ago
lumberyard-employee-dm b945e1689a
Updated the Default Project template to enable the "Standard" list of gems (#1325)
* Added a ModuleInterface class for sharing an AZ::Module implementation

The ModuleInterface class registers the SystemComponent that that comes
with the Client module and returns in it's GetRequiredSystemComponent
the Clients module SystemComponent

An EditorModule class has been added which inherits from the
ModuleInterface class and extends the registered SystemComponent
descriptors with it's SystemComponent.
It then overrides teh GetRequiredSystemComponent function and replaces
the required SystemComponent with it's Tools module SystemComponent

* Updated the DefaultProject list of Gems to match the decided Standard list of gems

* Updated the comment in the EditorModule constructor

The comment indicates that all component descriptors should be added to the m_descriptors list

* Added more detail to the ModuleInterface constructor about the registering the Component Descriptors
5 years ago
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
5 years ago
Eric Phister 0c7605c9b6
Update minimum required CMake version to 3.20 (#1253)
* 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>
5 years ago
SJ 92594af647
Sanitize project name before substituting it in C++ template files
Merge pull request #1247 from aws-lumberyard-dev/LYN-3510
5 years ago
amzn-sj cf5a73eef8 Fix default destructor declaration 5 years ago
mcgarrah f61635c327 Updated the SystemComponents in the Default Gem and Project Templates to initialize/deinitialize the Interface instance 5 years ago
lumberyard-employee-dm 0aba7911a2
Implemented the DefaultProject Template default constructor and destructor
The System Component now implements a constructor/destructor which is used to initialize/de-initialize the `${SanitizedCppName}Interface` instance
5 years ago
lumberyard-employee-dm 054dd39e5b
Adding implemented constructor/destructor to Template SystemComponent
The System Component now implements a constructor/destructor which is used to initialize/de-initialize the `${SanitizedCppName}Interface` instance
5 years ago
lumberyard-employee-dm 9550ec46b4
Updating Project ${Name}Bus.h template with AZ::Interface support 5 years ago
lumberyard-employee-dm 39392ec075
Updating the DefaultGem ${Name}Bus.h template with AZ::Interface 5 years ago
amzn-sj 2ee4d8ff6b Sanitize identifier names before substituting them in C++ template files 5 years ago
lumberyard-employee-dm a9e59fd75f
Updating the DefaultProject template to not insert the project-path parameter (#1223)
* Updating the DefaultProject template to not insert the project-path parameter into the VS Debugger Arguments for any applications

Added project-path injection directly within the LauncherUnified and AssetBuilder cmake scripts where their targets are defined

* Removing the add_vs_debugger_arguments call from the AutomatedTesting CMakeLists.txt
5 years ago
Alex Peterson 9b17754278
Project Template details and preview changes 5 years ago
Eric Phister 1b8810b963
Remove Project namespace from project template (#1124)
In the enabled_gems.cmake file, can remove the Project:: namespace on
the project module because it's treated the same as a Gem module now.
5 years ago
Alex Peterson a3e73948c5
Improved project creation validation
No longer requires project name to be part of the project path.
5 years ago
pappeste 639240576f Adding alias for the project gem so it gets loaded 5 years ago
pappeste 62b6cfac42 letting users pass CMAKE_MODULE_PATH to find the engine 5 years ago
pappeste 01933f45b1 Merge branch 'main' into ly-as-sdk/LYN-2948
# Conflicts:
#	Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/gem.json
5 years ago
Alex Peterson 13de9de3c1
Project Manager Toolbar Update
- use flow control for projects page for automatic updates when resizing
- made the first time screen only display the first time
5 years ago
lumberyard-employee-dm 32919b1e7b Updating the AZ_DECLARE_MODULE_CLASS call in the Project's template code module to use the Gem_ prefix instead of Project_ since that is what the StaticModules.inl file geneates in it CreateStaticModules function when generating a monolithic solution 5 years ago
lumberyard-employee-dm 4652d47fb3 Merge remote-tracking branch 'origin/lawsonamzn_prototype_gem_naming_conventions' into ly-as-sdk/LYN-2948-phistere 5 years ago
phistere 9f46e34cc4 Updates to the DefaultProject template
Removes raytracingschenesrg.srgi
Updates to the root scenesrg.srgi (to match AtomSampleViewer)
Adds a SceneSrg.azsli and a README to the template
5 years ago
lumberyard-employee-dm d2a15de668 Adding support to read an "external_subdirectories" key from the
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
5 years ago
lumberyard-employee-dm 84a3a3d40a Updating the DefaultProject template to copy over a gem.json file to the Code folder of the created project, since the Code itself is a GEM_MODULE that loads using the Module loading system 5 years ago
lumberyard-employee-dm 76985602ce Remove commented out logic from the DefaultProject CMakeLists.txt 5 years ago
lumberyard-employee-dm d422083faa Merge branch 'ly-as-sdk/LYN-2948-phistere' of https://github.com/aws-lumberyard-dev/o3de into ly-as-sdk/Engine-Gem-Tracking 5 years ago
lumberyard-employee-dm 7e4070e5f1 Updating the DefaultProject and DefaultGem templates to use the
"restricted_name" key for indicating the identifier of a restricted
directory location instead of "restricted"
5 years ago
lawsonamzn 4ef357e57e Updates the templates to use the new system
Also updates the Gems.cmake file to handle namespaces being used.
5 years ago
phistere 0f4e00e48f Updating the Gems selctions for the DefaultProject template 5 years ago
phistere 7a25a17fae Fixes a few issues when using an engine name different from the default 5 years ago
phistere 5f82d8e3eb Updates EngineFinder.cmake to correct the key that it's looking for 5 years ago