2
0

CMakeLists.txt 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #
  2. # Copyright (c) Contributors to the Open 3D Engine Project.
  3. # For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. #
  5. # SPDX-License-Identifier: Apache-2.0 OR MIT
  6. #
  7. #
  8. o3de_pal_dir(pal_include_dir ${CMAKE_CURRENT_LIST_DIR}/Include/OpenXRVk/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
  9. o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
  10. include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
  11. if(PAL_TRAIT_OPENXRVK_TARGETS_ALREADY_DEFINED)
  12. return() # OpenXRVk targets already defined in PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  13. endif()
  14. if(NOT PAL_TRAIT_OPENXRVK_SUPPORTED)
  15. # Create stub modules. Once we support gem loading configuration, we can remove this stubbed targets
  16. ly_add_target(
  17. NAME OpenXRVk ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  18. NAMESPACE Gem
  19. FILES_CMAKE
  20. openxrvk_stub_module.cmake
  21. INCLUDE_DIRECTORIES
  22. PRIVATE
  23. Source
  24. BUILD_DEPENDENCIES
  25. PRIVATE
  26. AZ::AzCore
  27. )
  28. return() # Do not create the rest of the targets
  29. endif()
  30. ly_add_target(
  31. NAME OpenXRVk.Static STATIC
  32. NAMESPACE Gem
  33. FILES_CMAKE
  34. openxrvk_private_common_files.cmake
  35. ${pal_source_dir}/platform_private_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  36. ${pal_include_dir}/platform_private_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  37. PLATFORM_INCLUDE_FILES
  38. ${pal_source_dir}/platform_private_static_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  39. INCLUDE_DIRECTORIES
  40. PRIVATE
  41. Source
  42. ${pal_source_dir}
  43. PUBLIC
  44. Include
  45. ${pal_include_dir}
  46. BUILD_DEPENDENCIES
  47. PUBLIC
  48. AZ::AzCore
  49. AZ::AzFramework
  50. ${openxr_dependency}
  51. AZ::AtomCore
  52. Gem::Atom_RHI_Vulkan.Reflect
  53. Gem::Atom_RHI_Vulkan.Glad.Static
  54. Gem::XR.Static
  55. )
  56. ly_add_target(
  57. NAME OpenXRVk ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  58. NAMESPACE Gem
  59. FILES_CMAKE
  60. openxrvk_private_common_shared_files.cmake
  61. INCLUDE_DIRECTORIES
  62. PRIVATE
  63. Source
  64. ${pal_source_dir}
  65. PUBLIC
  66. Include
  67. ${pal_include_dir}
  68. BUILD_DEPENDENCIES
  69. PRIVATE
  70. Gem::OpenXRVk.Static
  71. )
  72. # use the OpenXRVk module in clients and tools:
  73. ly_create_alias(NAME OpenXRVk.Clients NAMESPACE Gem TARGETS Gem::OpenXRVk)
  74. ly_create_alias(NAME OpenXRVk.Tools NAMESPACE Gem TARGETS Gem::OpenXRVk)