CMakeLists.txt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # {BEGIN_LICENSE}
  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. # {END_LICENSE}
  8. # Query the gem name from the gem.json file if possible
  9. # otherwise fallback to using ${GemName}
  10. o3de_find_ancestor_gem_root(gem_path gem_name "${CMAKE_CURRENT_SOURCE_DIR}")
  11. if (NOT gem_name)
  12. set(gem_name "${GemName}")
  13. endif()
  14. ly_add_target(
  15. NAME ${Name}.Object OBJECT
  16. NAMESPACE ScriptCanvasNodes
  17. FILES_CMAKE
  18. ${Name}_files.cmake
  19. INCLUDE_DIRECTORIES
  20. PRIVATE
  21. Source
  22. PUBLIC
  23. Include
  24. BUILD_DEPENDENCIES
  25. PUBLIC
  26. AZ::AzCore
  27. AZ::AzFramework
  28. Gem::ScriptCanvas.Shared
  29. Gem::ScriptCanvas.Extensions
  30. AUTOGEN_RULES
  31. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeable_Header.jinja,$path/$fileprefix.generated.h
  32. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeable_Source.jinja,$path/$fileprefix.generated.cpp
  33. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeableRegistry_Header.jinja,$path/$fileprefix_Nodeables.generated.h
  34. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeableRegistry_Source.jinja,$path/$fileprefix_Nodeables.generated.cpp
  35. )
  36. set (dependent_targets ${gem_name}.Private.Object;${gem_name};${gem_name}.Editor)
  37. foreach (dependent_target IN LISTS dependent_targets)
  38. if (TARGET ${dependent_target})
  39. target_link_libraries(${dependent_target} PRIVATE ScriptCanvasNodes::${Name}.Object)
  40. else()
  41. message(FATAL_ERROR "The target ${dependent_target} was not found, if the gem was not created using scripts/o3de create-gem"
  42. " you may update dependent_targets to match the corresponding targets in your gem")
  43. endif()
  44. endforeach()