CMakeLists.txt 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} ${gem_restricted_path} ${gem_path} ${gem_parent_relative_path})
  9. set(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::TIFF
  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. ../Editor/atom_feature_common_editor_script_files.cmake
  75. PLATFORM_INCLUDE_FILES
  76. ${pal_source_dir}/runtime_dependencies_clients.cmake
  77. INCLUDE_DIRECTORIES
  78. PRIVATE
  79. Source
  80. ${pal_source_dir}
  81. PUBLIC
  82. Include
  83. BUILD_DEPENDENCIES
  84. PRIVATE
  85. AZ::AzCore
  86. AZ::AzFramework
  87. Gem::Atom_Feature_Common.Static
  88. Gem::Atom_Feature_Common.Public
  89. )
  90. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  91. set(runtime_dependencies_tools ${pal_source_dir}/runtime_dependencies_tools.cmake)
  92. foreach(pal_tools_platform ${LY_PAL_TOOLS_ENABLED})
  93. ly_get_list_relative_pal_filename(pal_runtime_dependencies_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${pal_tools_platform})
  94. list(APPEND runtime_dependencies_tools ${pal_runtime_dependencies_source_dir}/runtime_dependencies_tools.cmake)
  95. endforeach()
  96. ly_add_target(
  97. NAME Atom_Feature_Common.Editor GEM_MODULE
  98. NAMESPACE Gem
  99. FILES_CMAKE
  100. atom_feature_common_editor_files.cmake
  101. PLATFORM_INCLUDE_FILES
  102. ${runtime_dependencies_tools}
  103. INCLUDE_DIRECTORIES
  104. PRIVATE
  105. .
  106. Source
  107. ${pal_source_dir}
  108. PUBLIC
  109. Include
  110. COMPILE_DEFINITIONS
  111. PRIVATE
  112. ATOM_FEATURE_COMMON_EDITOR
  113. ATOM_FEATURE_CORELIGHTS_EDITOR
  114. BUILD_DEPENDENCIES
  115. PRIVATE
  116. AZ::AzCore
  117. AZ::AzFramework
  118. AZ::AzToolsFramework
  119. AZ::AssetBuilderSDK
  120. AZ::SceneCore
  121. Gem::Atom_RPI.Edit
  122. Gem::Atom_RPI.Public
  123. Gem::Atom_Utils.Static
  124. Gem::Atom_Feature_Common.Static
  125. Gem::Atom_Feature_Common.Public
  126. )
  127. ly_add_target(
  128. NAME Atom_Feature_Common.Builders GEM_MODULE
  129. NAMESPACE Gem
  130. FILES_CMAKE
  131. atom_feature_common_builders_files.cmake
  132. PLATFORM_INCLUDE_FILES
  133. ${runtime_dependencies_tools}
  134. INCLUDE_DIRECTORIES
  135. PRIVATE
  136. Source/Builders
  137. BUILD_DEPENDENCIES
  138. PRIVATE
  139. AZ::AzCore
  140. RUNTIME_DEPENDENCIES
  141. Gem::Atom_RHI.Private
  142. )
  143. endif()
  144. ################################################################################
  145. # Tests
  146. ################################################################################
  147. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  148. ly_add_target(
  149. NAME Atom_Feature_Common.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  150. NAMESPACE Gem
  151. FILES_CMAKE
  152. atom_feature_common_tests_files.cmake
  153. INCLUDE_DIRECTORIES
  154. PRIVATE
  155. Tests
  156. PUBLIC
  157. Mocks
  158. BUILD_DEPENDENCIES
  159. PRIVATE
  160. AZ::AzFramework
  161. AZ::AzTest
  162. Gem::Atom_Feature_Common.Static
  163. Gem::Atom_Feature_Common.Public
  164. )
  165. ly_add_googletest(
  166. NAME Gem::Atom_Feature_Common.Tests
  167. )
  168. endif()