Selaa lähdekoodia

Convert Proteus Robot Gem to asset Gem

Signed-off-by: Alex Peterson <[email protected]>
alexpete 2 vuotta sitten
vanhempi
commit
92431c3808
48 muutettua tiedostoa jossa 45 lisäystä ja 748 poistoa
  1. 17 14
      Gems/ProteusRobot/CMakeLists.txt
  2. 0 210
      Gems/ProteusRobot/Code/CMakeLists.txt
  3. 0 31
      Gems/ProteusRobot/Code/Include/ProteusRobot/ProteusRobotBus.h
  4. 0 4
      Gems/ProteusRobot/Code/Platform/Android/PAL_android.cmake
  5. 0 3
      Gems/ProteusRobot/Code/Platform/Android/proteusrobot_api_files.cmake
  6. 0 8
      Gems/ProteusRobot/Code/Platform/Android/proteusrobot_private_files.cmake
  7. 0 8
      Gems/ProteusRobot/Code/Platform/Android/proteusrobot_shared_files.cmake
  8. 0 4
      Gems/ProteusRobot/Code/Platform/Linux/PAL_linux.cmake
  9. 0 3
      Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_api_files.cmake
  10. 0 3
      Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_editor_api_files.cmake
  11. 0 8
      Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_private_files.cmake
  12. 0 8
      Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_shared_files.cmake
  13. 0 4
      Gems/ProteusRobot/Code/Platform/Mac/PAL_mac.cmake
  14. 0 3
      Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_api_files.cmake
  15. 0 3
      Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_editor_api_files.cmake
  16. 0 8
      Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_private_files.cmake
  17. 0 8
      Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_shared_files.cmake
  18. 0 4
      Gems/ProteusRobot/Code/Platform/Windows/PAL_windows.cmake
  19. 0 3
      Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_api_files.cmake
  20. 0 3
      Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_editor_api_files.cmake
  21. 0 8
      Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_private_files.cmake
  22. 0 8
      Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_shared_files.cmake
  23. 0 4
      Gems/ProteusRobot/Code/Platform/iOS/PAL_ios.cmake
  24. 0 3
      Gems/ProteusRobot/Code/Platform/iOS/proteusrobot_api_files.cmake
  25. 0 8
      Gems/ProteusRobot/Code/Platform/iOS/proteusrobot_private_files.cmake
  26. 0 8
      Gems/ProteusRobot/Code/Platform/iOS/proteusrobot_shared_files.cmake
  27. 0 17
      Gems/ProteusRobot/Code/Source/Clients/ProteusRobotModule.cpp
  28. 0 83
      Gems/ProteusRobot/Code/Source/Clients/ProteusRobotSystemComponent.cpp
  29. 0 47
      Gems/ProteusRobot/Code/Source/Clients/ProteusRobotSystemComponent.h
  30. 0 36
      Gems/ProteusRobot/Code/Source/ProteusRobotModuleInterface.h
  31. 0 38
      Gems/ProteusRobot/Code/Source/Tools/ProteusRobotEditorModule.cpp
  32. 0 54
      Gems/ProteusRobot/Code/Source/Tools/ProteusRobotEditorSystemComponent.cpp
  33. 0 33
      Gems/ProteusRobot/Code/Source/Tools/ProteusRobotEditorSystemComponent.h
  34. 0 4
      Gems/ProteusRobot/Code/Tests/Clients/ProteusRobotTest.cpp
  35. 0 4
      Gems/ProteusRobot/Code/Tests/Tools/ProteusRobotEditorTest.cpp
  36. 0 4
      Gems/ProteusRobot/Code/proteusrobot_api_files.cmake
  37. 0 4
      Gems/ProteusRobot/Code/proteusrobot_editor_api_files.cmake
  38. 0 5
      Gems/ProteusRobot/Code/proteusrobot_editor_private_files.cmake
  39. 0 4
      Gems/ProteusRobot/Code/proteusrobot_editor_shared_files.cmake
  40. 0 4
      Gems/ProteusRobot/Code/proteusrobot_editor_tests_files.cmake
  41. 0 6
      Gems/ProteusRobot/Code/proteusrobot_private_files.cmake
  42. 0 4
      Gems/ProteusRobot/Code/proteusrobot_shared_files.cmake
  43. 0 4
      Gems/ProteusRobot/Code/proteusrobot_tests_files.cmake
  44. 8 8
      Gems/ProteusRobot/gem.json
  45. 2 2
      Gems/ProteusRobot/preview.png
  46. 2 2
      Gems/ROS2/gem.json
  47. 14 4
      Gems/RosRobotSample/CMakeLists.txt
  48. 2 2
      Gems/RosRobotSample/gem.json

+ 17 - 14
Gems/ProteusRobot/CMakeLists.txt

@@ -1,22 +1,25 @@
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
 
 # Query the gem name from the gem.json file if possible
 # otherwise fallback to using ProteusRobot
-o3de_find_ancestor_gem_root(gem_path gem_name "${CMAKE_CURRENT_SOURCE_DIR}")
+o3de_find_ancestor_gem_root(gem_root_path gem_name "${CMAKE_CURRENT_SOURCE_DIR}")
 if (NOT gem_name)
     set(gem_name "ProteusRobot")
 endif()
 
-# Fallback to using the current source CMakeLists.txt directory as the gem root path
-if (NOT gem_path)
-    set(gem_path ${CMAKE_CURRENT_SOURCE_DIR})
-endif()
-
-set(gem_json ${gem_path}/gem.json)
-
-o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+# This indicates to the Builders applications(AssetProcessor, AssetBuilder, AssetBundler)
+# that the gem should be added to the "cmake_dependencies.<project>.assetbuilder.setreg"
+# which is generated when cmake configure occurs.
+# Also tooling applications such as the Editor needs the CMake alias
+# to see the gem as active
+if(PAL_TRAIT_BUILD_HOST_TOOLS)
+    ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem)
+    ly_create_alias(NAME ${gem_name}.Tools NAMESPACE Gem)
 
-o3de_pal_dir(pal_dir ${CMAKE_CURRENT_SOURCE_DIR}/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
-
-ly_add_external_target_path(${CMAKE_CURRENT_SOURCE_DIR}/3rdParty)
-
-add_subdirectory(Code)
+    # Add in CMake dependencies for each gem dependency listed in this gem's gem.json file
+    # for the Tools and Builders gem variants
+    o3de_add_variant_dependencies_for_gem_dependencies(GEM_NAME ${gem_name} VARIANTS Tools Builders)
+endif()

+ 0 - 210
Gems/ProteusRobot/Code/CMakeLists.txt

@@ -1,210 +0,0 @@
-
-# Currently we are in the Code folder: ${CMAKE_CURRENT_LIST_DIR}
-# Get the platform specific folder ${pal_dir} for the current folder: ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME}
-# Note: o3de_pal_dir will take care of the details for us, as this may be a restricted platform
-#       in which case it will see if that platform is present here or in the restricted folder.
-#       i.e. It could here in our gem : Gems/ProteusRobot/Code/Platform/<platorm_name>  or
-#            <restricted_folder>/<platform_name>/Gems/ProteusRobot/Code
-o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
-
-# Now that we have the platform abstraction layer (PAL) folder for this folder, thats where we will find the
-# traits for this platform. Traits for a platform are defines for things like whether or not something in this gem
-# is supported by this platform.
-include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
-
-# Check to see if building the Gem Modules are supported for the current platform
-if(NOT PAL_TRAIT_PROTEUSROBOT_SUPPORTED)
-    return()
-endif()
-
-# The ${gem_name}.API target declares the common interface that users of this gem should depend on in their targets
-ly_add_target(
-    NAME ${gem_name}.API INTERFACE
-    NAMESPACE Gem
-    FILES_CMAKE
-        proteusrobot_api_files.cmake
-        ${pal_dir}/proteusrobot_api_files.cmake
-    INCLUDE_DIRECTORIES
-        INTERFACE
-            Include
-    BUILD_DEPENDENCIES
-        INTERFACE
-           AZ::AzCore
-)
-
-# The ${gem_name}.Private.Object target is an internal target
-# It should not be used outside of this Gems CMakeLists.txt
-ly_add_target(
-    NAME ${gem_name}.Private.Object STATIC
-    NAMESPACE Gem
-    FILES_CMAKE
-        proteusrobot_private_files.cmake
-        ${pal_dir}/proteusrobot_private_files.cmake
-    TARGET_PROPERTIES
-        O3DE_PRIVATE_TARGET TRUE
-    INCLUDE_DIRECTORIES
-        PRIVATE
-            Include
-            Source
-    BUILD_DEPENDENCIES
-        PUBLIC
-            AZ::AzCore
-            AZ::AzFramework
-)
-
-# Here add ${gem_name} target, it depends on the Private Object library and Public API interface
-ly_add_target(
-    NAME ${gem_name} ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
-    NAMESPACE Gem
-    FILES_CMAKE
-        proteusrobot_shared_files.cmake
-        ${pal_dir}/proteusrobot_shared_files.cmake
-    INCLUDE_DIRECTORIES
-        PUBLIC
-            Include
-        PRIVATE
-            Source
-    BUILD_DEPENDENCIES
-        PUBLIC
-            Gem::${gem_name}.API
-        PRIVATE
-            Gem::${gem_name}.Private.Object
-)
-
-# By default, we will specify that the above target ${gem_name} would be used by
-# Client and Server type targets when this gem is enabled.  If you don't want it
-# active in Clients or Servers by default, delete one of both of the following lines:
-ly_create_alias(NAME ${gem_name}.Clients NAMESPACE Gem TARGETS Gem::${gem_name})
-ly_create_alias(NAME ${gem_name}.Servers NAMESPACE Gem TARGETS Gem::${gem_name})
-ly_create_alias(NAME ${gem_name}.Unified NAMESPACE Gem TARGETS Gem::${gem_name})
-
-# For the Client and Server variants of ${gem_name} Gem, an alias to the ${gem_name}.API target will be made
-ly_create_alias(NAME ${gem_name}.Clients.API NAMESPACE Gem TARGETS Gem::${gem_name}.API)
-ly_create_alias(NAME ${gem_name}.Servers.API NAMESPACE Gem TARGETS Gem::${gem_name}.API)
-ly_create_alias(NAME ${gem_name}.Unified.API NAMESPACE Gem TARGETS Gem::${gem_name}.API)
-
-# If we are on a host platform, we want to add the host tools targets like the ${gem_name}.Editor MODULE target
-if(PAL_TRAIT_BUILD_HOST_TOOLS)
-    # The ${gem_name}.Editor.API target can be used by other gems that want to interact with the ${gem_name}.Editor module
-    ly_add_target(
-        NAME ${gem_name}.Editor.API INTERFACE
-        NAMESPACE Gem
-        FILES_CMAKE
-            proteusrobot_editor_api_files.cmake
-            ${pal_dir}/proteusrobot_editor_api_files.cmake
-        INCLUDE_DIRECTORIES
-            INTERFACE
-                Include
-        BUILD_DEPENDENCIES
-            INTERFACE
-                AZ::AzToolsFramework
-    )
-
-    # The ${gem_name}.Editor.Private.Object target is an internal target
-    # which is only to be used by this gems CMakeLists.txt and any subdirectories
-    # Other gems should not use this target
-    ly_add_target(
-        NAME ${gem_name}.Editor.Private.Object STATIC
-        NAMESPACE Gem
-        FILES_CMAKE
-            proteusrobot_editor_private_files.cmake
-        TARGET_PROPERTIES
-            O3DE_PRIVATE_TARGET TRUE
-        INCLUDE_DIRECTORIES
-            PRIVATE
-                Include
-                Source
-        BUILD_DEPENDENCIES
-            PUBLIC
-                AZ::AzToolsFramework
-                $<TARGET_OBJECTS:Gem::${gem_name}.Private.Object>
-    )
-
-    ly_add_target(
-        NAME ${gem_name}.Editor GEM_MODULE
-        NAMESPACE Gem
-        AUTOMOC
-        FILES_CMAKE
-            proteusrobot_editor_shared_files.cmake
-        INCLUDE_DIRECTORIES
-            PRIVATE
-                Source
-            PUBLIC
-                Include
-        BUILD_DEPENDENCIES
-            PUBLIC
-                Gem::${gem_name}.Editor.API
-            PRIVATE
-                Gem::${gem_name}.Editor.Private.Object
-    )
-
-    # By default, we will specify that the above target ${gem_name} would be used by
-    # Tool and Builder type targets when this gem is enabled.  If you don't want it
-    # active in Tools or Builders by default, delete one of both of the following lines:
-    ly_create_alias(NAME ${gem_name}.Tools    NAMESPACE Gem TARGETS Gem::${gem_name}.Editor)
-    ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem TARGETS Gem::${gem_name}.Editor)
-
-    # For the Tools and Builders variants of ${gem_name} Gem, an alias to the ${gem_name}.Editor API target will be made
-    ly_create_alias(NAME ${gem_name}.Tools.API NAMESPACE Gem TARGETS Gem::${gem_name}.Editor.API)
-    ly_create_alias(NAME ${gem_name}.Builders.API NAMESPACE Gem TARGETS Gem::${gem_name}.Editor.API)
-
-endif()
-
-################################################################################
-# Tests
-################################################################################
-# See if globally, tests are supported
-if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
-    # We globally support tests, see if we support tests on this platform for ${gem_name}.Tests
-    if(PAL_TRAIT_PROTEUSROBOT_TEST_SUPPORTED)
-        # We support ${gem_name}.Tests on this platform, add dependency on the Private Object target
-        ly_add_target(
-            NAME ${gem_name}.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
-            NAMESPACE Gem
-            FILES_CMAKE
-                proteusrobot_tests_files.cmake
-            INCLUDE_DIRECTORIES
-                PRIVATE
-                    Tests
-                    Source
-            BUILD_DEPENDENCIES
-                PRIVATE
-                    AZ::AzTest
-                    AZ::AzFramework
-                    Gem::${gem_name}.Private.Object
-        )
-
-        # Add ${gem_name}.Tests to googletest
-        ly_add_googletest(
-            NAME Gem::${gem_name}.Tests
-        )
-    endif()
-
-    # If we are a host platform we want to add tools test like editor tests here
-    if(PAL_TRAIT_BUILD_HOST_TOOLS)
-        # We are a host platform, see if Editor tests are supported on this platform
-        if(PAL_TRAIT_PROTEUSROBOT_EDITOR_TEST_SUPPORTED)
-            # We support ${gem_name}.Editor.Tests on this platform, add ${gem_name}.Editor.Tests target which depends on
-            # private ${gem_name}.Editor.Private.Object target
-            ly_add_target(
-                NAME ${gem_name}.Editor.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
-                NAMESPACE Gem
-                FILES_CMAKE
-                    proteusrobot_editor_tests_files.cmake
-                INCLUDE_DIRECTORIES
-                    PRIVATE
-                        Tests
-                        Source
-                BUILD_DEPENDENCIES
-                    PRIVATE
-                        AZ::AzTest
-                        Gem::${gem_name}.Private.Object
-            )
-
-            # Add ${gem_name}.Editor.Tests to googletest
-            ly_add_googletest(
-                NAME Gem::${gem_name}.Editor.Tests
-            )
-        endif()
-    endif()
-endif()

+ 0 - 31
Gems/ProteusRobot/Code/Include/ProteusRobot/ProteusRobotBus.h

@@ -1,31 +0,0 @@
-
-#pragma once
-
-#include <AzCore/EBus/EBus.h>
-#include <AzCore/Interface/Interface.h>
-
-namespace ProteusRobot
-{
-    class ProteusRobotRequests
-    {
-    public:
-        AZ_RTTI(ProteusRobotRequests, "{2480DA88-89C0-40D0-9C27-CA19C99FECC7}");
-        virtual ~ProteusRobotRequests() = default;
-        // Put your public methods here
-    };
-    
-    class ProteusRobotBusTraits
-        : public AZ::EBusTraits
-    {
-    public:
-        //////////////////////////////////////////////////////////////////////////
-        // EBusTraits overrides
-        static constexpr AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single;
-        static constexpr AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single;
-        //////////////////////////////////////////////////////////////////////////
-    };
-
-    using ProteusRobotRequestBus = AZ::EBus<ProteusRobotRequests, ProteusRobotBusTraits>;
-    using ProteusRobotInterface = AZ::Interface<ProteusRobotRequests>;
-
-} // namespace ProteusRobot

+ 0 - 4
Gems/ProteusRobot/Code/Platform/Android/PAL_android.cmake

@@ -1,4 +0,0 @@
-
-set(PAL_TRAIT_PROTEUSROBOT_SUPPORTED TRUE)
-set(PAL_TRAIT_PROTEUSROBOT_TEST_SUPPORTED FALSE)
-set(PAL_TRAIT_PROTEUSROBOT_EDITOR_TEST_SUPPORTED FALSE)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Android/proteusrobot_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Android/proteusrobot_private_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Android
-# i.e. ../Source/Android/ProteusRobotAndroid.cpp
-#      ../Source/Android/ProteusRobotAndroid.h
-#      ../Include/Android/ProteusRobotAndroid.h
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Android/proteusrobot_shared_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Android
-# i.e. ../Source/Android/ProteusRobotAndroid.cpp
-#      ../Source/Android/ProteusRobotAndroid.h
-#      ../Include/Android/ProteusRobotAndroid.h
-
-set(FILES
-)

+ 0 - 4
Gems/ProteusRobot/Code/Platform/Linux/PAL_linux.cmake

@@ -1,4 +0,0 @@
-
-set(PAL_TRAIT_PROTEUSROBOT_SUPPORTED TRUE)
-set(PAL_TRAIT_PROTEUSROBOT_TEST_SUPPORTED FALSE)
-set(PAL_TRAIT_PROTEUSROBOT_EDITOR_TEST_SUPPORTED FALSE)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_editor_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_private_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Linux
-# i.e. ../Source/Linux/ProteusRobotLinux.cpp
-#      ../Source/Linux/ProteusRobotLinux.h
-#      ../Include/Linux/ProteusRobotLinux.h
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Linux/proteusrobot_shared_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Linux
-# i.e. ../Source/Linux/ProteusRobotLinux.cpp
-#      ../Source/Linux/ProteusRobotLinux.h
-#      ../Include/Linux/ProteusRobotLinux.h
-
-set(FILES
-)

+ 0 - 4
Gems/ProteusRobot/Code/Platform/Mac/PAL_mac.cmake

@@ -1,4 +0,0 @@
-
-set(PAL_TRAIT_PROTEUSROBOT_SUPPORTED TRUE)
-set(PAL_TRAIT_PROTEUSROBOT_TEST_SUPPORTED FALSE)
-set(PAL_TRAIT_PROTEUSROBOT_EDITOR_TEST_SUPPORTED FALSE)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_editor_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_private_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Mac
-# i.e. ../Source/Mac/ProteusRobotMac.cpp
-#      ../Source/Mac/ProteusRobotMac.h
-#      ../Include/Mac/ProteusRobotMac.h
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Mac/proteusrobot_shared_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Mac
-# i.e. ../Source/Mac/ProteusRobotMac.cpp
-#      ../Source/Mac/ProteusRobotMac.h
-#      ../Include/Mac/ProteusRobotMac.h
-
-set(FILES
-)

+ 0 - 4
Gems/ProteusRobot/Code/Platform/Windows/PAL_windows.cmake

@@ -1,4 +0,0 @@
-
-set(PAL_TRAIT_PROTEUSROBOT_SUPPORTED TRUE)
-set(PAL_TRAIT_PROTEUSROBOT_TEST_SUPPORTED FALSE)
-set(PAL_TRAIT_PROTEUSROBOT_EDITOR_TEST_SUPPORTED FALSE)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_editor_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_private_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Windows
-# i.e. ../Source/Windows/ProteusRobotWindows.cpp
-#      ../Source/Windows/ProteusRobotWindows.h
-#      ../Include/Windows/ProteusRobotWindows.h
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/Windows/proteusrobot_shared_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for Windows
-# i.e. ../Source/Windows/ProteusRobotWindows.cpp
-#      ../Source/Windows/ProteusRobotWindows.h
-#      ../Include/Windows/ProteusRobotWindows.h
-
-set(FILES
-)

+ 0 - 4
Gems/ProteusRobot/Code/Platform/iOS/PAL_ios.cmake

@@ -1,4 +0,0 @@
-
-set(PAL_TRAIT_PROTEUSROBOT_SUPPORTED TRUE)
-set(PAL_TRAIT_PROTEUSROBOT_TEST_SUPPORTED FALSE)
-set(PAL_TRAIT_PROTEUSROBOT_EDITOR_TEST_SUPPORTED FALSE)

+ 0 - 3
Gems/ProteusRobot/Code/Platform/iOS/proteusrobot_api_files.cmake

@@ -1,3 +0,0 @@
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/iOS/proteusrobot_private_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for iOS
-# i.e. ../Source/iOS/ProteusRobotiOS.cpp
-#      ../Source/iOS/ProteusRobotiOS.h
-#      ../Include/iOS/ProteusRobotiOS.h
-
-set(FILES
-)

+ 0 - 8
Gems/ProteusRobot/Code/Platform/iOS/proteusrobot_shared_files.cmake

@@ -1,8 +0,0 @@
-
-# Platform specific files for iOS
-# i.e. ../Source/iOS/ProteusRobotiOS.cpp
-#      ../Source/iOS/ProteusRobotiOS.h
-#      ../Include/iOS/ProteusRobotiOS.h
-
-set(FILES
-)

+ 0 - 17
Gems/ProteusRobot/Code/Source/Clients/ProteusRobotModule.cpp

@@ -1,17 +0,0 @@
-
-
-#include <ProteusRobotModuleInterface.h>
-#include "ProteusRobotSystemComponent.h"
-
-namespace ProteusRobot
-{
-    class ProteusRobotModule
-        : public ProteusRobotModuleInterface
-    {
-    public:
-        AZ_RTTI(ProteusRobotModule, "{F9558D3E-566B-4824-8634-015F21864F5E}", ProteusRobotModuleInterface);
-        AZ_CLASS_ALLOCATOR(ProteusRobotModule, AZ::SystemAllocator);
-    };
-}// namespace ProteusRobot
-
-AZ_DECLARE_MODULE_CLASS(Gem_ProteusRobot, ProteusRobot::ProteusRobotModule)

+ 0 - 83
Gems/ProteusRobot/Code/Source/Clients/ProteusRobotSystemComponent.cpp

@@ -1,83 +0,0 @@
-
-#include "ProteusRobotSystemComponent.h"
-
-#include <AzCore/Serialization/SerializeContext.h>
-#include <AzCore/Serialization/EditContext.h>
-#include <AzCore/Serialization/EditContextConstants.inl>
-
-namespace ProteusRobot
-{
-    void ProteusRobotSystemComponent::Reflect(AZ::ReflectContext* context)
-    {
-        if (AZ::SerializeContext* serialize = azrtti_cast<AZ::SerializeContext*>(context))
-        {
-            serialize->Class<ProteusRobotSystemComponent, AZ::Component>()
-                ->Version(0)
-                ;
-
-            if (AZ::EditContext* ec = serialize->GetEditContext())
-            {
-                ec->Class<ProteusRobotSystemComponent>("ProteusRobot", "[Description of functionality provided by this System Component]")
-                    ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
-                        ->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("System"))
-                        ->Attribute(AZ::Edit::Attributes::AutoExpand, true)
-                    ;
-            }
-        }
-    }
-
-    void ProteusRobotSystemComponent::GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided)
-    {
-        provided.push_back(AZ_CRC_CE("ProteusRobotService"));
-    }
-
-    void ProteusRobotSystemComponent::GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible)
-    {
-        incompatible.push_back(AZ_CRC_CE("ProteusRobotService"));
-    }
-
-    void ProteusRobotSystemComponent::GetRequiredServices([[maybe_unused]] AZ::ComponentDescriptor::DependencyArrayType& required)
-    {
-    }
-
-    void ProteusRobotSystemComponent::GetDependentServices([[maybe_unused]] AZ::ComponentDescriptor::DependencyArrayType& dependent)
-    {
-    }
-
-    ProteusRobotSystemComponent::ProteusRobotSystemComponent()
-    {
-        if (ProteusRobotInterface::Get() == nullptr)
-        {
-            ProteusRobotInterface::Register(this);
-        }
-    }
-
-    ProteusRobotSystemComponent::~ProteusRobotSystemComponent()
-    {
-        if (ProteusRobotInterface::Get() == this)
-        {
-            ProteusRobotInterface::Unregister(this);
-        }
-    }
-
-    void ProteusRobotSystemComponent::Init()
-    {
-    }
-
-    void ProteusRobotSystemComponent::Activate()
-    {
-        ProteusRobotRequestBus::Handler::BusConnect();
-        AZ::TickBus::Handler::BusConnect();
-    }
-
-    void ProteusRobotSystemComponent::Deactivate()
-    {
-        AZ::TickBus::Handler::BusDisconnect();
-        ProteusRobotRequestBus::Handler::BusDisconnect();
-    }
-
-    void ProteusRobotSystemComponent::OnTick([[maybe_unused]] float deltaTime, [[maybe_unused]] AZ::ScriptTimePoint time)
-    {
-    }
-
-} // namespace ProteusRobot

+ 0 - 47
Gems/ProteusRobot/Code/Source/Clients/ProteusRobotSystemComponent.h

@@ -1,47 +0,0 @@
-
-#pragma once
-
-#include <AzCore/Component/Component.h>
-#include <AzCore/Component/TickBus.h>
-#include <ProteusRobot/ProteusRobotBus.h>
-
-namespace ProteusRobot
-{
-    class ProteusRobotSystemComponent
-        : public AZ::Component
-        , protected ProteusRobotRequestBus::Handler
-        , public AZ::TickBus::Handler
-    {
-    public:
-        AZ_COMPONENT(ProteusRobotSystemComponent, "{250B4B63-AF8F-4DC0-BF73-9880E8BEA444}");
-
-        static void Reflect(AZ::ReflectContext* context);
-
-        static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided);
-        static void GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible);
-        static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required);
-        static void GetDependentServices(AZ::ComponentDescriptor::DependencyArrayType& dependent);
-
-        ProteusRobotSystemComponent();
-        ~ProteusRobotSystemComponent();
-
-    protected:
-        ////////////////////////////////////////////////////////////////////////
-        // ProteusRobotRequestBus interface implementation
-
-        ////////////////////////////////////////////////////////////////////////
-
-        ////////////////////////////////////////////////////////////////////////
-        // AZ::Component interface implementation
-        void Init() override;
-        void Activate() override;
-        void Deactivate() override;
-        ////////////////////////////////////////////////////////////////////////
-
-        ////////////////////////////////////////////////////////////////////////
-        // AZTickBus interface implementation
-        void OnTick(float deltaTime, AZ::ScriptTimePoint time) override;
-        ////////////////////////////////////////////////////////////////////////
-    };
-
-} // namespace ProteusRobot

+ 0 - 36
Gems/ProteusRobot/Code/Source/ProteusRobotModuleInterface.h

@@ -1,36 +0,0 @@
-
-#include <AzCore/Memory/SystemAllocator.h>
-#include <AzCore/Module/Module.h>
-#include <Clients/ProteusRobotSystemComponent.h>
-
-namespace ProteusRobot
-{
-    class ProteusRobotModuleInterface
-        : public AZ::Module
-    {
-    public:
-        AZ_RTTI(ProteusRobotModuleInterface, "{C2853683-8867-42E4-BAF8-6BAE29CB53E1}", AZ::Module);
-        AZ_CLASS_ALLOCATOR(ProteusRobotModuleInterface, AZ::SystemAllocator);
-
-        ProteusRobotModuleInterface()
-        {
-            // Push results of [MyComponent]::CreateDescriptor() into m_descriptors here.
-            // Add ALL components descriptors associated with this gem to m_descriptors.
-            // This will associate the AzTypeInfo information for the components with the the SerializeContext, BehaviorContext and EditContext.
-            // This happens through the [MyComponent]::Reflect() function.
-            m_descriptors.insert(m_descriptors.end(), {
-                ProteusRobotSystemComponent::CreateDescriptor(),
-                });
-        }
-
-        /**
-         * Add required SystemComponents to the SystemEntity.
-         */
-        AZ::ComponentTypeList GetRequiredSystemComponents() const override
-        {
-            return AZ::ComponentTypeList{
-                azrtti_typeid<ProteusRobotSystemComponent>(),
-            };
-        }
-    };
-}// namespace ProteusRobot

+ 0 - 38
Gems/ProteusRobot/Code/Source/Tools/ProteusRobotEditorModule.cpp

@@ -1,38 +0,0 @@
-
-#include <ProteusRobotModuleInterface.h>
-#include "ProteusRobotEditorSystemComponent.h"
-
-namespace ProteusRobot
-{
-    class ProteusRobotEditorModule
-        : public ProteusRobotModuleInterface
-    {
-    public:
-        AZ_RTTI(ProteusRobotEditorModule, "{F9558D3E-566B-4824-8634-015F21864F5E}", ProteusRobotModuleInterface);
-        AZ_CLASS_ALLOCATOR(ProteusRobotEditorModule, AZ::SystemAllocator);
-
-        ProteusRobotEditorModule()
-        {
-            // Push results of [MyComponent]::CreateDescriptor() into m_descriptors here.
-            // Add ALL components descriptors associated with this gem to m_descriptors.
-            // This will associate the AzTypeInfo information for the components with the the SerializeContext, BehaviorContext and EditContext.
-            // This happens through the [MyComponent]::Reflect() function.
-            m_descriptors.insert(m_descriptors.end(), {
-                ProteusRobotEditorSystemComponent::CreateDescriptor(),
-            });
-        }
-
-        /**
-         * Add required SystemComponents to the SystemEntity.
-         * Non-SystemComponents should not be added here
-         */
-        AZ::ComponentTypeList GetRequiredSystemComponents() const override
-        {
-            return AZ::ComponentTypeList {
-                azrtti_typeid<ProteusRobotEditorSystemComponent>(),
-            };
-        }
-    };
-}// namespace ProteusRobot
-
-AZ_DECLARE_MODULE_CLASS(Gem_ProteusRobot, ProteusRobot::ProteusRobotEditorModule)

+ 0 - 54
Gems/ProteusRobot/Code/Source/Tools/ProteusRobotEditorSystemComponent.cpp

@@ -1,54 +0,0 @@
-
-#include <AzCore/Serialization/SerializeContext.h>
-#include "ProteusRobotEditorSystemComponent.h"
-
-namespace ProteusRobot
-{
-    void ProteusRobotEditorSystemComponent::Reflect(AZ::ReflectContext* context)
-    {
-        if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
-        {
-            serializeContext->Class<ProteusRobotEditorSystemComponent, ProteusRobotSystemComponent>()
-                ->Version(0);
-        }
-    }
-
-    ProteusRobotEditorSystemComponent::ProteusRobotEditorSystemComponent() = default;
-
-    ProteusRobotEditorSystemComponent::~ProteusRobotEditorSystemComponent() = default;
-
-    void ProteusRobotEditorSystemComponent::GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided)
-    {
-        BaseSystemComponent::GetProvidedServices(provided);
-        provided.push_back(AZ_CRC_CE("ProteusRobotEditorService"));
-    }
-
-    void ProteusRobotEditorSystemComponent::GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible)
-    {
-        BaseSystemComponent::GetIncompatibleServices(incompatible);
-        incompatible.push_back(AZ_CRC_CE("ProteusRobotEditorService"));
-    }
-
-    void ProteusRobotEditorSystemComponent::GetRequiredServices([[maybe_unused]] AZ::ComponentDescriptor::DependencyArrayType& required)
-    {
-        BaseSystemComponent::GetRequiredServices(required);
-    }
-
-    void ProteusRobotEditorSystemComponent::GetDependentServices([[maybe_unused]] AZ::ComponentDescriptor::DependencyArrayType& dependent)
-    {
-        BaseSystemComponent::GetDependentServices(dependent);
-    }
-
-    void ProteusRobotEditorSystemComponent::Activate()
-    {
-        ProteusRobotSystemComponent::Activate();
-        AzToolsFramework::EditorEvents::Bus::Handler::BusConnect();
-    }
-
-    void ProteusRobotEditorSystemComponent::Deactivate()
-    {
-        AzToolsFramework::EditorEvents::Bus::Handler::BusDisconnect();
-        ProteusRobotSystemComponent::Deactivate();
-    }
-
-} // namespace ProteusRobot

+ 0 - 33
Gems/ProteusRobot/Code/Source/Tools/ProteusRobotEditorSystemComponent.h

@@ -1,33 +0,0 @@
-
-#pragma once
-
-#include <AzToolsFramework/API/ToolsApplicationAPI.h>
-
-#include <Clients/ProteusRobotSystemComponent.h>
-
-namespace ProteusRobot
-{
-    /// System component for ProteusRobot editor
-    class ProteusRobotEditorSystemComponent
-        : public ProteusRobotSystemComponent
-        , protected AzToolsFramework::EditorEvents::Bus::Handler
-    {
-        using BaseSystemComponent = ProteusRobotSystemComponent;
-    public:
-        AZ_COMPONENT(ProteusRobotEditorSystemComponent, "{1AD25C4B-B8F7-4C54-BF46-3F5A9E02E90B}", BaseSystemComponent);
-        static void Reflect(AZ::ReflectContext* context);
-
-        ProteusRobotEditorSystemComponent();
-        ~ProteusRobotEditorSystemComponent();
-
-    private:
-        static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided);
-        static void GetIncompatibleServices(AZ::ComponentDescriptor::DependencyArrayType& incompatible);
-        static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required);
-        static void GetDependentServices(AZ::ComponentDescriptor::DependencyArrayType& dependent);
-
-        // AZ::Component
-        void Activate() override;
-        void Deactivate() override;
-    };
-} // namespace ProteusRobot

+ 0 - 4
Gems/ProteusRobot/Code/Tests/Clients/ProteusRobotTest.cpp

@@ -1,4 +0,0 @@
-
-#include <AzTest/AzTest.h>
-
-AZ_UNIT_TEST_HOOK(DEFAULT_UNIT_TEST_ENV);

+ 0 - 4
Gems/ProteusRobot/Code/Tests/Tools/ProteusRobotEditorTest.cpp

@@ -1,4 +0,0 @@
-
-#include <AzTest/AzTest.h>
-
-AZ_UNIT_TEST_HOOK(DEFAULT_UNIT_TEST_ENV);

+ 0 - 4
Gems/ProteusRobot/Code/proteusrobot_api_files.cmake

@@ -1,4 +0,0 @@
-
-set(FILES
-    Include/ProteusRobot/ProteusRobotBus.h
-)

+ 0 - 4
Gems/ProteusRobot/Code/proteusrobot_editor_api_files.cmake

@@ -1,4 +0,0 @@
-
-
-set(FILES
-)

+ 0 - 5
Gems/ProteusRobot/Code/proteusrobot_editor_private_files.cmake

@@ -1,5 +0,0 @@
-
-set(FILES
-    Source/Tools/ProteusRobotEditorSystemComponent.cpp
-    Source/Tools/ProteusRobotEditorSystemComponent.h
-)

+ 0 - 4
Gems/ProteusRobot/Code/proteusrobot_editor_shared_files.cmake

@@ -1,4 +0,0 @@
-
-set(FILES
-    Source/Tools/ProteusRobotEditorModule.cpp
-)

+ 0 - 4
Gems/ProteusRobot/Code/proteusrobot_editor_tests_files.cmake

@@ -1,4 +0,0 @@
-
-set(FILES
-    Tests/Tools/ProteusRobotEditorTest.cpp
-)

+ 0 - 6
Gems/ProteusRobot/Code/proteusrobot_private_files.cmake

@@ -1,6 +0,0 @@
-
-set(FILES
-    Source/ProteusRobotModuleInterface.h
-    Source/Clients/ProteusRobotSystemComponent.cpp
-    Source/Clients/ProteusRobotSystemComponent.h
-)

+ 0 - 4
Gems/ProteusRobot/Code/proteusrobot_shared_files.cmake

@@ -1,4 +0,0 @@
-
-set(FILES
-    Source/Clients/ProteusRobotModule.cpp
-)

+ 0 - 4
Gems/ProteusRobot/Code/proteusrobot_tests_files.cmake

@@ -1,4 +0,0 @@
-
-set(FILES
-    Tests/Clients/ProteusRobotTest.cpp
-)

+ 8 - 8
Gems/ProteusRobot/gem.json

@@ -1,13 +1,13 @@
 {
     "gem_name": "ProteusRobot",
     "version": "1.0.0",
-    "display_name": "ProteusRobot",
-    "license": "License used i.e. Apache-2.0 or MIT",
-    "license_url": "Link to the license web site i.e. https://opensource.org/licenses/Apache-2.0",
-    "origin": "The name of the originator or creator",
+    "display_name": "Proteus Robot",
+    "license": "Apache-2.0",
+    "license_url": "https://opensource.org/licenses/Apache-2.0",
+    "origin": "RobotecAI",
     "origin_url": "https://github.com/o3de/o3de-extras/tree/development/Gems/ProteusRobot",
-    "type": "Code",
-    "summary": "Proteus: Warehouse robot with Lidar sensor",
+    "type": "Asset",
+    "summary": "Proteus warehouse robot with Lidar sensor",
     "canonical_tags": [
         "Gem"
     ],
@@ -18,8 +18,8 @@
         ""
     ],
     "icon_path": "preview.png",
-    "requirements": "Notice of any requirements for this Gem i.e. This requires X other gem",
-    "documentation_url": "Link to any documentation of your Gem",
+    "requirements": "Requires ROS 2 Gem for the Lidar to function",
+    "documentation_url": "https://www.o3de.org/docs/user-guide/interactivity/robotics/project-configuration/#ros-2-project-templates",
     "dependencies": [],
     "repo_uri": "https://raw.githubusercontent.com/o3de/o3de-extras/development",
     "compatible_engines": [],

+ 2 - 2
Gems/ProteusRobot/preview.png

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:4e2408737fe2bba9016b8bfaf0e09ba7624ab298720c51307a51cec1c816ebd7
-size 125915
+oid sha256:4f1c54b47691f37f59463ff5926c44bba4783f526512485704167502d840f76c
+size 19282

+ 2 - 2
Gems/ROS2/gem.json

@@ -10,7 +10,7 @@
     "origin": "RobotecAI",
     "origin_url": "https://github.com/o3de/o3de-extras/development/Gems/ROS2",
     "type": "Code",
-    "summary": "Tools and components to support creating simulations for ros2 systems such as robots",
+    "summary": "Tools and components to support creating simulations for ROS 2 systems such as robots",
     "canonical_tags": [
         "Gem"
     ],
@@ -22,7 +22,7 @@
         "o3de>=1.2.0"
     ],
     "icon_path": "preview.png",
-    "requirements": "Requires ros2 installation (supported distributions: humble). Source your workspace before building the Gem",
+    "requirements": "Requires ROS 2 installation (supported distributions: Humble). Source your workspace before building the Gem",
     "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/design/ros2/",
     "dependencies": [
         "Atom_RPI",

+ 14 - 4
Gems/RosRobotSample/CMakeLists.txt

@@ -1,3 +1,7 @@
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
 
 # Query the gem name from the gem.json file if possible
 # otherwise fallback to using RosRobotSample
@@ -6,10 +10,16 @@ if (NOT gem_name)
     set(gem_name "RosRobotSample")
 endif()
 
-# This will export the path to the directory containing the gem.json
-# to the "SourcePaths" entry within the "cmake_dependencies.<project>.assetbuilder.setreg"
-# which is generated when cmake is run
-# This path is the gem root directory
+# This indicates to the Builders applications(AssetProcessor, AssetBuilder, AssetBundler)
+# that the gem should be added to the "cmake_dependencies.<project>.assetbuilder.setreg"
+# which is generated when cmake configure occurs.
+# Also tooling applications such as the Editor needs the CMake alias
+# to see the gem as active
 if(PAL_TRAIT_BUILD_HOST_TOOLS)
     ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem)
+    ly_create_alias(NAME ${gem_name}.Tools NAMESPACE Gem)
+
+    # Add in CMake dependencies for each gem dependency listed in this gem's gem.json file
+    # for the Tools and Builders gem variants
+    o3de_add_variant_dependencies_for_gem_dependencies(GEM_NAME ${gem_name} VARIANTS Tools Builders)
 endif()

+ 2 - 2
Gems/RosRobotSample/gem.json

@@ -1,6 +1,6 @@
 {
     "gem_name": "RosRobotSample",
-    "display_name": "RosRobotSample",
+    "display_name": "ROS Robot Sample",
     "license": "Apache-2.0 or MIT",
     "license_url": "https://opensource.org/licenses/Apache-2.0",
     "origin": "Ros2WarehouseDemo",
@@ -14,7 +14,7 @@
         "RosRobotSample"
     ],
     "platforms": [
-        ""
+        "Linux"
     ],
     "icon_path": "preview.png",
     "requirements": "",