CMakeLists.txt 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  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. set(SCRIPT_CANVAS_COMMON_DEFINES
  9. SCRIPTCANVAS
  10. ENABLE_EXTENDED_MATH_SUPPORT=0
  11. )
  12. set(SCRIPT_CANVAS_EXECUTION_NOTIFICATION_DEFINES
  13. $<$<NOT:$<CONFIG:Release>>:SC_EXECUTION_TRACE_ENABLED> # this is REQUIRED for debugging/execution logging
  14. )
  15. set(SCRIPT_CANVAS_DEBUG_DEBUGGER_DEFINES
  16. $<$<NOT:$<CONFIG:Release>>:
  17. # SCRIPT_CANVAS_DEBUGGER_IS_ALWAYS_OBSERVING # for aggressive logging that ignores filtering (probably only for debug/development purposes)
  18. # SCRIPT_CANVAS_DEBUGGER_CONNECT_TO_ANYTHING_BUT_SELF # connect to the first target that is not self
  19. # SCRIPT_CANVAS_DEBUG_DEBUGGER # to debug the ScriptCanvas Debugging systems themselves
  20. >
  21. )
  22. ly_add_target(
  23. NAME ScriptCanvasDebugger STATIC
  24. NAMESPACE Gem
  25. FILES_CMAKE
  26. scriptcanvasgem_debugger_files.cmake
  27. INCLUDE_DIRECTORIES
  28. PRIVATE
  29. Include
  30. Include/ScriptCanvas
  31. COMPILE_DEFINITIONS
  32. PUBLIC
  33. SCRIPTCANVAS_ERRORS_ENABLED
  34. PRIVATE
  35. ${SCRIPT_CANVAS_COMMON_DEFINES}
  36. ${SCRIPT_CANVAS_DEBUG_DEBUGGER_DEFINES}
  37. ${SCRIPT_CANVAS_EXECUTION_NOTIFICATION_DEFINES}
  38. BUILD_DEPENDENCIES
  39. PRIVATE
  40. AZ::AzCore
  41. AZ::AzFramework
  42. Gem::ScriptEvents.Static
  43. )
  44. # the script canvas debugger is an optional gem module
  45. # To Enable it, associate it with a project
  46. ly_create_alias(NAME ScriptCanvasDebugger.Builders NAMESPACE Gem TARGETS Gem::ScriptCanvasDebugger)
  47. ly_create_alias(NAME ScriptCanvasDebugger.Tools NAMESPACE Gem TARGETS Gem::ScriptCanvasDebugger)
  48. ly_create_alias(NAME ScriptCanvasDebugger.Clients NAMESPACE Gem TARGETS Gem::ScriptCanvasDebugger)
  49. ly_create_alias(NAME ScriptCanvasDebugger.Servers NAMESPACE Gem TARGETS Gem::ScriptCanvasDebugger)
  50. ly_create_alias(NAME ScriptCanvasDebugger.Unified NAMESPACE Gem TARGETS Gem::ScriptCanvasDebugger)
  51. ly_add_target(
  52. NAME ScriptCanvas.Extensions STATIC
  53. NAMESPACE Gem
  54. FILES_CMAKE
  55. scriptcanvasgem_extensions_files.cmake
  56. INCLUDE_DIRECTORIES
  57. PUBLIC
  58. Include
  59. BUILD_DEPENDENCIES
  60. PUBLIC
  61. AZ::AzCore
  62. AZ::AzFramework
  63. )
  64. ly_add_target(
  65. NAME ScriptCanvas.Static STATIC
  66. NAMESPACE Gem
  67. FILES_CMAKE
  68. scriptcanvasgem_autogen_files.cmake
  69. scriptcanvasgem_headers.cmake
  70. scriptcanvasgem_common_files.cmake
  71. scriptcanvasgem_runtime_asset_files.cmake
  72. INCLUDE_DIRECTORIES
  73. PUBLIC
  74. .
  75. Include
  76. Include/ScriptCanvas
  77. ${SCRIPT_CANVAS_AUTOGEN_BUILD_DIR}
  78. COMPILE_DEFINITIONS
  79. PUBLIC
  80. SCRIPTCANVAS_ERRORS_ENABLED
  81. PRIVATE
  82. ${SCRIPT_CANVAS_COMMON_DEFINES}
  83. ${SCRIPT_CANVAS_DEBUG_DEBUGGER_DEFINES}
  84. ${SCRIPT_CANVAS_EXECUTION_NOTIFICATION_DEFINES}
  85. BUILD_DEPENDENCIES
  86. PUBLIC
  87. Gem::ScriptEvents.Static
  88. Gem::ExpressionEvaluation.Static
  89. Gem::ScriptCanvas.Extensions
  90. PRIVATE
  91. AZ::AzCore
  92. AZ::AzFramework
  93. Gem::ScriptCanvasDebugger
  94. AUTOGEN_RULES
  95. *.ScriptCanvasData.xml,ScriptCanvasDataRegistry_Header.jinja,AutoGenDataRegistry.generated.h
  96. *.ScriptCanvasData.xml,ScriptCanvasDataRegistry_Source.jinja,AutoGenDataRegistry.generated.cpp
  97. *.ScriptCanvasFunction.xml,ScriptCanvasFunctionRegistry_Header.jinja,AutoGenFunctionRegistry.generated.h
  98. *.ScriptCanvasFunction.xml,ScriptCanvasFunctionRegistry_Source.jinja,AutoGenFunctionRegistry.generated.cpp
  99. *.ScriptCanvasGrammar.xml,ScriptCanvasGrammar_Header.jinja,$path/$fileprefix.generated.h
  100. *.ScriptCanvasGrammar.xml,ScriptCanvasGrammar_Source.jinja,$path/$fileprefix.generated.cpp
  101. *.ScriptCanvasGrammar.xml,ScriptCanvasGrammarRegistry_Header.jinja,AutoGenGrammarRegistry.generated.h
  102. *.ScriptCanvasGrammar.xml,ScriptCanvasGrammarRegistry_Source.jinja,AutoGenGrammarRegistry.generated.cpp
  103. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeable_Header.jinja,$path/$fileprefix.generated.h
  104. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeable_Source.jinja,$path/$fileprefix.generated.cpp
  105. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeableRegistry_Header.jinja,AutoGenNodeableRegistry.generated.h
  106. *.ScriptCanvasNodeable.xml,ScriptCanvasNodeableRegistry_Source.jinja,AutoGenNodeableRegistry.generated.cpp
  107. RUNTIME_DEPENDENCIES
  108. Gem::ScriptCanvasDebugger
  109. )
  110. ly_add_target(
  111. NAME ScriptCanvas ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  112. NAMESPACE Gem
  113. FILES_CMAKE
  114. scriptcanvasgem_game_files.cmake
  115. INCLUDE_DIRECTORIES
  116. PRIVATE
  117. .
  118. Include/ScriptCanvas
  119. COMPILE_DEFINITIONS
  120. PUBLIC
  121. SCRIPTCANVAS_ERRORS_ENABLED
  122. PRIVATE
  123. ${SCRIPT_CANVAS_COMMON_DEFINES}
  124. BUILD_DEPENDENCIES
  125. PUBLIC
  126. Gem::ScriptCanvas.Static
  127. PRIVATE
  128. AZ::AzCore
  129. AZ::AzFramework
  130. Gem::ScriptEvents.Static
  131. RUNTIME_DEPENDENCIES
  132. Gem::ScriptEvents
  133. Gem::ExpressionEvaluation
  134. )
  135. # the "ScriptCanvas" target is active in Clients and Servers
  136. ly_create_alias(NAME ScriptCanvas.Clients NAMESPACE Gem TARGETS Gem::ScriptCanvas)
  137. ly_create_alias(NAME ScriptCanvas.Servers NAMESPACE Gem TARGETS Gem::ScriptCanvas)
  138. ly_create_alias(NAME ScriptCanvas.Unified NAMESPACE Gem TARGETS Gem::ScriptCanvas)
  139. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  140. ly_add_target(
  141. NAME ScriptCanvas.Editor.Static STATIC
  142. NAMESPACE Gem
  143. AUTOMOC
  144. AUTOUIC
  145. AUTORCC
  146. FILES_CMAKE
  147. scriptcanvasgem_editor_files.cmake
  148. scriptcanvasgem_editor_asset_files.cmake
  149. scriptcanvasgem_editor_builder_files.cmake
  150. scriptcanvasgem_editor_tools_files.cmake
  151. COMPILE_DEFINITIONS
  152. PUBLIC
  153. SCRIPTCANVAS_ERRORS_ENABLED
  154. PRIVATE
  155. SCRIPTCANVAS_EDITOR
  156. ${SCRIPT_CANVAS_COMMON_DEFINES}
  157. INCLUDE_DIRECTORIES
  158. PUBLIC
  159. Editor/Include
  160. PRIVATE
  161. .
  162. Editor
  163. Tools
  164. ${SCRIPT_CANVAS_AUTOGEN_BUILD_DIR}
  165. BUILD_DEPENDENCIES
  166. PUBLIC
  167. Legacy::CryCommon
  168. AZ::AzCore
  169. AZ::AssetBuilderSDK
  170. ${additional_dependencies}
  171. Gem::ScriptCanvas
  172. Gem::ScriptEvents.Static
  173. Gem::GraphCanvasWidgets
  174. Gem::ExpressionEvaluation.Static
  175. PRIVATE
  176. Legacy::EditorCore
  177. RUNTIME_DEPENDENCIES
  178. Gem::ScriptCanvas
  179. )
  180. ly_add_target(
  181. NAME ScriptCanvas.Editor GEM_MODULE
  182. NAMESPACE Gem
  183. FILES_CMAKE
  184. scriptcanvasgem_editor_shared_files.cmake
  185. COMPILE_DEFINITIONS
  186. PUBLIC
  187. SCRIPTCANVAS_ERRORS_ENABLED
  188. PRIVATE
  189. SCRIPTCANVAS_EDITOR
  190. ${SCRIPT_CANVAS_COMMON_DEFINES}
  191. INCLUDE_DIRECTORIES
  192. PUBLIC
  193. Editor/Include
  194. PRIVATE
  195. .
  196. Editor
  197. BUILD_DEPENDENCIES
  198. PRIVATE
  199. AZ::AzToolsFramework
  200. PUBLIC
  201. Gem::ScriptCanvas.Editor.Static
  202. RUNTIME_DEPENDENCIES
  203. 3rdParty::Qt::Core
  204. 3rdParty::Qt::Gui
  205. 3rdParty::Qt::Widgets
  206. Legacy::EditorCore
  207. AZ::AzQtComponents
  208. Gem::GraphCanvas.Editor
  209. Gem::ScriptEvents.Editor
  210. Gem::ExpressionEvaluation
  211. )
  212. # the "ScriptCanvas.Editor" target is active in all dev tools:
  213. ly_create_alias(NAME ScriptCanvas.Builders NAMESPACE Gem TARGETS Gem::ScriptCanvas.Editor)
  214. ly_create_alias(NAME ScriptCanvas.Tools NAMESPACE Gem TARGETS Gem::ScriptCanvas.Editor)
  215. endif()
  216. ################################################################################
  217. # Tests
  218. ################################################################################
  219. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  220. ly_add_target(
  221. NAME ScriptCanvas.Tests MODULE
  222. NAMESPACE Gem
  223. FILES_CMAKE
  224. scriptcanvasgem_tests_files.cmake
  225. INCLUDE_DIRECTORIES
  226. PRIVATE
  227. Include
  228. Tests
  229. BUILD_DEPENDENCIES
  230. PRIVATE
  231. AZ::AzCore
  232. AZ::AzCoreTestCommon
  233. AZ::AzFramework
  234. AZ::AzTest
  235. Gem::ScriptCanvas.Static
  236. )
  237. ly_add_googletest(
  238. NAME Gem::ScriptCanvas.Tests
  239. )
  240. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  241. ly_add_target(
  242. NAME ScriptCanvas.Editor.Tests MODULE
  243. NAMESPACE Gem
  244. FILES_CMAKE
  245. scriptcanvasgem_editor_tests_files.cmake
  246. INCLUDE_DIRECTORIES
  247. PRIVATE
  248. Builder
  249. Editor
  250. BUILD_DEPENDENCIES
  251. PRIVATE
  252. AZ::AzCoreTestCommon
  253. AZ::AzTest
  254. Gem::ScriptCanvas.Editor.Static
  255. )
  256. ly_add_googletest(
  257. NAME Gem::ScriptCanvas.Editor.Tests
  258. )
  259. endif()
  260. endif()