CMakeLists.txt 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME})
  9. ly_add_target(
  10. NAME AtomSampleViewer.Lib.Static STATIC
  11. NAMESPACE Gem
  12. FILES_CMAKE
  13. atomsampleviewergem_lib_files.cmake
  14. INCLUDE_DIRECTORIES
  15. PUBLIC
  16. Lib
  17. BUILD_DEPENDENCIES
  18. PUBLIC
  19. AZ::AzGameFramework
  20. Gem::Atom_AtomBridge.Static
  21. Gem::Atom_RPI.Public
  22. Gem::Atom_Utils.Static
  23. )
  24. ly_add_target(
  25. NAME AtomSampleViewer.Private.Static STATIC
  26. NAMESPACE Gem
  27. FILES_CMAKE
  28. atomsampleviewergem_private_files.cmake
  29. ${pal_dir}/atomsampleviewer_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  30. PLATFORM_INCLUDE_FILES
  31. ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  32. INCLUDE_DIRECTORIES
  33. PUBLIC
  34. Lib
  35. Source
  36. ${pal_dir}
  37. BUILD_DEPENDENCIES
  38. PUBLIC
  39. AZ::AzGameFramework
  40. Gem::Atom_AtomBridge.Static
  41. Gem::Atom_Feature_Common.Static
  42. Gem::Atom_Component_DebugCamera.Static
  43. Gem::AtomSampleViewer.Lib.Static
  44. Gem::Profiler.Static
  45. )
  46. ly_add_target(
  47. NAME AtomSampleViewer ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  48. NAMESPACE Gem
  49. FILES_CMAKE
  50. atomsampleviewergem_private_shared_files.cmake
  51. ../../atomsampleviewer_asset_files.cmake
  52. PLATFORM_INCLUDE_FILES
  53. ${pal_dir}/additional_${PAL_PLATFORM_NAME_LOWERCASE}_runtime_library.cmake
  54. BUILD_DEPENDENCIES
  55. PRIVATE
  56. AZ::AzGameFramework
  57. Gem::Atom_AtomBridge.Static
  58. Gem::AtomSampleViewer.Private.Static
  59. Gem::ImGui.imguilib
  60. )
  61. # if enabled, AtomSampleViewer is used by the Client and ServerLauncher
  62. ly_create_alias(NAME AtomSampleViewer.Clients NAMESPACE Gem TARGETS Gem::AtomSampleViewer)
  63. ly_create_alias(NAME AtomSampleViewer.Servers NAMESPACE Gem TARGETS Gem::AtomSampleViewer)
  64. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  65. ly_add_target(
  66. NAME AtomSampleViewer.Tools.Static STATIC
  67. NAMESPACE Gem
  68. FILES_CMAKE
  69. atomsampleviewergem_tools_files.cmake
  70. INCLUDE_DIRECTORIES
  71. PUBLIC
  72. .
  73. Tools
  74. BUILD_DEPENDENCIES
  75. PRIVATE
  76. AZ::AzGameFramework
  77. Gem::Atom_AtomBridge.Static
  78. Gem::AtomSampleViewer.Lib.Static
  79. PUBLIC
  80. Gem::Atom_RPI.Edit
  81. )
  82. ly_add_target(
  83. NAME AtomSampleViewer.Tools GEM_MODULE
  84. NAMESPACE Gem
  85. FILES_CMAKE
  86. atomsampleviewergem_tools_shared_files.cmake
  87. COMPILE_DEFINITIONS
  88. PUBLIC
  89. INCLUDE_DIRECTORIES
  90. PRIVATE
  91. .
  92. Source
  93. Source/Platform/${PAL_PLATFORM_NAME}
  94. BUILD_DEPENDENCIES
  95. PUBLIC
  96. AZ::AzCore
  97. Gem::AtomSampleViewer.Tools.Static
  98. RUNTIME_DEPENDENCIES
  99. Gem::AtomSampleViewer
  100. )
  101. # The AtomSampleViewer.Tools target is the real GEM_MODULE target made above, but the AssetBuilder/AssetProcessor
  102. # also needs that target, so alias the "Builders" variant to it
  103. ly_create_alias(NAME AtomSampleViewer.Builders NAMESPACE Gem TARGETS Gem::AtomSampleViewer.Tools)
  104. endif()
  105. ################################################################################
  106. # Tests
  107. ################################################################################
  108. if(PAL_TRAIT_BUILD_SUPPORTS_TESTS)
  109. ly_add_target(
  110. NAME AtomSampleViewer.Tests MODULE
  111. NAMESPACE Gem
  112. FILES_CMAKE
  113. atomsampleviewer_tests_files.cmake
  114. INCLUDE_DIRECTORIES
  115. PRIVATE
  116. Tests
  117. BUILD_DEPENDENCIES
  118. PRIVATE
  119. AZ::AzTest
  120. Gem::AtomSampleViewer
  121. )
  122. ly_add_googletest(
  123. NAME Gem::AtomSampleViewer.Tests
  124. TARGET Gem::AtomSampleViewer.Tests
  125. )
  126. endif()
  127. ################################################################################
  128. # Gem dependencies
  129. ################################################################################
  130. ly_enable_gems(PROJECT_NAME AtomSampleViewer GEM_FILE enabled_gems.cmake)
  131. # If we build a server, then apply the gems to the server
  132. if(PAL_TRAIT_BUILD_SERVER_SUPPORTED)
  133. set_property(GLOBAL APPEND PROPERTY LY_LAUNCHER_SERVER_PROJECTS AtomSampleViewer)
  134. endif()