CMakeLists.txt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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_RHI.Public
  42. Gem::Atom_RHI.Reflect
  43. Gem::Atom_RPI.Edit
  44. Gem::Atom_RPI.Public
  45. Gem::GraphCanvasWidgets
  46. Gem::GraphModel.Editor.Static
  47. Gem::ImageProcessingAtom.Headers
  48. )
  49. ly_add_target(
  50. NAME ${gem_name}.Editor GEM_MODULE
  51. NAMESPACE Gem
  52. AUTOMOC
  53. AUTORCC
  54. FILES_CMAKE
  55. atomtoolsframework_shared_files.cmake
  56. INCLUDE_DIRECTORIES
  57. PRIVATE
  58. Source
  59. PUBLIC
  60. Include
  61. BUILD_DEPENDENCIES
  62. PRIVATE
  63. Gem::${gem_name}.Static
  64. RUNTIME_DEPENDENCIES
  65. Gem::Atom_Bootstrap
  66. Gem::Atom_Component_DebugCamera
  67. Gem::Atom_Feature_Common.Editor
  68. Gem::Atom_RHI.Private
  69. Gem::Atom_RHI_Null.Private
  70. Gem::Atom_RPI.Editor
  71. Gem::EditorPythonBindings.Editor
  72. Gem::GraphCanvas.Editor
  73. Gem::GraphCanvasWidgets
  74. Gem::GraphModel.Editor
  75. Gem::ImageProcessingAtom.Editor
  76. )
  77. # Inject the gem name into the Module source file
  78. ly_add_source_properties(
  79. SOURCES
  80. Source/AtomToolsFrameworkModule.cpp
  81. PROPERTY COMPILE_DEFINITIONS
  82. VALUES
  83. O3DE_GEM_NAME=${gem_name}
  84. O3DE_GEM_VERSION=${gem_version})
  85. # Add a 'builders' alias to allow the ${gem_name} root gem path to be added to the generated
  86. # cmake_dependencies.<project>.assetprocessor.setreg to allow the asset scan folder for it to be added
  87. ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem)
  88. ################################################################################
  89. # Tests
  90. ################################################################################
  91. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  92. ly_add_target(
  93. NAME ${gem_name}.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  94. NAMESPACE Gem
  95. FILES_CMAKE
  96. atomtoolsframework_tests_files.cmake
  97. INCLUDE_DIRECTORIES
  98. PRIVATE
  99. .
  100. Tests
  101. BUILD_DEPENDENCIES
  102. PRIVATE
  103. 3rdParty::Qt::Test
  104. AZ::AzFrameworkTestShared
  105. AZ::AzTest
  106. AZ::AzTestShared
  107. Gem::Atom_Utils.TestUtils.Static
  108. Gem::${gem_name}.Static
  109. )
  110. ly_add_googletest(
  111. NAME Gem::${gem_name}.Tests
  112. LABELS REQUIRES_tiaf
  113. )
  114. endif()