CMakeLists.txt 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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. include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_MATERIAL_EDITOR_APPLICATION_SUPPORTED
  13. if(NOT PAL_TRAIT_ATOM_MATERIAL_EDITOR_APPLICATION_SUPPORTED)
  14. return()
  15. endif()
  16. ly_add_target(
  17. NAME MaterialEditor.Document STATIC
  18. NAMESPACE Gem
  19. AUTOMOC
  20. FILES_CMAKE
  21. materialeditordocument_files.cmake
  22. INCLUDE_DIRECTORIES
  23. PRIVATE
  24. .
  25. Source
  26. PUBLIC
  27. Include
  28. BUILD_DEPENDENCIES
  29. PUBLIC
  30. Gem::AtomToolsFramework.Static
  31. Gem::AtomToolsFramework.Editor
  32. Gem::Atom_RPI.Edit
  33. Gem::Atom_RPI.Public
  34. Gem::Atom_RHI.Reflect
  35. )
  36. ly_add_target(
  37. NAME MaterialEditor.Window STATIC
  38. NAMESPACE Gem
  39. AUTOMOC
  40. AUTOUIC
  41. AUTORCC
  42. FILES_CMAKE
  43. materialeditorwindow_files.cmake
  44. INCLUDE_DIRECTORIES
  45. PRIVATE
  46. .
  47. Source
  48. PUBLIC
  49. Include
  50. BUILD_DEPENDENCIES
  51. PUBLIC
  52. Gem::AtomToolsFramework.Static
  53. Gem::AtomToolsFramework.Editor
  54. Gem::Atom_RPI.Public
  55. Gem::Atom_Feature_Common.Public
  56. )
  57. ly_add_target(
  58. NAME MaterialEditor.Viewport STATIC
  59. NAMESPACE Gem
  60. AUTOMOC
  61. AUTOUIC
  62. FILES_CMAKE
  63. materialeditorviewport_files.cmake
  64. INCLUDE_DIRECTORIES
  65. PRIVATE
  66. .
  67. Source
  68. Public
  69. Include
  70. BUILD_DEPENDENCIES
  71. PUBLIC
  72. Gem::AtomToolsFramework.Static
  73. Gem::AtomToolsFramework.Editor
  74. Gem::Atom_RHI.Public
  75. Gem::Atom_RPI.Public
  76. Gem::Atom_Feature_Common.Static
  77. Gem::Atom_Component_DebugCamera.Static
  78. Gem::AtomLyIntegration_CommonFeatures.Static
  79. )
  80. ly_add_target(
  81. NAME MaterialEditor EXECUTABLE
  82. NAMESPACE Gem
  83. AUTOMOC
  84. FILES_CMAKE
  85. materialeditor_files.cmake
  86. ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  87. PLATFORM_INCLUDE_FILES
  88. ${pal_source_dir}/tool_dependencies_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  89. INCLUDE_DIRECTORIES
  90. PRIVATE
  91. .
  92. Source
  93. ${pal_source_dir}
  94. PUBLIC
  95. Include
  96. BUILD_DEPENDENCIES
  97. PRIVATE
  98. Gem::AtomToolsFramework.Static
  99. Gem::AtomToolsFramework.Editor
  100. Gem::MaterialEditor.Window
  101. Gem::MaterialEditor.Viewport
  102. Gem::MaterialEditor.Document
  103. RUNTIME_DEPENDENCIES
  104. Gem::AtomToolsFramework.Editor
  105. Gem::EditorPythonBindings.Editor
  106. )
  107. ly_set_gem_variant_to_load(TARGETS MaterialEditor VARIANTS Tools)
  108. # Add a 'builders' alias to allow the MaterialEditor root gem path to be added to the generated
  109. # cmake_dependencies.<project>.assetprocessor.setreg to allow the asset scan folder for it to be added
  110. ly_create_alias(NAME MaterialEditor.Builders NAMESPACE Gem)
  111. # Add build dependency to Editor for the MaterialEditor application since
  112. # Editor opens up the MaterialEditor
  113. ly_add_dependencies(Editor Gem::MaterialEditor)
  114. # Inject the project path into the MaterialEditor VS debugger command arguments if the build system being invoked
  115. # in a project centric view
  116. if(NOT PROJECT_NAME STREQUAL "O3DE")
  117. set_property(TARGET MaterialEditor APPEND PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "--project-path=\"${CMAKE_SOURCE_DIR}\"")
  118. endif()
  119. # Adds the MaterialEditor target as a C preprocessor define so that it can be used as a Settings Registry
  120. # specialization in order to look up the generated .setreg which contains the dependencies
  121. # specified for the target.
  122. if(TARGET MaterialEditor)
  123. set_source_files_properties(
  124. Source/MaterialEditorApplication.cpp
  125. PROPERTIES
  126. COMPILE_DEFINITIONS
  127. LY_CMAKE_TARGET="MaterialEditor"
  128. )
  129. else()
  130. message(FATAL_ERROR "Cannot set LY_CMAKE_TARGET define to MaterialEditor as the target doesn't exist anymore."
  131. " Perhaps it has been renamed")
  132. endif()