CMakeLists.txt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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(SUPERLUMINAL_API_PATH "C:/Program Files/Superluminal/Performance/API" CACHE PATH "Path to the Superluminal 3rd party profiler API folder.")
  9. list(APPEND CMAKE_MODULE_PATH ${SUPERLUMINAL_API_PATH})
  10. if (NOT EXISTS ${SUPERLUMINAL_API_PATH})
  11. message(FATAL_ERROR "Superluminal profiler not found. Either update SUPERLUMINAL_API_PATH cmake variable or download Superluminal from https://superluminal.eu/")
  12. else()
  13. message(STATUS "SuperluminalProfiler Gem uses ${SUPERLUMINAL_API_PATH} (License: Commercial)")
  14. endif()
  15. find_package(SuperluminalAPI REQUIRED)
  16. ly_add_target(
  17. NAME ${gem_name}.Static STATIC
  18. NAMESPACE Gem
  19. FILES_CMAKE
  20. superluminalprofiler_files.cmake
  21. INCLUDE_DIRECTORIES
  22. PUBLIC
  23. Include
  24. PRIVATE
  25. Source
  26. ${SuperluminalAPI_INCLUDE_DIRS}
  27. BUILD_DEPENDENCIES
  28. PUBLIC
  29. AZ::AzCore
  30. AZ::AzFramework
  31. PRIVATE
  32. ${SuperluminalAPI_LIBS_RELEASE}
  33. )
  34. ly_add_target(
  35. NAME ${gem_name} ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  36. NAMESPACE Gem
  37. FILES_CMAKE
  38. superluminalprofiler_shared_files.cmake
  39. INCLUDE_DIRECTORIES
  40. PUBLIC
  41. Include
  42. PRIVATE
  43. Source
  44. BUILD_DEPENDENCIES
  45. PRIVATE
  46. Gem::${gem_name}.Static
  47. )
  48. ly_add_source_properties(
  49. SOURCES
  50. Source/ProfilerModule.cpp
  51. PROPERTY COMPILE_DEFINITIONS
  52. VALUES
  53. O3DE_GEM_NAME=${gem_name}
  54. O3DE_GEM_VERSION=${gem_version})
  55. ly_create_alias(NAME ${gem_name}.Servers NAMESPACE Gem TARGETS Gem::${gem_name})
  56. ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem TARGETS Gem::${gem_name})
  57. ly_create_alias(NAME ${gem_name}.Clients NAMESPACE Gem TARGETS Gem::${gem_name})
  58. ly_create_alias(NAME ${gem_name}.Unified NAMESPACE Gem TARGETS Gem::${gem_name})
  59. ly_create_alias(NAME ${gem_name}.Tools NAMESPACE Gem TARGETS Gem::${gem_name})