CMakeLists.txt 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. #
  2. # All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
  3. # its licensors.
  4. #
  5. # For complete copyright and license terms please see the LICENSE at the root of this
  6. # distribution (the "License"). All use of this software is governed by the License,
  7. # or, if provided, by the license below or the license accompanying this file. Do not
  8. # remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
  9. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. #
  11. ly_get_list_relative_pal_filename(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME})
  12. ly_get_list_relative_pal_filename(common_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/Common)
  13. include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) #for PAL_TRAIT_AUDIO_ENGINE_WWISE Traits
  14. set(AUDIOENGINEWWISE_COMPILEDEFINITIONS
  15. $<IF:$<CONFIG:Release>,WWISE_RELEASE,ENABLE_AUDIO_LOGGING>
  16. )
  17. find_package(Wwise MODULE)
  18. if (NOT Wwise_FOUND)
  19. message(STATUS "** Update the LY_WWISE_INSTALL_PATH cache variable if you intend to use Wwise.")
  20. endif()
  21. ################################################################################
  22. # Server / Unsupported
  23. ################################################################################
  24. if (PAL_TRAIT_BUILD_SERVER_SUPPORTED OR PAL_TRAIT_AUDIO_ENGINE_WWISE_USE_STUB OR NOT Wwise_FOUND)
  25. # Stub gem for server and unsupported platforms. Audio Engine Wwise is client only
  26. ly_add_target(
  27. NAME AudioEngineWwise.Stub ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  28. NAMESPACE Gem
  29. FILES_CMAKE
  30. audioenginewwise_stub_files.cmake
  31. BUILD_DEPENDENCIES
  32. PRIVATE
  33. AZ::AzCore
  34. )
  35. endif()
  36. if (PAL_TRAIT_AUDIO_ENGINE_WWISE_USE_STUB OR NOT Wwise_FOUND)
  37. # setup aliases so stubs will be used if something references AudioEngineWwise(.Editor)
  38. add_library(Gem::AudioEngineWwise ALIAS AudioEngineWwise.Stub)
  39. add_library(Gem::AudioEngineWwise.Editor ALIAS AudioEngineWwise.Stub)
  40. return()
  41. endif()
  42. ################################################################################
  43. # Runtime / Game
  44. ################################################################################
  45. ly_add_target(
  46. NAME AudioEngineWwise.Static STATIC
  47. NAMESPACE Gem
  48. FILES_CMAKE
  49. audioenginewwise_files.cmake
  50. ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
  51. PLATFORM_INCLUDE_FILES
  52. ${pal_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}.cmake
  53. INCLUDE_DIRECTORIES
  54. PRIVATE
  55. Source
  56. Source/Engine
  57. ${pal_dir}
  58. ${common_dir}
  59. COMPILE_DEFINITIONS
  60. PUBLIC
  61. ${AUDIOENGINEWWISE_COMPILEDEFINITIONS}
  62. BUILD_DEPENDENCIES
  63. PUBLIC
  64. 3rdParty::Wwise
  65. Legacy::CryCommon
  66. Gem::AudioSystem.Static
  67. )
  68. ly_add_target(
  69. NAME AudioEngineWwise ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
  70. NAMESPACE Gem
  71. FILES_CMAKE
  72. audioenginewwise_shared_files.cmake
  73. INCLUDE_DIRECTORIES
  74. PRIVATE
  75. Source
  76. Source/Engine
  77. ${pal_dir}
  78. ${common_dir}
  79. COMPILE_DEFINITIONS
  80. PUBLIC
  81. ${AUDIOENGINEWWISE_COMPILEDEFINITIONS}
  82. BUILD_DEPENDENCIES
  83. PRIVATE
  84. Gem::AudioEngineWwise.Static
  85. )
  86. ################################################################################
  87. # Tests
  88. ################################################################################
  89. if (PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  90. ly_add_target(
  91. NAME AudioEngineWwise.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  92. NAMESPACE Gem
  93. FILES_CMAKE
  94. audioenginewwise_tests_files.cmake
  95. audioenginewwise_shared_files.cmake
  96. INCLUDE_DIRECTORIES
  97. PRIVATE
  98. Tests
  99. Source
  100. Source/Engine
  101. ${pal_dir}
  102. ${common_dir}
  103. BUILD_DEPENDENCIES
  104. PRIVATE
  105. AZ::AzTest
  106. Gem::AudioEngineWwise.Static
  107. )
  108. ly_add_googletest(
  109. NAME Gem::AudioEngineWwise.Tests
  110. )
  111. list(APPEND testTargets AudioEngineWwise.Tests)
  112. ly_add_target_files(
  113. TARGETS
  114. ${testTargets}
  115. FILES
  116. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/EmptyControl.xml
  117. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/MissingPreloads.xml
  118. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/MissingWwiseFileNode.xml
  119. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/MultiplePreloadsMultipleBanks.xml
  120. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/MultiplePreloadsOneBank.xml
  121. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/OnePreloadMultipleBanks.xml
  122. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/OnePreloadOneBank.xml
  123. OUTPUT_SUBDIRECTORY
  124. Test.Assets/Gems/AudioEngineWwise/AudioControls
  125. )
  126. ly_add_target_files(
  127. TARGETS
  128. ${testTargets}
  129. FILES
  130. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MissingAtlPlatformsNode.xml
  131. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MissingConfigGroupNameAttribute.xml
  132. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MissingPlatformNameAttributeOnePreload.xml
  133. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MissingPlatformNode.xml
  134. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MissingWwiseFileNode.xml
  135. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MultiplePreloadsMultipleBanks.xml
  136. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/MultiplePreloadsOneBank.xml
  137. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/NoConfigGroups.xml
  138. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/OnePreloadMultipleBanks.xml
  139. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/OnePreloadOneBank.xml
  140. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/AudioControls/Legacy/WrongConfigGroup.xml
  141. OUTPUT_SUBDIRECTORY
  142. Test.Assets/Gems/AudioEngineWwise/AudioControls/Legacy
  143. )
  144. ly_add_target_files(
  145. TARGETS
  146. ${testTargets}
  147. FILES
  148. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank1.bankdeps
  149. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank2.bankdeps
  150. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank3.bankdeps
  151. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank4.bankdeps
  152. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank5.bankdeps
  153. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank6.bankdeps
  154. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank7.bankdeps
  155. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank8.bankdeps
  156. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/test_bank9.bankdeps
  157. OUTPUT_SUBDIRECTORY
  158. Test.Assets/Gems/AudioEngineWwise/sounds/wwise
  159. )
  160. ly_add_target_files(
  161. TARGETS
  162. ${testTargets}
  163. FILES
  164. ${CMAKE_CURRENT_SOURCE_DIR}/Tests/Sounds/wwise/soundbanks/init.bnk
  165. OUTPUT_SUBDIRECTORY
  166. Test.Assets/Gems/AudioEngineWwise/sounds/wwise/soundbanks
  167. )
  168. endif()
  169. ################################################################################
  170. # Tools / Editor
  171. ################################################################################
  172. if (PAL_TRAIT_BUILD_HOST_TOOLS)
  173. ly_add_target(
  174. NAME AudioEngineWwise.Editor.Static STATIC
  175. NAMESPACE Gem
  176. AUTORCC
  177. FILES_CMAKE
  178. audioenginewwise_editor_files.cmake
  179. INCLUDE_DIRECTORIES
  180. PRIVATE
  181. Source/Engine
  182. Source/Editor
  183. ${pal_dir}
  184. Source
  185. BUILD_DEPENDENCIES
  186. PRIVATE
  187. Legacy::EditorCore
  188. PUBLIC
  189. AZ::AssetBuilderSDK
  190. Gem::AudioEngineWwise.Static
  191. Gem::AudioSystem.Editor
  192. )
  193. ly_add_target(
  194. NAME AudioEngineWwise.Editor GEM_MODULE
  195. NAMESPACE Gem
  196. FILES_CMAKE
  197. audioenginewwise_editor_shared_files.cmake
  198. COMPILE_DEFINITIONS
  199. PRIVATE
  200. AUDIO_ENGINE_WWISE_EDITOR
  201. INCLUDE_DIRECTORIES
  202. PRIVATE
  203. Source/Builder
  204. Source/Engine
  205. Source/Editor
  206. ${pal_dir}
  207. Source
  208. BUILD_DEPENDENCIES
  209. PRIVATE
  210. Gem::AudioEngineWwise.Editor.Static
  211. RUNTIME_DEPENDENCIES
  212. Gem::AudioSystem.Editor
  213. )
  214. if (PAL_TRAIT_BUILD_TESTS_SUPPORTED)
  215. ly_add_target(
  216. NAME AudioEngineWwise.Editor.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
  217. NAMESPACE Gem
  218. FILES_CMAKE
  219. audioenginewwise_editor_tests_files.cmake
  220. INCLUDE_DIRECTORIES
  221. PRIVATE
  222. Tests
  223. Source/Editor
  224. Source
  225. BUILD_DEPENDENCIES
  226. PRIVATE
  227. AZ::AzTest
  228. Gem::AudioEngineWwise.Editor.Static
  229. Legacy::CryCommon
  230. )
  231. ly_add_googletest(
  232. NAME Gem::AudioEngineWwise.Editor.Tests
  233. )
  234. endif()
  235. endif()