CMakeLists.txt 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. # Add Tracy dependency using FetchContent
  9. include(FetchContent)
  10. FetchContent_Declare(
  11. Tracy
  12. GIT_REPOSITORY "https://github.com/wolfpld/tracy.git"
  13. GIT_TAG "5d542dc09f3d9378d005092a4ad446bd405f819a" # version 0.11.1
  14. )
  15. set(TRACY_ENABLE ON)
  16. set(TRACY_CALLSTACK ON)
  17. set(TRACY_ON_DEMAND ON)
  18. FetchContent_MakeAvailable(Tracy)
  19. message(STATUS "TracyProfiler gem uses https://github.com/wolfpld/tracy version 0.11.1 (License: BSD-3-Clause)")
  20. # Let's not clutter the root of any IDE folder structure with 3rd party dependencies
  21. # Setting the FOLDER makes it show up there in the solution build in VS and similarly
  22. # any other IDEs that organize in folders.
  23. set_target_properties(
  24. TracyClient
  25. PROPERTIES
  26. FOLDER "3rdParty Dependencies"
  27. )
  28. ly_add_target(
  29. NAME ${gem_name}.Static STATIC
  30. NAMESPACE Gem
  31. FILES_CMAKE
  32. tracyprofiler_files.cmake
  33. INCLUDE_DIRECTORIES
  34. PUBLIC
  35. Include
  36. PRIVATE
  37. Source
  38. ${Tracy_SOURCE_DIR}/public/tracy
  39. COMPILE_DEFINITIONS
  40. PRIVATE
  41. TRACY_ENABLE
  42. BUILD_DEPENDENCIES
  43. PUBLIC
  44. AZ::AzCore
  45. AZ::AzFramework
  46. TracyClient
  47. )
  48. ly_add_target(
  49. NAME ${gem_name} ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  50. NAMESPACE Gem
  51. FILES_CMAKE
  52. tracyprofiler_shared_files.cmake
  53. INCLUDE_DIRECTORIES
  54. PUBLIC
  55. Include
  56. PRIVATE
  57. Source
  58. COMPILE_DEFINITIONS
  59. PRIVATE
  60. TRACY_ENABLE
  61. BUILD_DEPENDENCIES
  62. PRIVATE
  63. Gem::${gem_name}.Static
  64. )
  65. ly_add_source_properties(
  66. SOURCES
  67. Source/ProfilerModule.cpp
  68. PROPERTY COMPILE_DEFINITIONS
  69. VALUES
  70. O3DE_GEM_NAME=${gem_name}
  71. O3DE_GEM_VERSION=${gem_version})
  72. ly_create_alias(NAME ${gem_name}.Servers NAMESPACE Gem TARGETS Gem::${gem_name})
  73. ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem TARGETS Gem::${gem_name})
  74. ly_create_alias(NAME ${gem_name}.Clients NAMESPACE Gem TARGETS Gem::${gem_name})
  75. ly_create_alias(NAME ${gem_name}.Unified NAMESPACE Gem TARGETS Gem::${gem_name})
  76. ly_create_alias(NAME ${gem_name}.Tools NAMESPACE Gem TARGETS Gem::${gem_name})