CMakeLists.txt 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # Currently we are in the GameJam2021/Code folder: ${CMAKE_CURRENT_LIST_DIR}
  2. # Get the platform specific folder ${pal_dir} for the current folder: ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME}
  3. # Note: ly_get_list_relative_pal_filename will take care of the details for us, as this may be a restricted platform
  4. # in which case it will see if that platform is present here or in the restricted folder.
  5. # i.e. It could here : GameJam2021/Code/Platform/<platorm_name> or
  6. # <restricted_folder>/<platform_name>/GameJam2021/Code
  7. ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${o3de_project_restricted_path} ${o3de_project_path} ${o3de_project_name})
  8. # Now that we have the platform abstraction layer (PAL) folder for this folder, thats where we will find the
  9. # traits for this platform. Traits for a platform are defines for things like whether or not something in this project
  10. # is supported by this platform.
  11. include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
  12. # Now that we have loaded our project traits for this platform, see if this project is even supported on this platform.
  13. # If its not supported we just return after including the unsupported.
  14. if(NOT PAL_TRAIT_GAMEJAM2021_SUPPORTED)
  15. return()
  16. endif()
  17. # We are on a supported platform, so add the GameJam2021 target
  18. # Note: We include the common files and the platform specific files which are set in gamejam2021_files.cmake and
  19. # in ${pal_dir}/gamejam2021_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  20. ly_add_target(
  21. NAME GameJam2021.Static STATIC
  22. NAMESPACE Gem
  23. FILES_CMAKE
  24. gamejam2021_files.cmake
  25. ${pal_dir}/gamejam2021_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  26. INCLUDE_DIRECTORIES
  27. PUBLIC
  28. Include
  29. BUILD_DEPENDENCIES
  30. PRIVATE
  31. AZ::AzGameFramework
  32. Gem::Atom_AtomBridge.Static
  33. )
  34. ly_add_target(
  35. NAME GameJam2021 ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  36. NAMESPACE Gem
  37. FILES_CMAKE
  38. gamejam2021_shared_files.cmake
  39. ${pal_dir}/gamejam2021_shared_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  40. INCLUDE_DIRECTORIES
  41. PUBLIC
  42. Include
  43. BUILD_DEPENDENCIES
  44. PRIVATE
  45. Gem::GameJam2021.Static
  46. AZ::AzCore
  47. )
  48. # if enabled, GameJam2021 is used by all kinds of applications
  49. ly_create_alias(NAME GameJam2021.Builders NAMESPACE Gem TARGETS Gem::GameJam2021)
  50. ly_create_alias(NAME GameJam2021.Tools NAMESPACE Gem TARGETS Gem::GameJam2021)
  51. ly_create_alias(NAME GameJam2021.Clients NAMESPACE Gem TARGETS Gem::GameJam2021)
  52. ly_create_alias(NAME GameJam2021.Servers NAMESPACE Gem TARGETS Gem::GameJam2021)
  53. ################################################################################
  54. # Gem dependencies
  55. ################################################################################
  56. # Enable the specified list of gems from GEM_FILE or GEMS list for this specific project:
  57. ly_enable_gems(PROJECT_NAME GameJam2021 GEM_FILE enabled_gems.cmake)
  58. if(PAL_TRAIT_BUILD_SERVER_SUPPORTED)
  59. # this property causes it to actually make a ServerLauncher.
  60. # if you don't want a Server application, you can remove this and the
  61. # following ly_enable_gems lines.
  62. set_property(GLOBAL APPEND PROPERTY LY_LAUNCHER_SERVER_PROJECTS GameJam2021)
  63. endif()