CMakeLists.txt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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. ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
  9. ly_get_list_relative_pal_filename(common_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common)
  10. ly_add_target(
  11. NAME Atom_Feature_Common.Static STATIC
  12. NAMESPACE Gem
  13. FILES_CMAKE
  14. atom_feature_common_files.cmake
  15. atom_feature_common_staticlibrary_files.cmake
  16. ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  17. PLATFORM_INCLUDE_FILES
  18. ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  19. ${common_source_dir}/${PAL_TRAIT_COMPILER_ID}/atom_feature_common_${PAL_TRAIT_COMPILER_ID_LOWERCASE}.cmake
  20. INCLUDE_DIRECTORIES
  21. PRIVATE
  22. .
  23. Source
  24. ${pal_source_dir}
  25. PUBLIC
  26. Include
  27. Source
  28. COMPILE_DEFINITIONS
  29. PRIVATE
  30. IMGUI_DISABLE_OBSOLETE_FUNCTIONS
  31. BUILD_DEPENDENCIES
  32. PRIVATE
  33. AZ::AzCore
  34. AZ::AzFramework
  35. PUBLIC
  36. Gem::Atom_RPI.Public
  37. Gem::Atom_Utils.Static
  38. Gem::Atom_Feature_Common.Public
  39. Gem::ImGui.imguilib
  40. #3rdParty::lux_core # AZ_TRAIT_LUXCORE_SUPPORTED is disabled in every platform, Issue #3915 will remove
  41. RUNTIME_DEPENDENCIES
  42. Gem::ImGui.imguilib
  43. )
  44. ly_add_target(
  45. NAME Atom_Feature_Common.Public STATIC
  46. NAMESPACE Gem
  47. FILES_CMAKE
  48. atom_feature_common_public_files.cmake
  49. INCLUDE_DIRECTORIES
  50. PRIVATE
  51. .
  52. Source
  53. ${pal_source_dir}
  54. PUBLIC
  55. Include
  56. 3rdParty/ACES
  57. COMPILE_DEFINITIONS
  58. PRIVATE
  59. IMGUI_DISABLE_OBSOLETE_FUNCTIONS
  60. BUILD_DEPENDENCIES
  61. PRIVATE
  62. AZ::AzCore
  63. AZ::AzFramework
  64. PUBLIC
  65. Gem::Atom_RPI.Public
  66. Gem::Atom_Utils.Static
  67. )
  68. ly_add_target(
  69. NAME Atom_Feature_Common ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  70. NAMESPACE Gem
  71. FILES_CMAKE
  72. atom_feature_common_shared_files.cmake
  73. ../Assets/atom_feature_common_asset_files.cmake
  74. PLATFORM_INCLUDE_FILES
  75. ${pal_source_dir}/runtime_dependencies_clients.cmake
  76. INCLUDE_DIRECTORIES
  77. PRIVATE
  78. Source
  79. ${pal_source_dir}
  80. PUBLIC
  81. Include
  82. BUILD_DEPENDENCIES
  83. PRIVATE
  84. AZ::AzCore
  85. AZ::AzFramework
  86. Gem::Atom_Feature_Common.Static
  87. Gem::Atom_Feature_Common.Public
  88. #3rdParty::lux_core # AZ_TRAIT_LUXCORE_SUPPORTED is disabled in every platform, Issue #3915 will remove
  89. )
  90. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  91. ly_add_target(
  92. NAME Atom_Feature_Common.Editor GEM_MODULE
  93. NAMESPACE Gem
  94. FILES_CMAKE
  95. atom_feature_common_editor_files.cmake
  96. PLATFORM_INCLUDE_FILES
  97. ${pal_source_dir}/runtime_dependencies_tools.cmake
  98. INCLUDE_DIRECTORIES
  99. PRIVATE
  100. .
  101. Source
  102. ${pal_source_dir}
  103. PUBLIC
  104. Include
  105. COMPILE_DEFINITIONS
  106. PRIVATE
  107. ATOM_FEATURE_COMMON_EDITOR
  108. ATOM_FEATURE_CORELIGHTS_EDITOR
  109. BUILD_DEPENDENCIES
  110. PRIVATE
  111. AZ::AzCore
  112. AZ::AzFramework
  113. AZ::AzToolsFramework
  114. AZ::AssetBuilderSDK
  115. AZ::SceneCore
  116. Gem::Atom_RPI.Edit
  117. Gem::Atom_RPI.Public
  118. Gem::Atom_Utils.Static
  119. Gem::Atom_Feature_Common.Static
  120. Gem::Atom_Feature_Common.Public
  121. )
  122. ly_add_target(
  123. NAME Atom_Feature_Common.Builders GEM_MODULE
  124. NAMESPACE Gem
  125. FILES_CMAKE
  126. atom_feature_common_builders_files.cmake
  127. PLATFORM_INCLUDE_FILES
  128. ${pal_source_dir}/runtime_dependencies_tools.cmake
  129. INCLUDE_DIRECTORIES
  130. PRIVATE
  131. Source/Builders
  132. BUILD_DEPENDENCIES
  133. PRIVATE
  134. AZ::AzCore
  135. RUNTIME_DEPENDENCIES
  136. Gem::Atom_RHI.Private
  137. )
  138. endif()
  139. ################################################################################
  140. # Tests
  141. ################################################################################
  142. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  143. ly_add_target(
  144. NAME Atom_Feature_Common.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  145. NAMESPACE Gem
  146. FILES_CMAKE
  147. atom_feature_common_tests_files.cmake
  148. INCLUDE_DIRECTORIES
  149. PRIVATE
  150. Tests
  151. PUBLIC
  152. Mocks
  153. BUILD_DEPENDENCIES
  154. PRIVATE
  155. AZ::AzFramework
  156. AZ::AzTest
  157. Gem::Atom_Feature_Common.Static
  158. Gem::Atom_Feature_Common.Public
  159. )
  160. ly_add_googletest(
  161. NAME Gem::Atom_Feature_Common.Tests
  162. )
  163. endif()