CMakeLists.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  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. include(AzFramework/feature_options.cmake)
  9. o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
  10. set(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
  11. if(LY_PIX_ENABLED)
  12. set(AZ_FRAMEWORK_NATIVEUI_PIX_BUILD_DEPENDENCIES 3rdParty::pix)
  13. endif()
  14. ly_add_target(
  15. NAME AzFramework ${PAL_TRAIT_MONOLITHIC_DRIVEN_LIBRARY_TYPE}
  16. NAMESPACE AZ
  17. FILES_CMAKE
  18. AzFramework/azframework_files.cmake
  19. ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  20. PLATFORM_INCLUDE_FILES
  21. ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  22. COMPILE_DEFINITIONS
  23. PRIVATE
  24. AZF_EXPORTS
  25. INCLUDE_DIRECTORIES
  26. PUBLIC
  27. .
  28. ${pal_dir}
  29. PRIVATE
  30. ${common_dir}
  31. BUILD_DEPENDENCIES
  32. PRIVATE
  33. AZ::AzCore
  34. PUBLIC
  35. AZ::AzNetworking
  36. 3rdParty::zstd
  37. 3rdParty::lz4
  38. )
  39. ly_add_target(
  40. NAME AzFramework.NativeUI ${PAL_TRAIT_MONOLITHIC_DRIVEN_LIBRARY_TYPE}
  41. NAMESPACE AZ
  42. FILES_CMAKE
  43. AzFramework/azframework_nativeui_files.cmake
  44. ${pal_dir}/platform_nativeui_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  45. PLATFORM_INCLUDE_FILES
  46. ${pal_dir}/platform_nativeui_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  47. COMPILE_DEFINITIONS
  48. PRIVATE
  49. AZF_EXPORTS
  50. INCLUDE_DIRECTORIES
  51. PUBLIC
  52. .
  53. ${pal_dir}
  54. PRIVATE
  55. ${common_dir}
  56. BUILD_DEPENDENCIES
  57. PRIVATE
  58. AZ::AzCore
  59. AZ::AzFramework
  60. ${AZ_FRAMEWORK_NATIVEUI_PIX_BUILD_DEPENDENCIES}
  61. )
  62. set(LY_SEARCH_MODE_DEFINE $<$<BOOL:"${LY_ARCHIVE_FILE_SEARCH_MODE}">:LY_ARCHIVE_FILE_SEARCH_MODE=${LY_ARCHIVE_FILE_SEARCH_MODE}>)
  63. ly_add_source_properties(
  64. SOURCES
  65. AzFramework/Archive/ArchiveVars.cpp
  66. PROPERTY COMPILE_DEFINITIONS
  67. VALUES ${LY_SEARCH_MODE_DEFINE})
  68. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  69. o3de_pal_dir(test_pal_dir ${CMAKE_CURRENT_LIST_DIR}/Tests/Platform/${PAL_PLATFORM_NAME} ${O3DE_ENGINE_RESTRICTED_PATH} ${LY_ROOT_FOLDER})
  70. ly_add_target(
  71. NAME AzFrameworkTestShared STATIC
  72. NAMESPACE AZ
  73. FILES_CMAKE
  74. Tests/framework_shared_tests_files.cmake
  75. AzFramework/Physics/physics_mock_files.cmake
  76. Tests/terrain_mock_files.cmake
  77. INCLUDE_DIRECTORIES
  78. PUBLIC
  79. Tests
  80. BUILD_DEPENDENCIES
  81. PRIVATE
  82. AZ::AzCore
  83. AZ::AzFramework
  84. PUBLIC
  85. AZ::AzTest
  86. AZ::AzTestShared
  87. )
  88. if(PAL_TRAIT_BUILD_HOST_TOOLS)
  89. ly_add_target(
  90. NAME ProcessLaunchTest EXECUTABLE
  91. NAMESPACE AZ
  92. FILES_CMAKE
  93. Tests/process_launch_test_files.cmake
  94. INCLUDE_DIRECTORIES
  95. PRIVATE
  96. Tests
  97. BUILD_DEPENDENCIES
  98. PRIVATE
  99. AZ::AzCore
  100. AZ::AzFramework
  101. )
  102. ly_add_target(
  103. NAME AzFramework.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  104. NAMESPACE AZ
  105. FILES_CMAKE
  106. Tests/frameworktests_files.cmake
  107. ${test_pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  108. INCLUDE_DIRECTORIES
  109. PRIVATE
  110. Tests
  111. ${test_pal_dir}
  112. BUILD_DEPENDENCIES
  113. PRIVATE
  114. AZ::AzFramework
  115. AZ::AzTest
  116. AZ::AzTestShared
  117. AZ::AzFrameworkTestShared
  118. RUNTIME_DEPENDENCIES
  119. AZ::ProcessLaunchTest
  120. )
  121. ly_add_googletest(
  122. NAME AZ::AzFramework.Tests
  123. LABELS REQUIRES_tiaf;TIAF_shard_fixture
  124. )
  125. ly_add_target(
  126. NAME AzFramework.NativeUI.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  127. NAMESPACE AZ
  128. FILES_CMAKE
  129. Tests/framework_nativeui_tests_files.cmake
  130. INCLUDE_DIRECTORIES
  131. PRIVATE
  132. Tests
  133. ${test_pal_dir}
  134. BUILD_DEPENDENCIES
  135. PRIVATE
  136. AZ::AzFramework
  137. AZ::AzFramework.NativeUI
  138. AZ::AzTest
  139. AZ::AzTestShared
  140. AZ::AzFrameworkTestShared
  141. RUNTIME_DEPENDENCIES
  142. AZ::ProcessLaunchTest
  143. )
  144. ly_add_googletest(
  145. NAME AZ::AzFramework.NativeUI.Tests
  146. )
  147. include(${test_pal_dir}/platform_specific_test_targets.cmake)
  148. endif()
  149. endif()