CMakeLists.txt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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/XR/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_XR_TARGETS_ALREADY_DEFINED)
  12. return() # XR targets already defined in PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  13. endif()
  14. if(NOT PAL_TRAIT_XR_SUPPORTED)
  15. # Create stub modules. Once we support gem loading configuration, we can remove this stubbed targets
  16. ly_add_target(
  17. NAME XR ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  18. NAMESPACE Gem
  19. FILES_CMAKE
  20. xr_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 XR.Static STATIC
  32. NAMESPACE Gem
  33. FILES_CMAKE
  34. xr_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. AZ::AtomCore
  51. Gem::Atom_RPI.Public
  52. )
  53. ly_add_target(
  54. NAME XR ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  55. NAMESPACE Gem
  56. FILES_CMAKE
  57. xr_private_common_shared_files.cmake
  58. INCLUDE_DIRECTORIES
  59. PRIVATE
  60. Source
  61. ${pal_source_dir}
  62. PUBLIC
  63. Include
  64. ${pal_include_dir}
  65. BUILD_DEPENDENCIES
  66. PRIVATE
  67. Gem::XR.Static
  68. )
  69. # use the XR module in clients and tools:
  70. ly_create_alias(NAME XR.Clients NAMESPACE Gem TARGETS Gem::XR)
  71. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  72. ly_create_alias(NAME XR.Tools NAMESPACE Gem TARGETS Gem::XR)
  73. endif()
  74. ################################################################################
  75. # Tests
  76. ################################################################################
  77. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  78. ly_add_target(
  79. NAME XR.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  80. NAMESPACE Gem
  81. FILES_CMAKE
  82. xr_tests_files.cmake
  83. ${pal_source_dir}/platform_test_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  84. INCLUDE_DIRECTORIES
  85. PRIVATE
  86. Tests
  87. Source
  88. ${pal_source_dir}
  89. BUILD_DEPENDENCIES
  90. PRIVATE
  91. AZ::AzTest
  92. Gem::XR.Static
  93. )
  94. ly_add_googletest(
  95. NAME Gem::XR.Tests
  96. )
  97. endif()