CMakeLists.txt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
  9. ly_add_target(
  10. NAME Atom_AtomBridge.Static STATIC
  11. NAMESPACE Gem
  12. FILES_CMAKE
  13. atombridge_files.cmake
  14. INCLUDE_DIRECTORIES
  15. PRIVATE
  16. Source
  17. PUBLIC
  18. Include
  19. COMPILE_DEFINITIONS
  20. PRIVATE
  21. ENABLE_ATOM_DEBUG_DISPLAY=1
  22. BUILD_DEPENDENCIES
  23. PUBLIC
  24. AZ::AtomCore
  25. AZ::AzFramework
  26. Gem::Atom_RPI.Public
  27. Gem::Atom_Bootstrap.Headers
  28. Legacy::CryCommon
  29. )
  30. ly_add_target(
  31. NAME Atom_AtomBridge ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  32. NAMESPACE Gem
  33. FILES_CMAKE
  34. atombridge_shared_files.cmake
  35. INCLUDE_DIRECTORIES
  36. PRIVATE
  37. Source
  38. PUBLIC
  39. Include
  40. PLATFORM_INCLUDE_FILES
  41. ${pal_dir}/additional_${PAL_PLATFORM_NAME_LOWERCASE}_runtime_deps.cmake
  42. COMPILE_DEFINITIONS
  43. PRIVATE
  44. ENABLE_ATOM_DEBUG_DISPLAY=1
  45. BUILD_DEPENDENCIES
  46. PRIVATE
  47. Gem::Atom_AtomBridge.Static
  48. RUNTIME_DEPENDENCIES
  49. Gem::Atom_RHI.Private
  50. Gem::Atom_RPI.Private
  51. Gem::Atom_RHI_Null.Private
  52. Gem::Atom_Feature_Common
  53. Gem::Atom_Bootstrap
  54. Gem::Atom_Component_DebugCamera
  55. Gem::AtomImGuiTools
  56. Gem::AtomLyIntegration_CommonFeatures
  57. Gem::EMotionFX_Atom
  58. Gem::ImguiAtom
  59. Gem::AtomFont
  60. Gem::AtomViewportDisplayInfo
  61. )
  62. # Any 'runtime-like' applications should use Gem::Atom_AtomBridge:
  63. ly_create_alias(NAME Atom_AtomBridge.Clients NAMESPACE Gem TARGETS Gem::Atom_AtomBridge)
  64. ly_create_alias(NAME Atom_AtomBridge.Servers NAMESPACE Gem TARGETS Gem::Atom_AtomBridge)
  65. ly_create_alias(NAME Atom_AtomBridge.Unified NAMESPACE Gem TARGETS Gem::Atom_AtomBridge)
  66. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  67. set(additional_tool_deps ${pal_dir}/additional_${PAL_PLATFORM_NAME_LOWERCASE}_tool_deps.cmake)
  68. foreach(pal_tools_platform ${LY_PAL_TOOLS_ENABLED})
  69. string(TOLOWER ${pal_tools_platform} pal_tools_platform_lowercase)
  70. ly_get_list_relative_pal_filename(pal_runtime_dependencies_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${pal_tools_platform})
  71. list(APPEND additional_tool_deps ${pal_runtime_dependencies_source_dir}/additional_${pal_tools_platform_lowercase}_tool_deps.cmake)
  72. endforeach()
  73. ly_add_target(
  74. NAME Atom_AtomBridge.Editor ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  75. NAMESPACE Gem
  76. FILES_CMAKE
  77. atombridge_editor_files.cmake
  78. INCLUDE_DIRECTORIES
  79. PRIVATE
  80. Source
  81. PUBLIC
  82. Include
  83. PLATFORM_INCLUDE_FILES
  84. ${additional_tool_deps}
  85. COMPILE_DEFINITIONS
  86. PRIVATE
  87. EDITOR
  88. BUILD_DEPENDENCIES
  89. PRIVATE
  90. AZ::AssetBuilderSDK
  91. Gem::Atom_Utils.Static
  92. Gem::Atom_AtomBridge.Static
  93. RUNTIME_DEPENDENCIES
  94. Gem::Atom_RHI.Private
  95. Gem::Atom_RPI.Builders
  96. Gem::Atom_RPI.Editor
  97. Gem::Atom_RHI_Null.Private
  98. Gem::Atom_RHI_Null.Builders
  99. Gem::Atom_Feature_Common.Builders
  100. Gem::Atom_Feature_Common.Editor
  101. Gem::Atom_Bootstrap
  102. Gem::Atom_Asset_Shader.Builders
  103. Gem::Atom_Component_DebugCamera
  104. Gem::AtomImGuiTools
  105. Gem::AtomLyIntegration_CommonFeatures.Editor
  106. Gem::EMotionFX_Atom.Editor
  107. Gem::ImageProcessingAtom.Editor
  108. Gem::ImguiAtom
  109. Gem::AtomFont
  110. Gem::AtomToolsFramework.Editor
  111. Gem::AtomViewportDisplayInfo
  112. Gem::AtomViewportDisplayIcons.Editor
  113. Gem::MaterialCanvas.Builders
  114. Gem::MaterialEditor.Builders
  115. Gem::PassCanvas.Builders
  116. Gem::ShaderManagementConsole.Builders
  117. )
  118. # Any 'tool' and 'builder' type applications should use Gem::Atom_AtomBridge.Editor:
  119. ly_create_alias(NAME Atom_AtomBridge.Builders NAMESPACE Gem TARGETS Gem::Atom_AtomBridge.Editor)
  120. ly_create_alias(NAME Atom_AtomBridge.Tools NAMESPACE Gem TARGETS Gem::Atom_AtomBridge.Editor)
  121. endif()