Parcourir la source

Templates restricted (#6498)

* Templates/Restricted upgrade/fixes:
Fixed template storage format: templates now only store true relative paths and no longer save "origin" paths and "optional" has been removed, it was never used.
Upgraded all templates to new standard
Template system now correctly handles child objects: Child objects no longer have to specify restricted they inherit from parent
Restricted now operates at the object level and makes no assumptions about parent
Restricted templates can now be combined and seperated on creation
ly_get_list_relative_filename has been deprecated for o3de_pal_dir
All Gems/Projects/Templates updated to use new code

Signed-off-by: byrcolin <[email protected]>
AMZN-byrcolin il y a 3 ans
Parent
commit
c778606c89
100 fichiers modifiés avec 324 ajouts et 176 suppressions
  1. 0 1
      AutomatedTesting/CMakeLists.txt
  2. 5 2
      AutomatedTesting/Gem/CMakeLists.txt
  3. 1 1
      AutomatedTesting/Gem/Code/CMakeLists.txt
  4. 4 0
      AutomatedTesting/Gem/PythonCoverage/CMakeLists.txt
  5. 1 1
      AutomatedTesting/Gem/PythonCoverage/Code/CMakeLists.txt
  6. 5 1
      AutomatedTesting/Gem/PythonCoverage/gem.json
  7. 1 1
      AutomatedTesting/Gem/PythonTests/Blast/CMakeLists.txt
  8. 1 1
      AutomatedTesting/Gem/PythonTests/CMakeLists.txt
  9. 1 1
      AutomatedTesting/Gem/PythonTests/WhiteBox/CMakeLists.txt
  10. 8 3
      AutomatedTesting/Gem/Sponza/gem.json
  11. 11 3
      AutomatedTesting/Gem/gem.json
  12. 6 3
      AutomatedTesting/project.json
  13. 42 27
      CMakeLists.txt
  14. 1 1
      Code/Editor/CMakeLists.txt
  15. 5 5
      Code/Framework/AzCore/CMakeLists.txt
  16. 6 6
      Code/Framework/AzFramework/CMakeLists.txt
  17. 2 2
      Code/Framework/AzNetworking/CMakeLists.txt
  18. 1 1
      Code/Framework/AzQtComponents/CMakeLists.txt
  19. 4 4
      Code/Framework/AzTest/CMakeLists.txt
  20. 3 3
      Code/Framework/GridMate/CMakeLists.txt
  21. 1 1
      Code/LauncherUnified/CMakeLists.txt
  22. 1 1
      Code/LauncherUnified/launcher_generator.cmake
  23. 1 1
      Code/Legacy/CryCommon/CMakeLists.txt
  24. 1 1
      Code/Legacy/CrySystem/CMakeLists.txt
  25. 2 2
      Code/Tools/AWSNativeSDKInit/CMakeLists.txt
  26. 1 1
      Code/Tools/AssetProcessor/AssetBuilderSDK/CMakeLists.txt
  27. 1 1
      Code/Tools/AzTestRunner/CMakeLists.txt
  28. 1 1
      Code/Tools/CrashHandler/CMakeLists.txt
  29. 3 1
      Code/Tools/LuaIDE/CMakeLists.txt
  30. 1 1
      Code/Tools/ProjectManager/Source/PythonBindings.cpp
  31. 1 1
      Code/Tools/RemoteConsole/CMakeLists.txt
  32. 1 1
      Code/Tools/SceneAPI/SceneData/CMakeLists.txt
  33. 2 2
      Code/Tools/TestImpactFramework/CMakeLists.txt
  34. 2 2
      Code/Tools/TestImpactFramework/Runtime/Code/CMakeLists.txt
  35. 4 0
      Gems/AWSClientAuth/CMakeLists.txt
  36. 1 1
      Gems/AWSClientAuth/Code/CMakeLists.txt
  37. 3 1
      Gems/AWSClientAuth/gem.json
  38. 4 0
      Gems/AWSCore/CMakeLists.txt
  39. 2 2
      Gems/AWSCore/Code/CMakeLists.txt
  40. 6 2
      Gems/AWSCore/gem.json
  41. 3 2
      Gems/AWSGameLift/gem.json
  42. 3 1
      Gems/AWSMetrics/gem.json
  43. 4 0
      Gems/Achievements/CMakeLists.txt
  44. 3 3
      Gems/Achievements/Code/CMakeLists.txt
  45. 1 0
      Gems/Achievements/gem.json
  46. 1 0
      Gems/AssetValidation/gem.json
  47. 0 10
      Gems/Atom/Asset/CMakeLists.txt
  48. 4 0
      Gems/Atom/Asset/ImageProcessingAtom/CMakeLists.txt
  49. 3 3
      Gems/Atom/Asset/ImageProcessingAtom/Code/CMakeLists.txt
  50. 2 0
      Gems/Atom/Asset/ImageProcessingAtom/gem.json
  51. 4 0
      Gems/Atom/Asset/Shader/CMakeLists.txt
  52. 3 3
      Gems/Atom/Asset/Shader/Code/CMakeLists.txt
  53. 6 2
      Gems/Atom/Asset/Shader/gem.json
  54. 4 0
      Gems/Atom/Bootstrap/CMakeLists.txt
  55. 1 1
      Gems/Atom/Bootstrap/Code/CMakeLists.txt
  56. 2 0
      Gems/Atom/Bootstrap/gem.json
  57. 4 6
      Gems/Atom/CMakeLists.txt
  58. 0 9
      Gems/Atom/Component/CMakeLists.txt
  59. 4 0
      Gems/Atom/Component/DebugCamera/CMakeLists.txt
  60. 2 0
      Gems/Atom/Component/DebugCamera/gem.json
  61. 0 9
      Gems/Atom/Feature/CMakeLists.txt
  62. 4 0
      Gems/Atom/Feature/Common/CMakeLists.txt
  63. 2 2
      Gems/Atom/Feature/Common/Code/CMakeLists.txt
  64. 2 0
      Gems/Atom/Feature/Common/gem.json
  65. 4 4
      Gems/Atom/RHI/CMakeLists.txt
  66. 2 2
      Gems/Atom/RHI/Code/CMakeLists.txt
  67. 4 0
      Gems/Atom/RHI/DX12/CMakeLists.txt
  68. 3 3
      Gems/Atom/RHI/DX12/Code/CMakeLists.txt
  69. 2 0
      Gems/Atom/RHI/DX12/gem.json
  70. 4 0
      Gems/Atom/RHI/Metal/CMakeLists.txt
  71. 2 2
      Gems/Atom/RHI/Metal/Code/CMakeLists.txt
  72. 2 0
      Gems/Atom/RHI/Metal/gem.json
  73. 4 0
      Gems/Atom/RHI/Null/CMakeLists.txt
  74. 2 2
      Gems/Atom/RHI/Null/Code/CMakeLists.txt
  75. 2 0
      Gems/Atom/RHI/Null/gem.json
  76. 4 0
      Gems/Atom/RHI/Vulkan/CMakeLists.txt
  77. 2 2
      Gems/Atom/RHI/Vulkan/Code/CMakeLists.txt
  78. 2 0
      Gems/Atom/RHI/Vulkan/gem.json
  79. 7 0
      Gems/Atom/RHI/gem.json
  80. 4 0
      Gems/Atom/RPI/CMakeLists.txt
  81. 3 3
      Gems/Atom/RPI/Code/CMakeLists.txt
  82. 3 1
      Gems/Atom/RPI/gem.json
  83. 4 0
      Gems/Atom/Tools/AtomToolsFramework/CMakeLists.txt
  84. 1 1
      Gems/Atom/Tools/AtomToolsFramework/Code/CMakeLists.txt
  85. 2 0
      Gems/Atom/Tools/AtomToolsFramework/gem.json
  86. 0 2
      Gems/Atom/Tools/CMakeLists.txt
  87. 4 0
      Gems/Atom/Tools/MaterialEditor/CMakeLists.txt
  88. 1 1
      Gems/Atom/Tools/MaterialEditor/Code/CMakeLists.txt
  89. 2 0
      Gems/Atom/Tools/MaterialEditor/gem.json
  90. 1 1
      Gems/Atom/Tools/ShaderManagementConsole/Code/CMakeLists.txt
  91. 3 2
      Gems/Atom/Utils/Code/CMakeLists.txt
  92. 12 0
      Gems/Atom/gem.json
  93. 0 2
      Gems/AtomContent/CMakeLists.txt
  94. 7 3
      Gems/AtomContent/ReferenceMaterials/gem.json
  95. 4 1
      Gems/AtomContent/Sponza/gem.json
  96. 7 2
      Gems/AtomContent/gem.json
  97. 4 0
      Gems/AtomLyIntegration/AtomBridge/CMakeLists.txt
  98. 1 1
      Gems/AtomLyIntegration/AtomBridge/Code/CMakeLists.txt
  99. 2 0
      Gems/AtomLyIntegration/AtomBridge/gem.json
  100. 4 0
      Gems/AtomLyIntegration/AtomFont/CMakeLists.txt

+ 0 - 1
AutomatedTesting/CMakeLists.txt

@@ -27,5 +27,4 @@ else()
 
     set_property(GLOBAL APPEND PROPERTY LY_PROJECTS_TARGET_NAME ${project_target_name})
 
-    add_subdirectory(Gem)
 endif()

+ 5 - 2
AutomatedTesting/Gem/CMakeLists.txt

@@ -6,6 +6,9 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)
-add_subdirectory(PythonTests)
-add_subdirectory(PythonCoverage)
+add_subdirectory(PythonTests)

+ 1 - 1
AutomatedTesting/Gem/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME AutomatedTesting ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}

+ 4 - 0
AutomatedTesting/Gem/PythonCoverage/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 1 - 1
AutomatedTesting/Gem/PythonCoverage/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${o3de_gem_restricted_path} ${o3de_gem_path} ${o3de_gem_name})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 
 if(PAL_TRAIT_PYTHONCOVERAGE_SUPPORTED)

+ 5 - 1
AutomatedTesting/Gem/PythonCoverage/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Tool",
     "summary": "A tool for generating gem coverage for Python tests.",
     "canonical_tags": [
@@ -13,5 +14,8 @@
         "PythonCoverage"
     ],
     "icon_path": "preview.png",
-    "requirements": ""
+    "requirements": "",
+    "documentation_url": "",
+    "dependencies": [
+    ]
 }

+ 1 - 1
AutomatedTesting/Gem/PythonTests/Blast/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # for PAL_TRAIT_BLAST Traits
 

+ 1 - 1
AutomatedTesting/Gem/PythonTests/CMakeLists.txt

@@ -10,7 +10,7 @@
 # Automated Tests
 ################################################################################
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_dir}/PAL_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 

+ 1 - 1
AutomatedTesting/Gem/PythonTests/WhiteBox/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # for PAL_TRAIT_WHITEBOX Traits
 

+ 8 - 3
AutomatedTesting/Gem/Sponza/gem.json

@@ -4,14 +4,19 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Asset",
     "summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)",
     "canonical_tags": [
-        "Gem"
+        "Gem",
+        "Asset"
     ],
     "user_tags": [
-        "Assets"
+        "Sponza"
     ],
+    "icon_path": "preview.png",
     "requirements": "",
-    "dependencies": []
+    "documentation_url": "",
+    "dependencies": [
+    ]
 }

+ 11 - 3
AutomatedTesting/Gem/gem.json

@@ -3,13 +3,21 @@
     "display_name": "AutomatedTesting",
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
-    "origin": "Amazon Web Services, Inc.",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "Project Gem for customizing the AutomatedTesting project functionality.",
     "canonical_tags": [
         "Gem"
     ],
-    "user_tags": [],
+    "user_tags": [
+        "AutomatedTesting"
+    ],
     "icon_path": "preview.png",
-    "requirements": ""
+    "requirements": "",
+    "documentation_url": "",
+    "dependencies": [],
+    "external_subdirectories": [
+        "PythonCoverage"
+    ]
 }

+ 6 - 3
AutomatedTesting/project.json

@@ -5,12 +5,15 @@
     "modules": [],
     "project_id": "{D816AFAE-4BB7-4FEF-88F4-E2B786DCF29D}",
     "android_settings": {
-        "package_name": "com.lumberyard.yourgame",
+        "package_name": "org.o3de.automatedtesting",
         "version_number": 1,
         "version_name": "1.0.0",
         "orientation": "landscape"
     },
     "engine": "o3de",
     "display_name": "AutomatedTesting",
-    "icon_path": "preview.png"
-}
+    "icon_path": "preview.png",
+    "external_subdirectories": [
+        "Gem"
+    ]
+}

+ 42 - 27
CMakeLists.txt

@@ -49,21 +49,56 @@ include(cmake/O3DEJson.cmake)
 # Subdirectory processing
 ################################################################################
 
+# this function is building up the LY_EXTERNAL_SUBDIRS global property
+function(add_engine_gem_json_external_subdirectories gem_path)
+    set(gem_json_path ${gem_path}/gem.json)
+    if(EXISTS ${gem_json_path})
+        read_json_external_subdirs(gem_external_subdirs ${gem_path}/gem.json)
+        foreach(gem_external_subdir ${gem_external_subdirs})
+            file(REAL_PATH ${gem_external_subdir} real_external_subdir BASE_DIRECTORY ${gem_path})
+            set_property(GLOBAL APPEND PROPERTY LY_EXTERNAL_SUBDIRS ${real_external_subdir})
+            add_engine_gem_json_external_subdirectories(${real_external_subdir})
+        endforeach()
+    endif()
+endfunction()
+
 function(add_engine_json_external_subdirectories)
-    read_json_external_subdirs(external_subdis ${LY_ROOT_FOLDER}/engine.json)
-    foreach(external_subdir ${external_subdis})
-        file(REAL_PATH ${external_subdir} real_external_subdir BASE_DIRECTORY ${LY_ROOT_FOLDER})
-        list(APPEND engine_external_subdirs ${real_external_subdir})
+    read_json_external_subdirs(engine_external_subdirs ${LY_ROOT_FOLDER}/engine.json)
+    foreach(engine_external_subdir ${engine_external_subdirs})
+        file(REAL_PATH ${engine_external_subdir} real_external_subdir BASE_DIRECTORY ${LY_ROOT_FOLDER})
+        set_property(GLOBAL APPEND PROPERTY LY_EXTERNAL_SUBDIRS ${real_external_subdir})
+        add_engine_gem_json_external_subdirectories(${real_external_subdir})
     endforeach()
+endfunction()
 
-    set_property(GLOBAL APPEND PROPERTY LY_EXTERNAL_SUBDIRS ${engine_external_subdirs})
+function(add_subdirectory_on_externalsubdirs)
+    get_property(external_subdirs GLOBAL PROPERTY LY_EXTERNAL_SUBDIRS)
+    list(APPEND LY_EXTERNAL_SUBDIRS ${external_subdirs})
+    # Loop over the additional external subdirectories and invoke add_subdirectory on them
+    foreach(external_directory ${LY_EXTERNAL_SUBDIRS})
+        # Hash the external_directory name and append it to the Binary Directory section of add_subdirectory
+        # This is to deal with potential situations where multiple external directories has the same last directory name
+        # For example if D:/Company1/RayTracingGem and F:/Company2/Path/RayTracingGem were both added as a subdirectory
+        file(REAL_PATH ${external_directory} full_directory_path)
+        string(SHA256 full_directory_hash ${full_directory_path})
+        # Truncate the full_directory_hash down to 8 characters to avoid hitting the Windows 260 character path limit
+        # when the external subdirectory contains relative paths of significant length
+        string(SUBSTRING ${full_directory_hash} 0 8 full_directory_hash)
+        # Use the last directory as the suffix path to use for the Binary Directory
+        get_filename_component(directory_name ${external_directory} NAME)
+        add_subdirectory(${external_directory} ${CMAKE_BINARY_DIR}/External/${directory_name}-${full_directory_hash})
+    endforeach()
 endfunction()
 
 # Add the projects first so the Launcher can find them
 include(cmake/Projects.cmake)
 
 if(NOT INSTALLED_ENGINE)
-    
+    # Add external subdirectories listed in the engine.json. LY_EXTERNAL_SUBDIRS is a cache variable so the user can add extra
+    # external subdirectories. This should go before adding the rest of the targets so the targets are availbe to the launcher.
+    add_engine_json_external_subdirectories()
+    add_subdirectory_on_externalsubdirs()
+
     # Add the rest of the targets
     add_subdirectory(Assets)
     add_subdirectory(Code)
@@ -73,31 +108,11 @@ if(NOT INSTALLED_ENGINE)
     add_subdirectory(Templates)
     add_subdirectory(Tools)
 
-    # Add external subdirectories listed in the engine.json. LY_EXTERNAL_SUBDIRS is a cache variable so the user can add extra
-    # external subdirectories
-    add_engine_json_external_subdirectories()
 else()
     ly_find_o3de_packages()
+    add_subdirectory_on_externalsubdirs()
 endif()
 
-get_property(external_subdirs GLOBAL PROPERTY LY_EXTERNAL_SUBDIRS)
-list(APPEND LY_EXTERNAL_SUBDIRS ${external_subdirs})
-
-# Loop over the additional external subdirectories and invoke add_subdirectory on them
-foreach(external_directory ${LY_EXTERNAL_SUBDIRS})
-    # Hash the extenal_directory name and append it to the Binary Directory section of add_subdirectory
-    # This is to deal with potential situations where multiple external directories has the same last directory name
-    # For example if D:/Company1/RayTracingGem and F:/Company2/Path/RayTracingGem were both added as a subdirectory
-    file(REAL_PATH ${external_directory} full_directory_path)
-    string(SHA256 full_directory_hash ${full_directory_path})
-    # Truncate the full_directory_hash down to 8 characters to avoid hitting the Windows 260 character path limit
-    # when the external subdirectory contains relative paths of significant length
-    string(SUBSTRING ${full_directory_hash} 0 8 full_directory_hash)
-    # Use the last directory as the suffix path to use for the Binary Directory
-    get_filename_component(directory_name ${external_directory} NAME)
-    add_subdirectory(${external_directory} ${CMAKE_BINARY_DIR}/External/${directory_name}-${full_directory_hash})
-endforeach()
-
 ################################################################################
 # Post-processing
 ################################################################################

+ 1 - 1
Code/Editor/CMakeLists.txt

@@ -63,7 +63,7 @@ ly_add_target(
 set(pal_cmake_files "")
 foreach(enabled_platform ${LY_PAL_TOOLS_ENABLED})
     string(TOLOWER ${enabled_platform} enabled_platform_lowercase)
-    ly_get_list_relative_pal_filename(pal_cmake_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${enabled_platform})
+    o3de_pal_dir(pal_cmake_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${enabled_platform} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
     list(APPEND pal_cmake_files ${pal_cmake_dir}/editor_lib_${enabled_platform_lowercase}_files.cmake)
 endforeach()
 

+ 5 - 5
Code/Framework/AzCore/CMakeLists.txt

@@ -9,8 +9,8 @@
 # TODO: would like to be able to build from this path, however, the whole setup is done at the workspace's root
 #       we also dont want to drop cmake output files everywhere.
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
+set(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
 
 if(PAL_TRAIT_PROF_PIX_SUPPORTED)
     set(LY_PIX_ENABLED OFF CACHE BOOL "Enables PIX profiler integration.")
@@ -110,15 +110,15 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
                 AZ::AzTest
     )
 
-    ly_get_list_relative_pal_filename(pal_test_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME})
+    o3de_pal_dir(pal_tests_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
     ly_add_target(
         NAME AzCore.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
         NAMESPACE AZ
         FILES_CMAKE
             Tests/azcoretests_files.cmake
-            ${pal_test_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+            ${pal_tests_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
         PLATFORM_INCLUDE_FILES
-            ${pal_test_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
+            ${pal_tests_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
         INCLUDE_DIRECTORIES
             PRIVATE
                 Tests

+ 6 - 6
Code/Framework/AzFramework/CMakeLists.txt

@@ -8,8 +8,8 @@
 
 include(AzFramework/feature_options.cmake)
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
+set(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
 
 ly_add_target(
     NAME AzFramework STATIC
@@ -44,7 +44,7 @@ ly_add_source_properties(
 
 if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
 
-    ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME})
+    o3de_pal_dir(test_pal_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
     ly_add_target(
         NAME AzFrameworkTestShared STATIC
@@ -86,11 +86,11 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
             NAMESPACE AZ
             FILES_CMAKE
                 Tests/frameworktests_files.cmake
-                ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+                ${test_pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
             INCLUDE_DIRECTORIES
                 PRIVATE
                     Tests
-                    ${pal_dir}
+                    ${test_pal_dir}
             BUILD_DEPENDENCIES
                 PRIVATE
                     AZ::AzFramework
@@ -104,7 +104,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
             NAME AZ::AzFramework.Tests
         )
 
-        include(${pal_dir}/platform_specific_test_targets.cmake)
+        include(${test_pal_dir}/platform_specific_test_targets.cmake)
 
     endif()
 

+ 2 - 2
Code/Framework/AzNetworking/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
+set(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
 
 ly_add_target(
     NAME AzNetworking STATIC

+ 1 - 1
Code/Framework/AzQtComponents/CMakeLists.txt

@@ -10,7 +10,7 @@ if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 ly_add_target(
     NAME AzQtComponents SHARED

+ 4 - 4
Code/Framework/AzTest/CMakeLists.txt

@@ -7,18 +7,18 @@
 #
 
 if(NOT LY_MONOLITHIC_GAME)
-    ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/AzTest/Platform/${PAL_PLATFORM_NAME})
+    o3de_pal_dir(pal_aztest_dir ${CMAKE_CURRENT_LIST_DIR}/AzTest/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
     ly_add_target(
         NAME AzTest STATIC
         NAMESPACE AZ
         FILES_CMAKE
             AzTest/aztest_files.cmake
-            ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+            ${pal_aztest_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
         INCLUDE_DIRECTORIES
             PUBLIC
                 .
-                ${pal_dir}
+                ${pal_aztest_dir}
         BUILD_DEPENDENCIES
             PUBLIC
                 3rdParty::googletest::GMock
@@ -26,6 +26,6 @@ if(NOT LY_MONOLITHIC_GAME)
                 3rdParty::GoogleBenchmark
                 AZ::AzCore
         PLATFORM_INCLUDE_FILES
-            ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
+            ${pal_aztest_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
     )
 endif()

+ 3 - 3
Code/Framework/GridMate/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
+set(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
 
 ly_add_target(
     NAME GridMate STATIC
@@ -41,7 +41,7 @@ ly_add_source_properties(
 ################################################################################
 if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
     
-    ly_get_list_relative_pal_filename(pal_test_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME})
+    o3de_pal_dir(pal_test_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
     ly_add_target(
         NAME GridMate.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
         NAMESPACE AZ

+ 1 - 1
Code/LauncherUnified/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 include(${pal_dir}/LauncherUnified_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 

+ 1 - 1
Code/LauncherUnified/launcher_generator.cmake

@@ -201,7 +201,7 @@ function(ly_delayed_generate_static_modules_inl)
 
             foreach(game_gem_dependency ${all_game_gem_dependencies})
                 # Sometimes, a gem's Client variant may be an interface library
-                # which dependes on multiple gem targets. The interface libraries
+                # which depends on multiple gem targets. The interface libraries
                 # should be skipped; the real dependencies of the interface will be processed
                 if(TARGET ${game_gem_dependency})
                     get_target_property(target_type ${game_gem_dependency} TYPE)

+ 1 - 1
Code/Legacy/CryCommon/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 ly_add_target(
     NAME CryCommon STATIC

+ 1 - 1
Code/Legacy/CrySystem/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 add_subdirectory(XML)
 

+ 2 - 2
Code/Tools/AWSNativeSDKInit/CMakeLists.txt

@@ -6,14 +6,14 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/source/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 ly_add_target(
     NAME AWSNativeSDKInit STATIC
     NAMESPACE AZ
     FILES_CMAKE
         aws_native_sdk_init_files.cmake
-        ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+        ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
     INCLUDE_DIRECTORIES
         PUBLIC
             include

+ 1 - 1
Code/Tools/AssetProcessor/AssetBuilderSDK/CMakeLists.txt

@@ -11,7 +11,7 @@ ly_get_pal_tool_dirs(pal_tool_dirs ${CMAKE_CURRENT_LIST_DIR}/AssetBuilderSDK/Pla
 set(pal_files "")
 foreach(enabled_platform ${LY_PAL_TOOLS_ENABLED})
     string(TOLOWER ${enabled_platform} enabled_platform_lowercase)
-    ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/AssetBuilderSDK/Platform/${enabled_platform})
+    o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/AssetBuilderSDK/Platform/${enabled_platform} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
     list(APPEND pal_files ${pal_dir}/assetbuildersdk_${enabled_platform_lowercase}_files.cmake)
 endforeach()
 

+ 1 - 1
Code/Tools/AzTestRunner/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 include(${pal_dir}/platform_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 

+ 1 - 1
Code/Tools/CrashHandler/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 

+ 3 - 1
Code/Tools/LuaIDE/CMakeLists.txt

@@ -10,6 +10,8 @@ if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
+
 ly_add_target(
     NAME LuaIDE APPLICATION
     NAMESPACE AZ
@@ -18,7 +20,7 @@ ly_add_target(
     AUTORCC
     FILES_CMAKE
         lua_ide_files.cmake
-        Platform/${PAL_PLATFORM_NAME}/lua_ide_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+        ${pal_dir}/lua_ide_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
     INCLUDE_DIRECTORIES
         PRIVATE
             .

+ 1 - 1
Code/Tools/ProjectManager/Source/PythonBindings.cpp

@@ -1221,7 +1221,7 @@ namespace O3DE::ProjectManager
         auto result = ExecuteWithLockErrorHandling(
             [&]
             {
-                for (auto repoUri : m_manifest.attr("get_repos")())
+                for (auto repoUri : m_manifest.attr("get_manifest_repos")())
                 {
                     gemRepos.push_back(GetGemRepoInfo(repoUri));
                 }

+ 1 - 1
Code/Tools/RemoteConsole/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 ly_add_target(
     NAME RemoteConsoleCore STATIC

+ 1 - 1
Code/Tools/SceneAPI/SceneData/CMakeLists.txt

@@ -10,7 +10,7 @@ if (NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
 ly_add_target(
     NAME SceneData SHARED

+ 2 - 2
Code/Tools/TestImpactFramework/CMakeLists.txt

@@ -6,9 +6,9 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
 
-include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
+include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 
 if(PAL_TRAIT_TEST_IMPACT_FRAMEWORK_SUPPORTED)
     add_subdirectory(Runtime)

+ 2 - 2
Code/Tools/TestImpactFramework/Runtime/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
+set(common_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
 
 ly_add_target(
     NAME TestImpact.Runtime.Static STATIC

+ 4 - 0
Gems/AWSClientAuth/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 1 - 1
Gems/AWSClientAuth/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME AWSClientAuth.Static STATIC

+ 3 - 1
Gems/AWSClientAuth/gem.json

@@ -3,7 +3,8 @@
     "display_name": "AWS Client Authorization",
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
-    "origin": "Amazon Web Services, Inc.",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "AWS Client Auth provides client authentication and AWS authorization solution.",
     "canonical_tags": [
@@ -15,6 +16,7 @@
         "SDK"
     ],
     "icon_path": "preview.png",
+    "requirements": "",
     "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/",
     "dependencies": [
         "AWSCore",

+ 4 - 0
Gems/AWSCore/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 2 - 2
Gems/AWSCore/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME AWSCore.Static STATIC
@@ -61,7 +61,7 @@ ly_create_alias(
 
 if (PAL_TRAIT_BUILD_HOST_TOOLS)
 
-    include(${CMAKE_CURRENT_SOURCE_DIR}/Platform/${PAL_PLATFORM_NAME}/PAL_traits_editor_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
+    include(${pal_dir}/PAL_traits_editor_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 
     ly_add_target(
         NAME AWSCore.Editor.Static STATIC

+ 6 - 2
Gems/AWSCore/gem.json

@@ -3,7 +3,8 @@
     "display_name": "AWS Core",
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
-    "origin": "Amazon Web Services, Inc.",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "The AWS Core Gem provides basic shared AWS functionality such as AWS SDK initialization and client configuration, and is automatically added when selecting any AWS feature Gem.",
     "canonical_tags": [
@@ -15,5 +16,8 @@
         "SDK"
     ],
     "icon_path": "preview.png",
-    "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/"
+    "requirements": "",
+    "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/",
+    "dependencies": [
+    ]
 }

+ 3 - 2
Gems/AWSGameLift/gem.json

@@ -3,7 +3,8 @@
     "display_name": "AWS GameLift",
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
-    "origin": "Amazon Web Services, Inc.",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "The AWS GameLift Gem provides a framework to extend O3DE networking layer to work with GameLift resources via GameLift server and client SDK.",
     "canonical_tags": [
@@ -12,7 +13,7 @@
     "user_tags": [
         "AWS",
         "Framework",
-        "Network",
+        "Network",
         "SDK"
     ],
     "icon_path": "preview.png",

+ 3 - 1
Gems/AWSMetrics/gem.json

@@ -3,7 +3,8 @@
     "display_name": "AWS Metrics",
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
-    "origin": "Amazon Web Services, Inc.",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "The AWS Metrics Gem provides a solution for AWS metrics submission and analytics.",
     "canonical_tags": [
@@ -15,6 +16,7 @@
         "SDK"
     ],
     "icon_path": "preview.png",
+    "requirements": "",
     "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/",
     "dependencies": [
         "AWSCore"

+ 4 - 0
Gems/Achievements/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 3 - 3
Gems/Achievements/Code/CMakeLists.txt

@@ -6,16 +6,16 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_SOURCE_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME Achievements.Static STATIC
     NAMESPACE Gem
     PLATFORM_INCLUDE_FILES
-        ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
+        ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
     FILES_CMAKE
         achievements_files.cmake
-        ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
+        ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
     INCLUDE_DIRECTORIES
         PUBLIC
             Include

+ 1 - 0
Gems/Achievements/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "The Achievements Gem provides a target platform agnostic interface for retrieving achievement details and unlocking achievements.",
     "canonical_tags": [

+ 1 - 0
Gems/AssetValidation/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "The Asset Validation Gem provides seed-related commands to ensure assets have valid seeds for asset bundling.",
     "canonical_tags": [

+ 0 - 10
Gems/Atom/Asset/CMakeLists.txt

@@ -1,10 +0,0 @@
-#
-# 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
-#
-#
-
-add_subdirectory(ImageProcessingAtom)
-add_subdirectory(Shader)

+ 4 - 0
Gems/Atom/Asset/ImageProcessingAtom/CMakeLists.txt

@@ -7,4 +7,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 3 - 3
Gems/Atom/Asset/ImageProcessingAtom/Code/CMakeLists.txt

@@ -26,15 +26,15 @@ set(pal_tools_include_dirs)
 foreach(enabled_platform ${LY_PAL_TOOLS_ENABLED})
     string(TOLOWER ${enabled_platform} enabled_platform_lowercase)
 
-    ly_get_list_relative_pal_filename(pal_tools_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${enabled_platform})
+    o3de_pal_dir(pal_tools_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${enabled_platform} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
     list(APPEND pal_tools_include_dirs ${pal_tools_source_dir})
 
     list(APPEND platform_tools_files ${pal_tools_source_dir}/pal_tools_${enabled_platform_lowercase}.cmake)
     list(APPEND pal_tools_include_files ${pal_tools_source_dir}/pal_tools_${enabled_platform_lowercase}_files.cmake)
 endforeach()
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+set(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
 
 ly_add_target(
     NAME ImageProcessingAtom.Editor.Static STATIC

+ 2 - 0
Gems/Atom/Asset/ImageProcessingAtom/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RPI",
         "Atom_RHI",

+ 4 - 0
Gems/Atom/Asset/Shader/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 3 - 3
Gems/Atom/Asset/Shader/Code/CMakeLists.txt

@@ -10,8 +10,8 @@ if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+set(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
 
 include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) #for PAL_TRAIT_BUILD_ATOM_ASSET_SHADER_SUPPORTED
 
@@ -71,7 +71,7 @@ ly_add_target(
 set(builder_tools_include_files)
 foreach(enabled_platform ${LY_PAL_TOOLS_ENABLED})
     string(TOLOWER ${enabled_platform} enabled_platform_lowercase)
-    ly_get_list_relative_pal_filename(builder_tools_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${enabled_platform})
+    o3de_pal_dir(builder_tools_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${enabled_platform} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
     list(APPEND builder_tools_include_files ${builder_tools_source_dir}/platform_builders_${enabled_platform_lowercase}.cmake)
 endforeach()
 

+ 6 - 2
Gems/Atom/Asset/Shader/gem.json

@@ -4,13 +4,17 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
-    "summary": "",
+    "summary": "Atom Shader Builder",
     "canonical_tags": [
         "Gem"
     ],
-    "user_tags": [],
+    "user_tags": [
+        "AtomShader"
+    ],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RHI",
         "Atom_RPI"

+ 4 - 0
Gems/Atom/Bootstrap/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 1 - 1
Gems/Atom/Bootstrap/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME Atom_Bootstrap.Headers HEADERONLY

+ 2 - 0
Gems/Atom/Bootstrap/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RPI"
     ]

+ 4 - 6
Gems/Atom/CMakeLists.txt

@@ -6,12 +6,10 @@
 #
 #
 
-add_subdirectory(Asset)
-add_subdirectory(Bootstrap)
-add_subdirectory(Component)
-add_subdirectory(Feature)
-add_subdirectory(RHI)
-add_subdirectory(RPI)
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Tools)
 add_subdirectory(Utils)
 

+ 0 - 9
Gems/Atom/Component/CMakeLists.txt

@@ -1,9 +0,0 @@
-#
-# 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
-#
-#
-
-add_subdirectory(DebugCamera)

+ 4 - 0
Gems/Atom/Component/DebugCamera/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 2 - 0
Gems/Atom/Component/DebugCamera/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RPI"
     ]

+ 0 - 9
Gems/Atom/Feature/CMakeLists.txt

@@ -1,9 +0,0 @@
-#
-# 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
-#
-#
-
-add_subdirectory(Common)

+ 4 - 0
Gems/Atom/Feature/Common/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 2 - 2
Gems/Atom/Feature/Common/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+set(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
 
 ly_add_target(
     NAME Atom_Feature_Common.Static STATIC

+ 2 - 0
Gems/Atom/Feature/Common/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RPI",
         "Atom",

+ 4 - 4
Gems/Atom/RHI/CMakeLists.txt

@@ -6,10 +6,10 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 ly_add_external_target_path(${CMAKE_CURRENT_LIST_DIR}/3rdParty)
 
 add_subdirectory(Code)
-add_subdirectory(DX12)
-add_subdirectory(Metal)
-add_subdirectory(Vulkan)
-add_subdirectory(Null)

+ 2 - 2
Gems/Atom/RHI/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_dir}/AtomRHITests_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 

+ 4 - 0
Gems/Atom/RHI/DX12/CMakeLists.txt

@@ -6,6 +6,10 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 ly_add_external_target_path(${CMAKE_CURRENT_LIST_DIR}/3rdParty)
 
 add_subdirectory(Code)

+ 3 - 3
Gems/Atom/RHI/DX12/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_RHI_DX12_SUPPORTED
 
@@ -23,7 +23,7 @@ set(pal_builder_tools_files)
 set(pal_builder_tools_includes)
 foreach(enabled_platform ${LY_PAL_TOOLS_ENABLED})
     string(TOLOWER ${enabled_platform} enabled_platform_lowercase)
-    ly_get_list_relative_pal_filename(pal_builder_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${enabled_platform})
+    o3de_pal_dir(pal_builder_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${enabled_platform} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
     list(APPEND pal_builder_tools_includes ${pal_builder_source_dir})
     list(APPEND pal_builder_tools_files ${pal_builder_source_dir}/platform_builders_${enabled_platform_lowercase}_tools_files.cmake)
 endforeach()

+ 2 - 0
Gems/Atom/RHI/DX12/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RHI"
     ]

+ 4 - 0
Gems/Atom/RHI/Metal/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 2 - 2
Gems/Atom/RHI/Metal/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_source_dir}/PAL2_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
 

+ 2 - 0
Gems/Atom/RHI/Metal/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RHI"
     ]

+ 4 - 0
Gems/Atom/RHI/Null/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 2 - 2
Gems/Atom/RHI/Null/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 
 ly_add_target(

+ 2 - 0
Gems/Atom/RHI/Null/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RHI"
     ]

+ 4 - 0
Gems/Atom/RHI/Vulkan/CMakeLists.txt

@@ -6,6 +6,10 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 ly_add_external_target_path(${CMAKE_CURRENT_LIST_DIR}/3rdParty)
 
 add_subdirectory(Code)

+ 2 - 2
Gems/Atom/RHI/Vulkan/Code/CMakeLists.txt

@@ -6,8 +6,8 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME})
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_RHI_VULKAN_SUPPORTED / PAL_TRAIT_ATOM_RHI_VULKAN_TARGETS_ALREADY_DEFINED
 

+ 2 - 0
Gems/Atom/RHI/Vulkan/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RHI"
     ]

+ 7 - 0
Gems/Atom/RHI/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,12 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "external_subdirectories": [
+        "DX12",
+        "Metal",
+        "Null",
+        "Vulkan"
+    ],
     "dependencies": [
         "Atom_RHI_DX12",
         "Atom_RHI_Metal",

+ 4 - 0
Gems/Atom/RPI/CMakeLists.txt

@@ -6,6 +6,10 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)
 add_subdirectory(Tools)
 

+ 3 - 3
Gems/Atom/RPI/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 #for PAL_TRAIT_BUILD_ATOM_RPI_ASSETS_SUPPORTED and PAL_TRAIT_BUILD_ATOM_RPI_MASKED_OCCLUSION_CULLING_SUPPORTED
 include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
@@ -176,8 +176,8 @@ endif()
 if(PAL_TRAIT_BUILD_HOST_TOOLS)
 
 
-    ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
-    ly_get_list_relative_pal_filename(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
+    o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+    set(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
 
     if(NOT PAL_TRAIT_BUILD_ATOM_RPI_ASSETS_SUPPORTED)
 

+ 3 - 1
Gems/Atom/RPI/gem.json

@@ -1,16 +1,18 @@
 {
     "gem_name": "Atom_RPI",
     "display_name": "Atom API",
-    "summary": "",
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
+    "summary": "",
     "canonical_tags": [
         "Gem"
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RHI"
     ]

+ 4 - 0
Gems/Atom/Tools/AtomToolsFramework/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 1 - 1
Gems/Atom/Tools/AtomToolsFramework/Code/CMakeLists.txt

@@ -10,7 +10,7 @@ if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME AtomToolsFramework.Static STATIC

+ 2 - 0
Gems/Atom/Tools/AtomToolsFramework/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RPI",
         "Atom_RHI",

+ 0 - 2
Gems/Atom/Tools/CMakeLists.txt

@@ -6,6 +6,4 @@
 #
 #
 
-add_subdirectory(AtomToolsFramework)
-add_subdirectory(MaterialEditor)
 add_subdirectory(ShaderManagementConsole)

+ 4 - 0
Gems/Atom/Tools/MaterialEditor/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 1 - 1
Gems/Atom/Tools/MaterialEditor/Code/CMakeLists.txt

@@ -10,7 +10,7 @@ if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_MATERIAL_EDITOR_APPLICATION_SUPPORTED
 

+ 2 - 0
Gems/Atom/Tools/MaterialEditor/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Tool",
     "summary": "Editor for creating, modifying, and previewing materials",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "AtomToolsFramework",
         "Atom_RPI",

+ 1 - 1
Gems/Atom/Tools/ShaderManagementConsole/Code/CMakeLists.txt

@@ -10,7 +10,7 @@ if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
     return()
 endif()
 
-ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_SHADER_MANAGEMENT_CONSOLE_APPLICATION_SUPPORTED
 

+ 3 - 2
Gems/Atom/Utils/Code/CMakeLists.txt

@@ -6,8 +6,6 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
-
 ly_add_target(
     NAME Atom_Utils.Static STATIC
     NAMESPACE Gem
@@ -52,6 +50,9 @@ endif()
 # Tests
 ################################################################################
 if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
+
+    o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
+
     ly_add_target(
         NAME Atom_Utils.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
         NAMESPACE Gem

+ 12 - 0
Gems/Atom/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "The Atom Renderer Gem provides Atom Renderer and its associated tools (such as Material Editor), utilites, libraries, and interfaces.",
     "canonical_tags": [
@@ -15,6 +16,17 @@
     ],
     "requirements": "",
     "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom/",
+    "external_subdirectories": [
+        "Asset/ImageProcessingAtom",
+        "Asset/Shader",
+        "Bootstrap",
+        "Component/DebugCamera",
+        "Feature/Common",
+        "RHI",
+        "RPI",
+        "Tools/AtomToolsFramework",
+        "Tools/MaterialEditor"
+    ],
     "dependencies": [
         "Atom_Feature_Common",
         "AtomShader",

+ 0 - 2
Gems/AtomContent/CMakeLists.txt

@@ -5,8 +5,6 @@
 # SPDX-License-Identifier: Apache-2.0 OR MIT
 #
 #
-add_subdirectory(ReferenceMaterials)
-add_subdirectory(Sponza)
 
 if(PAL_TRAIT_BUILD_HOST_TOOLS)
     ly_create_alias(NAME AtomContent.Builders NAMESPACE Gem TARGETS Gem::AtomContent_ReferenceMaterials.Builders Gem::AtomContent_Sponza.Builders)

+ 7 - 3
Gems/AtomContent/ReferenceMaterials/gem.json

@@ -2,7 +2,9 @@
     "gem_name": "ReferenceMaterials",
     "display_name": "PBR Reference Materials",
     "license": "Code, text, data files: Apache-2.0 Or MIT, assets/content/images: CC BY 4.0",
-    "origin": "https://github.com/aws-lumberyard-dev/o3de.git",
+    "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
+    "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Asset",
     "summary": "Atom Asset Gem with a library of reference materials for StandardPBR (and others in the future)",
     "canonical_tags": [
@@ -14,6 +16,8 @@
         "Materials"
     ],
     "icon_path": "preview.png",
-    "dependencies": [],
-    "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt"
+    "requirements": "",
+    "documentation_url": "",
+    "dependencies": [
+    ]
 }

+ 4 - 1
Gems/AtomContent/Sponza/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Asset",
     "summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)",
     "canonical_tags": [
@@ -13,5 +14,7 @@
         "Assets"
     ],
     "requirements": "",
-    "dependencies": []
+    "documentation_url": "",
+    "dependencies": [
+    ]
 }

+ 7 - 2
Gems/AtomContent/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Asset",
     "summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the <a href='https://renderman.pixar.com/look-development-studio'>Pixar Look Development Studio</a>.",
     "canonical_tags": [
@@ -17,7 +18,11 @@
     "requirements": "",
     "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom-content/",
     "dependencies": [
-        "ReferenceMaterials",
-        "Sponza"
+        "Sponza",
+        "ReferenceMaterials"
+    ],
+    "external_subdirectories": [
+        "Sponza",
+        "ReferenceMaterials"
     ]
 }

+ 4 - 0
Gems/AtomLyIntegration/AtomBridge/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

+ 1 - 1
Gems/AtomLyIntegration/AtomBridge/Code/CMakeLists.txt

@@ -6,7 +6,7 @@
 #
 #
 
-ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
 
 ly_add_target(
     NAME Atom_AtomBridge.Static STATIC

+ 2 - 0
Gems/AtomLyIntegration/AtomBridge/gem.json

@@ -4,6 +4,7 @@
     "license": "Apache-2.0 Or MIT",
     "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
     "origin": "Open 3D Engine - o3de.org",
+    "origin_url": "https://github.com/o3de/o3de",
     "type": "Code",
     "summary": "",
     "canonical_tags": [
@@ -11,6 +12,7 @@
     ],
     "user_tags": [],
     "requirements": "",
+    "documentation_url": "",
     "dependencies": [
         "Atom_RPI",
         "Atom_Bootstrap",

+ 4 - 0
Gems/AtomLyIntegration/AtomFont/CMakeLists.txt

@@ -6,4 +6,8 @@
 #
 #
 
+set(gem_path ${CMAKE_CURRENT_LIST_DIR})
+set(gem_json ${gem_path}/gem.json)
+o3de_restricted_path(${gem_json} gem_restricted_path gem_parent_relative_path)
+
 add_subdirectory(Code)

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff