CMakeLists.txt 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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. if(TARGET AssetBundlerBatch)
  46. # Adds a specialized .setreg to identify gems enabled in the active project.
  47. # This associates the AssetBundlerBatch target with the .Builders gem variants.
  48. ly_set_gem_variant_to_load(TARGETS AssetBundlerBatch VARIANTS Builders)
  49. set_source_files_properties(
  50. source/utils/AssetBundlerBatchBuildTarget.cpp
  51. PROPERTIES
  52. COMPILE_DEFINITIONS
  53. O3DE_CMAKE_TARGET="AssetBundlerBatch"
  54. )
  55. else()
  56. message(FATAL_ERROR "Cannot set O3DE_CMAKE_TARGET define to AssetBundlerBatch as the target doesn't exist anymore."
  57. " Perhaps it has been renamed")
  58. endif()
  59. # AssetBundler - Qt GUI Application
  60. ly_add_target(
  61. NAME AssetBundler ${PAL_TRAIT_BUILD_ASSETBUNDLER_APPLICATION_TYPE}
  62. NAMESPACE AZ
  63. AUTOMOC
  64. AUTOUIC
  65. AUTORCC
  66. FILES_CMAKE
  67. assetbundlergui_files.cmake
  68. assetbundler_exe_files.cmake
  69. Platform/${PAL_PLATFORM_NAME}/assetbundlergui_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  70. INCLUDE_DIRECTORIES
  71. PUBLIC
  72. Platform/${PAL_PLATFORM_NAME}
  73. PRIVATE
  74. .
  75. BUILD_DEPENDENCIES
  76. PUBLIC
  77. 3rdParty::Qt::Core
  78. 3rdParty::Qt::Gui
  79. 3rdParty::Qt::Widgets
  80. AZ::AzToolsFramework
  81. AZ::AssetBundlerBatch.Static
  82. ${additional_dependencies}
  83. )
  84. if(LY_DEFAULT_PROJECT_PATH)
  85. set_property(TARGET AssetBundler AssetBundlerBatch APPEND PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "--project-path=\"${LY_DEFAULT_PROJECT_PATH}\"")
  86. endif()
  87. if(TARGET AssetBundler)
  88. # Adds a specialized .setreg to identify gems enabled in the active project.
  89. # This associates the AssetBundler target with the .Builders gem variants.
  90. ly_set_gem_variant_to_load(TARGETS AssetBundler VARIANTS Builders)
  91. set_source_files_properties(
  92. source/utils/AssetBundlerBuildTarget.cpp
  93. PROPERTIES
  94. COMPILE_DEFINITIONS
  95. O3DE_CMAKE_TARGET="AssetBundler"
  96. )
  97. else()
  98. message(FATAL_ERROR "Cannot set O3DE_CMAKE_TARGET define to AssetBundler as the target doesn't exist anymore."
  99. " Perhaps it has been renamed")
  100. endif()
  101. if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  102. ly_add_target(
  103. NAME AssetBundler.Tests EXECUTABLE
  104. NAMESPACE AZ
  105. FILES_CMAKE
  106. assetbundlerbatch_test_files.cmake
  107. INCLUDE_DIRECTORIES
  108. PRIVATE
  109. .
  110. BUILD_DEPENDENCIES
  111. PRIVATE
  112. AZ::AzTest
  113. AZ::AssetBundlerBatch.Static
  114. AZ::AzFrameworkTestShared
  115. )
  116. ly_add_googletest(
  117. NAME AZ::AssetBundler.Tests
  118. TEST_COMMAND $<TARGET_FILE:AZ::AssetBundler.Tests> --unittest
  119. )
  120. # Copy test files needed for asset processor test to the executable directory
  121. # This allows the test to reference its files using a portable path that can be provided
  122. # to users on other machines
  123. ly_add_target_files(
  124. TARGETS
  125. AssetBundler.Tests
  126. FILES
  127. ${CMAKE_CURRENT_SOURCE_DIR}/tests/AssetProcessorPlatformConfig.setreg
  128. OUTPUT_SUBDIRECTORY
  129. AssetBundler.Tests.dir
  130. )
  131. ly_add_target_files(
  132. TARGETS
  133. AssetBundler.Tests
  134. FILES
  135. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Assets/Engine/SeedAssetList.seed
  136. OUTPUT_SUBDIRECTORY
  137. AssetBundler.Tests.dir/Assets/Engine
  138. )
  139. ly_add_target_files(
  140. TARGETS
  141. AssetBundler.Tests
  142. FILES
  143. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/AssetProcessorGamePlatformConfig.setreg
  144. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/project.json
  145. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/SeedAssetList.seed
  146. ${CMAKE_CURRENT_SOURCE_DIR}/tests/DummyProject/SeedAssetListObjectStreamXML.seed
  147. OUTPUT_SUBDIRECTORY
  148. AssetBundler.Tests.dir/DummyProject
  149. )
  150. ly_add_target_files(
  151. TARGETS
  152. AssetBundler.Tests
  153. FILES
  154. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemA/AssetProcessorGemConfig.setreg
  155. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemA/gem.json
  156. OUTPUT_SUBDIRECTORY
  157. AssetBundler.Tests.dir/Gems/GemA
  158. )
  159. ly_add_target_files(
  160. TARGETS
  161. AssetBundler.Tests
  162. FILES
  163. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemA/Assets/seedList.seed
  164. OUTPUT_SUBDIRECTORY
  165. AssetBundler.Tests.dir/Gems/GemA/Assets
  166. )
  167. ly_add_target_files(
  168. TARGETS
  169. AssetBundler.Tests
  170. FILES
  171. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/gem.json
  172. OUTPUT_SUBDIRECTORY
  173. AssetBundler.Tests.dir/Gems/GemB
  174. )
  175. ly_add_target_files(
  176. TARGETS
  177. AssetBundler.Tests
  178. FILES
  179. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/seedList.seed
  180. OUTPUT_SUBDIRECTORY
  181. AssetBundler.Tests.dir/Gems/GemB/Assets
  182. )
  183. ly_add_target_files(
  184. TARGETS
  185. AssetBundler.Tests
  186. FILES
  187. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/Platforms/GemBSharedAssetList.seed
  188. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/Platforms/randomfile.txt
  189. OUTPUT_SUBDIRECTORY
  190. AssetBundler.Tests.dir/Gems/GemB/Assets/Platforms
  191. )
  192. ly_add_target_files(
  193. TARGETS
  194. AssetBundler.Tests
  195. FILES
  196. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemB/Assets/Platforms/ios/AssetSeedList.seed
  197. OUTPUT_SUBDIRECTORY
  198. AssetBundler.Tests.dir/Gems/GemB/Assets/Platforms/ios
  199. )
  200. ly_add_target_files(
  201. TARGETS
  202. AssetBundler.Tests
  203. FILES
  204. ${CMAKE_CURRENT_SOURCE_DIR}/tests/Gems/GemC/gem.json
  205. OUTPUT_SUBDIRECTORY
  206. AssetBundler.Tests.dir/Gems/GemC
  207. )
  208. endif()