CMakeLists.txt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #
  2. # Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  3. #
  4. # SPDX-License-Identifier: Apache-2.0 OR MIT
  5. #
  6. #
  7. ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
  8. ly_add_target(
  9. NAME MultiplayerSample.Static STATIC
  10. NAMESPACE Gem
  11. FILES_CMAKE
  12. multiplayersample_files.cmake
  13. multiplayersample_autogen_files.cmake
  14. ${pal_dir}/multiplayersample_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  15. INCLUDE_DIRECTORIES
  16. PRIVATE
  17. Source
  18. .
  19. PUBLIC
  20. Include
  21. BUILD_DEPENDENCIES
  22. PUBLIC
  23. AZ::AzGameFramework
  24. AZ::AzNetworking
  25. Gem::Multiplayer
  26. Gem::EMotionFXStaticLib
  27. Gem::PhysX
  28. Gem::StartingPointInput
  29. PRIVATE
  30. Gem::LmbrCentral.Static
  31. Gem::Multiplayer.Static
  32. AUTOGEN_RULES
  33. *.AutoComponent.xml,AutoComponent_Header.jinja,$path/$fileprefix.AutoComponent.h
  34. *.AutoComponent.xml,AutoComponent_Source.jinja,$path/$fileprefix.AutoComponent.cpp
  35. *.AutoComponent.xml,AutoComponentTypes_Header.jinja,$path/AutoComponentTypes.h
  36. *.AutoComponent.xml,AutoComponentTypes_Source.jinja,$path/AutoComponentTypes.cpp
  37. )
  38. ly_add_target(
  39. NAME MultiplayerSample ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  40. NAMESPACE Gem
  41. FILES_CMAKE
  42. multiplayersample_shared_files.cmake
  43. ../../multiplayersample_asset_files.cmake
  44. INCLUDE_DIRECTORIES
  45. PRIVATE
  46. Source
  47. .
  48. PUBLIC
  49. Include
  50. BUILD_DEPENDENCIES
  51. PRIVATE
  52. Gem::MultiplayerSample.Static
  53. Gem::Atom_AtomBridge.Static
  54. )
  55. # if enabled, MultiplayerSample is used by all kinds of applications
  56. ly_create_alias(NAME MultiplayerSample.Builders NAMESPACE Gem TARGETS Gem::MultiplayerSample)
  57. ly_create_alias(NAME MultiplayerSample.Tools NAMESPACE Gem TARGETS Gem::MultiplayerSample)
  58. ly_create_alias(NAME MultiplayerSample.Clients NAMESPACE Gem TARGETS Gem::MultiplayerSample)
  59. ly_create_alias(NAME MultiplayerSample.Servers NAMESPACE Gem TARGETS Gem::MultiplayerSample)
  60. ################################################################################
  61. # Gem dependencies
  62. ################################################################################
  63. # The GameLauncher uses "Clients" gem variants:
  64. ly_enable_gems(PROJECT_NAME MultiplayerSample GEM_FILE enabled_gems.cmake
  65. TARGETS MultiplayerSample.GameLauncher
  66. VARIANTS Clients)
  67. # If we build a server, then apply the gems to the server
  68. if(PAL_TRAIT_BUILD_SERVER_SUPPORTED)
  69. # if we're making a server, then add the "Server" gem variants to it:
  70. ly_enable_gems(PROJECT_NAME MultiplayerSample GEM_FILE enabled_gems.cmake
  71. TARGETS MultiplayerSample.ServerLauncher
  72. VARIANTS Servers)
  73. set_property(GLOBAL APPEND PROPERTY LY_LAUNCHER_SERVER_PROJECTS MultiplayerSample)
  74. endif()
  75. if (PAL_TRAIT_BUILD_HOST_TOOLS)
  76. # The Editor uses "Tools" gem variants:
  77. ly_enable_gems(
  78. PROJECT_NAME MultiplayerSample GEM_FILE enabled_gems.cmake
  79. TARGETS Editor
  80. VARIANTS Tools)
  81. # The pipeline tools use "Builders" gem variants:
  82. ly_enable_gems(
  83. PROJECT_NAME MultiplayerSample GEM_FILE enabled_gems.cmake
  84. TARGETS Editor AssetBuilder AssetProcessor AssetProcessorBatch
  85. VARIANTS Builders)
  86. endif()