CMakeLists.txt 4.7 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_add_target(
  9. NAME ${gem_name}.Static STATIC
  10. NAMESPACE Gem
  11. FILES_CMAKE
  12. fastnoise_files.cmake
  13. INCLUDE_DIRECTORIES
  14. PUBLIC
  15. Source
  16. . # To give acess to External/FastNoise
  17. Include
  18. BUILD_DEPENDENCIES
  19. PUBLIC
  20. Gem::GradientSignal
  21. PUBLIC
  22. AZ::AzCore
  23. PRIVATE
  24. AZ::AzFramework
  25. Gem::LmbrCentral
  26. )
  27. ly_add_target(
  28. NAME ${gem_name} ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  29. NAMESPACE Gem
  30. FILES_CMAKE
  31. fastnoise_shared_files.cmake
  32. INCLUDE_DIRECTORIES
  33. PUBLIC
  34. Include
  35. BUILD_DEPENDENCIES
  36. PRIVATE
  37. Gem::${gem_name}.Static
  38. RUNTIME_DEPENDENCIES
  39. Gem::LmbrCentral
  40. Gem::GradientSignal
  41. )
  42. # Inject the gem name into the Module source file
  43. ly_add_source_properties(
  44. SOURCES
  45. Source/FastNoiseModule.cpp
  46. PROPERTY COMPILE_DEFINITIONS
  47. VALUES
  48. O3DE_GEM_NAME=${gem_name}
  49. O3DE_GEM_VERSION=${gem_version})
  50. # Clients and Servers use the above module
  51. ly_create_alias(NAME ${gem_name}.Clients NAMESPACE Gem TARGETS ${gem_name})
  52. ly_create_alias(NAME ${gem_name}.Servers NAMESPACE Gem TARGETS ${gem_name})
  53. ly_create_alias(NAME ${gem_name}.Unified NAMESPACE Gem TARGETS ${gem_name})
  54. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  55. ly_add_target(
  56. NAME ${gem_name}.Editor.Static STATIC
  57. NAMESPACE Gem
  58. FILES_CMAKE
  59. fastnoise_editor_files.cmake
  60. COMPILE_DEFINITIONS
  61. PUBLIC
  62. FASTNOISE_EDITOR
  63. INCLUDE_DIRECTORIES
  64. PRIVATE
  65. Source
  66. PUBLIC
  67. Include
  68. BUILD_DEPENDENCIES
  69. PRIVATE
  70. Gem::LmbrCentral.Editor
  71. Gem::GradientSignal.Editor.Static
  72. PUBLIC
  73. Gem::${gem_name}.Static
  74. AZ::AzToolsFramework
  75. Gem::SurfaceData
  76. )
  77. ly_add_target(
  78. NAME ${gem_name}.Editor GEM_MODULE
  79. NAMESPACE Gem
  80. FILES_CMAKE
  81. fastnoise_editor_shared_files.cmake
  82. INCLUDE_DIRECTORIES
  83. PRIVATE
  84. Source
  85. PUBLIC
  86. Include
  87. BUILD_DEPENDENCIES
  88. PRIVATE
  89. Gem::${gem_name}.Editor.Static
  90. Gem::LmbrCentral.Editor
  91. RUNTIME_DEPENDENCIES
  92. Gem::LmbrCentral.Editor
  93. Gem::SurfaceData.Editor
  94. )
  95. # Inject the gem name into the Module source file
  96. ly_add_source_properties(
  97. SOURCES
  98. Source/FastNoiseEditorModule.cpp
  99. PROPERTY COMPILE_DEFINITIONS
  100. VALUES
  101. O3DE_GEM_NAME=${gem_name}
  102. O3DE_GEM_VERSION=${gem_version})
  103. # builders and tools load the above tool module.
  104. ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem TARGETS ${gem_name}.Editor)
  105. ly_create_alias(NAME ${gem_name}.Tools NAMESPACE Gem TARGETS ${gem_name}.Editor)
  106. endif()
  107. ################################################################################
  108. # Tests
  109. ################################################################################
  110. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  111. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  112. ly_add_target(
  113. NAME ${gem_name}.Editor.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  114. NAMESPACE Gem
  115. FILES_CMAKE
  116. fastnoise_editor_tests_files.cmake
  117. COMPILE_DEFINITIONS
  118. PUBLIC
  119. FASTNOISE_EDITOR
  120. INCLUDE_DIRECTORIES
  121. PRIVATE
  122. Tests
  123. BUILD_DEPENDENCIES
  124. PRIVATE
  125. AZ::AzTest
  126. ${gem_name}.Editor.Static
  127. Gem::LmbrCentral.Editor
  128. )
  129. ly_add_googletest(
  130. NAME Gem::${gem_name}.Editor.Tests
  131. LABELS REQUIRES_tiaf
  132. )
  133. endif()
  134. ly_add_target(
  135. NAME ${gem_name}.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  136. NAMESPACE Gem
  137. FILES_CMAKE
  138. fastnoise_tests_files.cmake
  139. INCLUDE_DIRECTORIES
  140. PRIVATE
  141. Tests
  142. BUILD_DEPENDENCIES
  143. PRIVATE
  144. AZ::AzTest
  145. Gem::${gem_name}.Static
  146. Gem::GradientSignal
  147. Gem::GradientSignal.Tests.Static
  148. Gem::LmbrCentral
  149. )
  150. ly_add_googletest(
  151. NAME Gem::${gem_name}.Tests
  152. LABELS REQUIRES_tiaf
  153. )
  154. ly_add_googlebenchmark(
  155. NAME Gem::${gem_name}.Benchmarks
  156. TARGET Gem::${gem_name}.Tests
  157. )
  158. endif()