CMakeLists.txt 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  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. if(NOT PAL_TRAIT_BUILD_HOST_TOOLS)
  9. return()
  10. endif()
  11. include(${CMAKE_CURRENT_SOURCE_DIR}/Platform/${PAL_PLATFORM_NAME}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
  12. # AssetBundlerBatch - CLI Application
  13. ly_add_target(
  14. NAME AssetBundlerBatch.Static STATIC
  15. NAMESPACE AZ
  16. AUTOMOC
  17. FILES_CMAKE
  18. assetbundlerbatch_files.cmake
  19. INCLUDE_DIRECTORIES
  20. PRIVATE
  21. .
  22. BUILD_DEPENDENCIES
  23. PUBLIC
  24. 3rdParty::Qt::Core
  25. 3rdParty::Qt::Gui
  26. 3rdParty::Qt::Widgets
  27. AZ::AzToolsFramework
  28. ${additional_dependencies}
  29. )
  30. ly_add_target(
  31. NAME AssetBundlerBatch EXECUTABLE
  32. NAMESPACE AZ
  33. FILES_CMAKE
  34. assetbundlerbatch_exe_files.cmake
  35. COMPILE_DEFINITIONS
  36. PRIVATE
  37. AB_BATCH_MODE
  38. INCLUDE_DIRECTORIES
  39. PRIVATE
  40. .
  41. BUILD_DEPENDENCIES
  42. PRIVATE
  43. AZ::AssetBundlerBatch.Static
  44. )
  45. # Adds a specialized .setreg to identify gems enabled in the active project.
  46. # This associates the AssetBundlerBatch target with the .Builders gem variants.
  47. ly_set_gem_variant_to_load(TARGETS AssetBundlerBatch VARIANTS Builders)
  48. # AssetBundler - Qt GUI Application
  49. ly_add_target(
  50. NAME AssetBundler ${PAL_TRAIT_BUILD_ASSETBUNDLER_APPLICATION_TYPE}
  51. NAMESPACE AZ
  52. AUTOMOC
  53. AUTOUIC
  54. AUTORCC
  55. FILES_CMAKE
  56. assetbundlergui_files.cmake
  57. assetbundler_exe_files.cmake
  58. Platform/${PAL_PLATFORM_NAME}/assetbundlergui_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  59. INCLUDE_DIRECTORIES
  60. PUBLIC
  61. Platform/${PAL_PLATFORM_NAME}
  62. PRIVATE
  63. .
  64. BUILD_DEPENDENCIES
  65. PUBLIC
  66. 3rdParty::Qt::Core
  67. 3rdParty::Qt::Gui
  68. 3rdParty::Qt::Widgets
  69. AZ::AzToolsFramework
  70. AZ::AssetBundlerBatch.Static
  71. ${additional_dependencies}
  72. )
  73. if(LY_DEFAULT_PROJECT_PATH)
  74. set_property(TARGET AssetBundler AssetBundlerBatch APPEND PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "--project-path=\"${LY_DEFAULT_PROJECT_PATH}\"")
  75. endif()
  76. # Adds a specialized .setreg to identify gems enabled in the active project.
  77. # This associates the AssetBundler target with the .Builders gem variants.
  78. ly_set_gem_variant_to_load(TARGETS AssetBundler VARIANTS Builders)
  79. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  80. ly_add_target(
  81. NAME AssetBundler.Tests EXECUTABLE
  82. NAMESPACE AZ
  83. FILES_CMAKE
  84. assetbundlerbatch_test_files.cmake
  85. INCLUDE_DIRECTORIES
  86. PRIVATE
  87. .
  88. BUILD_DEPENDENCIES
  89. PRIVATE
  90. AZ::AzTest
  91. AZ::AssetBundlerBatch.Static
  92. AZ::AzFrameworkTestShared
  93. )
  94. ly_add_googletest(
  95. NAME AZ::AssetBundler.Tests
  96. TEST_COMMAND $<TARGET_FILE:AZ::AssetBundler.Tests> --unittest
  97. )
  98. # Copy test files needed for asset processor test to the executable directory
  99. # This allows the test to reference its files using a portable path that can be provided
  100. # to users on other machines
  101. ly_add_target_files(
  102. TARGETS
  103. AssetBundler.Tests
  104. FILES
  105. ${CMAKE_CURRENT_SOURCE_DIR}/tests/AssetProcessorPlatformConfig.setreg
  106. OUTPUT_SUBDIRECTORY
  107. AssetBundler.Tests.dir
  108. )
  109. ly_add_target_files(
  110. TARGETS
  111. AssetBundler.Tests
  112. FILES
  113. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Assets/Engine/SeedAssetList.seed
  114. OUTPUT_SUBDIRECTORY
  115. AssetBundler.Tests.dir/Assets/Engine
  116. )
  117. ly_add_target_files(
  118. TARGETS
  119. AssetBundler.Tests
  120. FILES
  121. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/AssetProcessorGamePlatformConfig.setreg
  122. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/project.json
  123. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/SeedAssetList.seed
  124. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/SeedAssetListObjectStreamXML.seed
  125. OUTPUT_SUBDIRECTORY
  126. AssetBundler.Tests.dir/DummyProject
  127. )
  128. ly_add_target_files(
  129. TARGETS
  130. AssetBundler.Tests
  131. FILES
  132. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemA/AssetProcessorGemConfig.setreg
  133. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemA/gem.json
  134. OUTPUT_SUBDIRECTORY
  135. AssetBundler.Tests.dir/Gems/GemA
  136. )
  137. ly_add_target_files(
  138. TARGETS
  139. AssetBundler.Tests
  140. FILES
  141. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemA/Assets/seedList.seed
  142. OUTPUT_SUBDIRECTORY
  143. AssetBundler.Tests.dir/Gems/GemA/Assets
  144. )
  145. ly_add_target_files(
  146. TARGETS
  147. AssetBundler.Tests
  148. FILES
  149. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/gem.json
  150. OUTPUT_SUBDIRECTORY
  151. AssetBundler.Tests.dir/Gems/GemB
  152. )
  153. ly_add_target_files(
  154. TARGETS
  155. AssetBundler.Tests
  156. FILES
  157. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/seedList.seed
  158. OUTPUT_SUBDIRECTORY
  159. AssetBundler.Tests.dir/Gems/GemB/Assets
  160. )
  161. ly_add_target_files(
  162. TARGETS
  163. AssetBundler.Tests
  164. FILES
  165. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/Platforms/GemBSharedAssetList.seed
  166. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/Platforms/randomfile.txt
  167. OUTPUT_SUBDIRECTORY
  168. AssetBundler.Tests.dir/Gems/GemB/Assets/Platforms
  169. )
  170. ly_add_target_files(
  171. TARGETS
  172. AssetBundler.Tests
  173. FILES
  174. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/Platforms/ios/AssetSeedList.seed
  175. OUTPUT_SUBDIRECTORY
  176. AssetBundler.Tests.dir/Gems/GemB/Assets/Platforms/ios
  177. )
  178. ly_add_target_files(
  179. TARGETS
  180. AssetBundler.Tests
  181. FILES
  182. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemC/gem.json
  183. OUTPUT_SUBDIRECTORY
  184. AssetBundler.Tests.dir/Gems/GemC
  185. )
  186. endif()