CMakeLists.txt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
  9. return()
  10. endif()
  11. o3de_pal_dir(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
  12. ly_add_target(
  13. NAME ${gem_name}.Static STATIC
  14. NAMESPACE Gem
  15. AUTOMOC
  16. AUTOUIC
  17. AUTORCC
  18. FILES_CMAKE
  19. atomtoolsframework_files.cmake
  20. ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  21. INCLUDE_DIRECTORIES
  22. PRIVATE
  23. Source
  24. ${pal_source_dir}
  25. PUBLIC
  26. Include
  27. BUILD_DEPENDENCIES
  28. PUBLIC
  29. 3rdParty::Python
  30. 3rdParty::Qt::Core
  31. 3rdParty::Qt::Gui
  32. 3rdParty::Qt::Network
  33. 3rdParty::Qt::Widgets
  34. AZ::AzCore
  35. AZ::AzQtComponents
  36. AZ::AzToolsFramework
  37. Gem::Atom_Bootstrap.Headers
  38. Gem::Atom_Component_DebugCamera.Static
  39. Gem::Atom_Feature_Common
  40. Gem::Atom_Feature_Common.Public
  41. Gem::Atom_Feature_Common.Static
  42. Gem::Atom_RHI.Public
  43. Gem::Atom_RHI.Reflect
  44. Gem::Atom_RPI.Edit
  45. Gem::Atom_RPI.Public
  46. Gem::GraphCanvasWidgets
  47. Gem::GraphModel.Editor.Static
  48. Gem::ImageProcessingAtom.Headers
  49. )
  50. ly_add_target(
  51. NAME ${gem_name}.Editor GEM_MODULE
  52. NAMESPACE Gem
  53. AUTOMOC
  54. AUTORCC
  55. FILES_CMAKE
  56. atomtoolsframework_shared_files.cmake
  57. INCLUDE_DIRECTORIES
  58. PRIVATE
  59. Source
  60. PUBLIC
  61. Include
  62. BUILD_DEPENDENCIES
  63. PRIVATE
  64. Gem::${gem_name}.Static
  65. RUNTIME_DEPENDENCIES
  66. Gem::Atom_Bootstrap
  67. Gem::Atom_Component_DebugCamera
  68. Gem::Atom_Feature_Common.Editor
  69. Gem::Atom_RHI.Private
  70. Gem::Atom_RHI_Null.Private
  71. Gem::Atom_RPI.Editor
  72. Gem::EditorPythonBindings.Editor
  73. Gem::GraphCanvas.Editor
  74. Gem::GraphCanvasWidgets
  75. Gem::GraphModel.Editor
  76. Gem::ImageProcessingAtom.Editor
  77. )
  78. # Inject the gem name into the Module source file
  79. ly_add_source_properties(
  80. SOURCES
  81. Source/AtomToolsFrameworkModule.cpp
  82. PROPERTY COMPILE_DEFINITIONS
  83. VALUES
  84. O3DE_GEM_NAME=${gem_name}
  85. O3DE_GEM_VERSION=${gem_version})
  86. # Add a 'builders' alias to allow the ${gem_name} root gem path to be added to the generated
  87. # cmake_dependencies.<project>.assetprocessor.setreg to allow the asset scan folder for it to be added
  88. ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem)
  89. ################################################################################
  90. # Tests
  91. ################################################################################
  92. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  93. ly_add_target(
  94. NAME ${gem_name}.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  95. NAMESPACE Gem
  96. FILES_CMAKE
  97. atomtoolsframework_tests_files.cmake
  98. INCLUDE_DIRECTORIES
  99. PRIVATE
  100. .
  101. Tests
  102. BUILD_DEPENDENCIES
  103. PRIVATE
  104. 3rdParty::Qt::Test
  105. AZ::AzFrameworkTestShared
  106. AZ::AzTest
  107. AZ::AzTestShared
  108. Gem::Atom_Utils.TestUtils.Static
  109. Gem::${gem_name}.Static
  110. )
  111. ly_add_googletest(
  112. NAME Gem::${gem_name}.Tests
  113. LABELS REQUIRES_tiaf
  114. )
  115. endif()