Files
bosnichd 141cb55903 Fix issue #4045 (#4053)
* Remove unused Vulkan ShaderDescriptor class.

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

* Add missing dependency on Gem::Atom_RHI.Public

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

* Revert changes made to Gems/Atom/RHI/Vulkan/Code/* in https://github.com/o3de/o3de/pull/4021, and instead just check a trait to determine whether the RHI Vulkan targets have been defined else where. Gems/Atom/RHI/Vulkan/Code/CMakeLists.txt maybe needs to be revisited at some point, but my changes are causing numerous issues on mac so this just restores the prior behavior for all platforms while also providing a mechanism for any platform to simply define exactly what Vulkan related targets it needs independently.

Signed-off-by: bosnichd <bosnichd@amazon.com>
2021-09-10 13:12:45 -06:00

201 lines
5.9 KiB
CMake

#
# 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
#
#
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})
include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_RHI_VULKAN_SUPPORTED / PAL_TRAIT_ATOM_RHI_VULKAN_TARGETS_ALREADY_DEFINED
if(PAL_TRAIT_ATOM_RHI_VULKAN_TARGETS_ALREADY_DEFINED)
return() # Vulkan targets already defined in PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
endif()
if(NOT PAL_TRAIT_ATOM_RHI_VULKAN_SUPPORTED)
# Create stub modules. Once we support gem loading configuration, we can remove this stubbed targets
ly_add_target(
NAME Atom_RHI_Vulkan.Private ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
NAMESPACE Gem
FILES_CMAKE
atom_rhi_vulkan_stub_module.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
Include/Atom/RHI.Loader/Glad
BUILD_DEPENDENCIES
PRIVATE
AZ::AzCore
Gem::Atom_RHI.Reflect
3rdParty::glad_vulkan
)
if(PAL_TRAIT_BUILD_HOST_TOOLS)
ly_add_target(
NAME Atom_RHI_Vulkan.Builders GEM_MODULE
NAMESPACE Gem
FILES_CMAKE
${pal_source_dir}/platform_builders_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
${pal_include_dir}/platform_builders_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
atom_rhi_vulkan_reflect_common_files.cmake
atom_rhi_vulkan_glad_files.cmake
atom_rhi_vulkan_builders_common_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Include
${pal_include_dir}
Include/Atom/RHI.Loader/Glad
Source
${pal_source_dir}
BUILD_DEPENDENCIES
PRIVATE
AZ::AzCore
AZ::AssetBuilderSDK
Gem::Atom_RHI.Edit
Gem::Atom_RHI.Reflect
3rdParty::glad_vulkan
)
endif()
return() # Do not create the rest of the targets
endif()
ly_add_target(
NAME Atom_RHI_Vulkan.Reflect STATIC
NAMESPACE Gem
FILES_CMAKE
atom_rhi_vulkan_reflect_common_files.cmake
${pal_source_dir}/platform_reflect_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
${pal_source_dir}
Include/Atom/RHI.Loader/Glad
PUBLIC
Include
${pal_include_dir}
BUILD_DEPENDENCIES
PRIVATE
AZ::AzCore
Gem::Atom_RHI.Reflect
3rdParty::glad_vulkan
)
ly_add_target(
NAME Atom_RHI_Vulkan.Private.Static STATIC
NAMESPACE Gem
FILES_CMAKE
atom_rhi_vulkan_private_common_files.cmake
${pal_source_dir}/platform_private_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
${pal_include_dir}/platform_private_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
PLATFORM_INCLUDE_FILES
${pal_source_dir}/platform_private_static_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
${pal_source_dir}
PUBLIC
Include
${pal_include_dir}
BUILD_DEPENDENCIES
PUBLIC
AZ::AzCore
AZ::AzFramework
Gem::Atom_RHI.Reflect
Gem::Atom_RHI_Vulkan.Reflect
Gem::Atom_RHI_Vulkan.Glad.Static
3rdParty::glad_vulkan
)
ly_add_target(
NAME Atom_RHI_Vulkan.Private ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
NAMESPACE Gem
FILES_CMAKE
atom_rhi_vulkan_private_common_shared_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
${pal_source_dir}
PUBLIC
Include
BUILD_DEPENDENCIES
PRIVATE
Gem::Atom_RHI_Vulkan.Private.Static
Gem::Atom_RHI.Public
)
ly_add_target(
NAME Atom_RHI_Vulkan.Glad.Static STATIC
NAMESPACE Gem
FILES_CMAKE
atom_rhi_vulkan_glad_files.cmake
${pal_source_dir}/platform_glad_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
${pal_source_dir}
PUBLIC
Include/Atom/RHI.Loader/Glad
${pal_include_dir}
BUILD_DEPENDENCIES
PRIVATE
AZ::AzCore
Gem::Atom_RHI_Vulkan.Reflect
PUBLIC
Gem::Atom_RHI.Reflect
3rdParty::glad_vulkan
)
if(PAL_TRAIT_BUILD_HOST_TOOLS)
ly_add_target(
NAME Atom_RHI_Vulkan.Builders.Static STATIC
NAMESPACE Gem
FILES_CMAKE
atom_rhi_vulkan_builders_common_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
${pal_source_dir}
PUBLIC
Include
BUILD_DEPENDENCIES
PRIVATE
AZ::AzCore
AZ::AssetBuilderSDK
Gem::Atom_RHI.Reflect
Gem::Atom_RHI_Vulkan.Reflect
)
ly_add_target(
NAME Atom_RHI_Vulkan.Builders GEM_MODULE
NAMESPACE Gem
FILES_CMAKE
${pal_source_dir}/platform_builders_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Source
${pal_source_dir}
PUBLIC
Include
BUILD_DEPENDENCIES
PRIVATE
AZ::AzCore
Gem::Atom_RHI.Reflect
Gem::Atom_RHI.Public
Gem::Atom_RHI_Vulkan.Reflect
Gem::Atom_RHI_Vulkan.Builders.Static
Gem::Atom_RHI.Edit
)
endif()