diff --git a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake b/Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake similarity index 55% rename from Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake rename to Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake index 97090b9144..7b7c312169 100644 --- a/Gems/Atom/RHI/Code/Platform/Mac/renderdoc_support_mac.cmake +++ b/Gems/Atom/RHI/3rdParty/Findrenderdoc.cmake @@ -6,4 +6,10 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +ly_add_external_target( + NAME renderdoc + 3RDPARTY_ROOT_DIRECTORY "${LY_RENDERDOC_PATH}" + VERSION + INCLUDE_DIRECTORIES . + COMPILE_DEFINITIONS USE_RENDER_DOC +) diff --git a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake b/Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake similarity index 76% rename from Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake rename to Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake index 97090b9144..a74d250901 100644 --- a/Gems/Atom/RHI/Code/Platform/iOS/renderdoc_support_ios.cmake +++ b/Gems/Atom/RHI/3rdParty/Platform/Linux/renderdoc_linux.cmake @@ -6,4 +6,4 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +set(RENDERDOC_RUNTIME_DEPENDENCIES "${BASE_PATH}/librenderdoc.so") diff --git a/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake b/Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake similarity index 76% rename from Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake rename to Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake index 97090b9144..559863ca07 100644 --- a/Gems/Atom/RHI/Code/Platform/Android/renderdoc_support_android.cmake +++ b/Gems/Atom/RHI/3rdParty/Platform/Windows/renderdoc_windows.cmake @@ -6,4 +6,4 @@ # # -set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +set(RENDERDOC_RUNTIME_DEPENDENCIES "${BASE_PATH}/renderdoc.dll") diff --git a/Gems/Atom/RHI/CMakeLists.txt b/Gems/Atom/RHI/CMakeLists.txt index 28a3e1ad7d..074f6acfd7 100644 --- a/Gems/Atom/RHI/CMakeLists.txt +++ b/Gems/Atom/RHI/CMakeLists.txt @@ -6,6 +6,8 @@ # # +ly_add_external_target_path(${CMAKE_CURRENT_LIST_DIR}/3rdParty) + add_subdirectory(Code) add_subdirectory(DX12) add_subdirectory(Metal) diff --git a/Gems/Atom/RHI/Code/CMakeLists.txt b/Gems/Atom/RHI/Code/CMakeLists.txt index a70786a9e0..879fc7d2ce 100644 --- a/Gems/Atom/RHI/Code/CMakeLists.txt +++ b/Gems/Atom/RHI/Code/CMakeLists.txt @@ -11,15 +11,10 @@ ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Sourc include(${pal_dir}/AtomRHITests_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_support_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) if(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED) set(LY_RENDERDOC_ENABLED OFF CACHE BOOL "Enable RenderDoc integration. Use LY_RENDERDOC_PATH to specific the path to RenderDoc.") if(LY_RENDERDOC_ENABLED) - include(${CMAKE_CURRENT_SOURCE_DIR}/${pal_dir}/renderdoc_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) - if(PAL_TRAIT_BUILD_RENDERDOC_ENABLED) - message(STATUS "Renderdoc found, adding as runtime dependency") - set(RENDERDOC_DEFINE USE_RENDERDOC) - endif() + set(RENDERDOC_DEPENDENCY 3rdParty::renderdoc) endif() endif() @@ -58,11 +53,11 @@ ly_add_target( AZ::AzCore AZ::AzFramework Gem::Atom_RHI.Reflect + PUBLIC + ${RENDERDOC_DEPENDENCY} COMPILE_DEFINITIONS PUBLIC ${RENDERDOC_DEFINE} - RUNTIME_DEPENDENCIES - ${RENDERDOC_RUNTIME_DEPENDENCIES} ) ly_add_target( diff --git a/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake b/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake index 1aeb95c7b1..5b77ec1593 100644 --- a/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake +++ b/Gems/Atom/RHI/Code/Platform/Android/AtomRHITests_traits_android.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake index 64d44f1648..5379a47e49 100644 --- a/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake +++ b/Gems/Atom/RHI/Code/Platform/Linux/AtomRHITests_traits_linux.cmake @@ -8,3 +8,9 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() +set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake deleted file mode 100644 index aae720eb0f..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_linux.cmake +++ /dev/null @@ -1,18 +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 -# -# - -set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) -set(LY_RENDERDOC_PATH "/usr/local" CACHE PATH "Path to RenderDoc.") - -# Normalize file path -file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - -if(EXISTS "${LY_RENDERDOC_PATH}/librenderdoc.so") - set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/librenderdoc.so") - set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake b/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake deleted file mode 100644 index 449593c791..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Linux/renderdoc_support_linux.cmake +++ /dev/null @@ -1,14 +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 -# -# - -# Prevent bundling the renderdoc dll with a packaged title -if(LY_MONOLITHIC_GAME) - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) -else() - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake b/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake index a5f701c3cf..419331db3b 100644 --- a/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake +++ b/Gems/Atom/RHI/Code/Platform/Mac/AtomRHITests_traits_mac.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST TRUE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) diff --git a/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake index a5f701c3cf..78a4c4c069 100644 --- a/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake +++ b/Gems/Atom/RHI/Code/Platform/Windows/AtomRHITests_traits_windows.cmake @@ -8,3 +8,9 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST TRUE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT TRUE) +if(LY_MONOLITHIC_GAME) + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) +else() + set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) +endif() +set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake deleted file mode 100644 index 449593c791..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_support_windows.cmake +++ /dev/null @@ -1,14 +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 -# -# - -# Prevent bundling the renderdoc dll with a packaged title -if(LY_MONOLITHIC_GAME) - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE) -else() - set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake b/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake deleted file mode 100644 index 2d3c2c039f..0000000000 --- a/Gems/Atom/RHI/Code/Platform/Windows/renderdoc_windows.cmake +++ /dev/null @@ -1,18 +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 -# -# - -set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED FALSE) -set(LY_RENDERDOC_PATH "$ENV{PROGRAMFILES}/RenderDoc" CACHE PATH "Path to RenderDoc.") - -# Normalize file path -file(TO_CMAKE_PATH "${LY_RENDERDOC_PATH}" LY_RENDERDOC_PATH) - -if(EXISTS "${LY_RENDERDOC_PATH}/renderdoc.dll") - set(RENDERDOC_RUNTIME_DEPENDENCIES "${RENDERDOC_PATH}/renderdoc.dll") - set(PAL_TRAIT_BUILD_RENDERDOC_ENABLED TRUE) -endif() diff --git a/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake b/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake index 1aeb95c7b1..5b77ec1593 100644 --- a/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake +++ b/Gems/Atom/RHI/Code/Platform/iOS/AtomRHITests_traits_ios.cmake @@ -8,3 +8,4 @@ set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_TEST FALSE) set(ATOM_RHI_TRAIT_BUILD_SUPPORTS_EDIT FALSE) +set(PAL_TRAIT_BUILD_RENDERDOC_SUPPORTED FALSE)