mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-12-12 12:25:59 +03:00
feat(build): to compile with FMOD support, WHOA_BUILD_FMOD must be passed into CMake
This commit is contained in:
parent
5f3eadea1e
commit
2a46ce4d6d
@ -57,7 +57,7 @@ endif()
|
|||||||
if (WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX)
|
if (WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX)
|
||||||
target_link_libraries(gx
|
target_link_libraries(gx
|
||||||
PRIVATE
|
PRIVATE
|
||||||
SDL3::SDL3-static
|
SDL2::SDL2-static
|
||||||
libglew_static
|
libglew_static
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -13,6 +13,9 @@ target_link_libraries(sound
|
|||||||
PRIVATE
|
PRIVATE
|
||||||
ui
|
ui
|
||||||
util
|
util
|
||||||
PUBLIC
|
|
||||||
fmod
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(WHOA_BUILD_FMOD)
|
||||||
|
target_link_libraries(sound PUBLIC fmod)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|||||||
223
vendor/CMakeLists.txt
vendored
223
vendor/CMakeLists.txt
vendored
@ -2,7 +2,7 @@ add_subdirectory(freetype-2.0.9)
|
|||||||
add_subdirectory(lua-5.1.3)
|
add_subdirectory(lua-5.1.3)
|
||||||
add_subdirectory(stormlib-9)
|
add_subdirectory(stormlib-9)
|
||||||
|
|
||||||
if (WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX)
|
if(WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX)
|
||||||
set(SDL_SHARED OFF)
|
set(SDL_SHARED OFF)
|
||||||
set(SDL_STATIC ON)
|
set(SDL_STATIC ON)
|
||||||
add_subdirectory(sdl-2.30.5)
|
add_subdirectory(sdl-2.30.5)
|
||||||
@ -14,114 +14,125 @@ endif()
|
|||||||
|
|
||||||
# FMOD
|
# FMOD
|
||||||
|
|
||||||
add_library(fmod SHARED IMPORTED GLOBAL)
|
if(defined WHOA_BUILD_FMOD)
|
||||||
|
add_library(fmod SHARED IMPORTED GLOBAL)
|
||||||
# Determine which flavor of FMOD to use:
|
# Determine which flavor of FMOD to use:
|
||||||
# - macOS versions from 10.9 down prefer FMOD Ex
|
# - macOS versions from 10.9 down prefer FMOD Ex
|
||||||
# - macOS versions from 10.10 up prefer FMOD Core
|
# - macOS versions from 10.10 up prefer FMOD Core
|
||||||
# - Windows versions from Vista down prefer FMOD Ex
|
# - Windows versions from Vista down prefer FMOD Ex
|
||||||
# - Windows versions from 7 up prefer FMOD Core
|
# - Windows versions from 7 up prefer FMOD Core
|
||||||
# - All versions of Linux prefer FMOD Core
|
# - All versions of Linux prefer FMOD Core
|
||||||
# - Any missed detection prefers FMOD Core
|
# - Any missed detection prefers FMOD Core
|
||||||
if(WHOA_SYSTEM_MAC AND WHOA_SYSTEM_VERSION LESS WHOA_MAC_10_10)
|
if(WHOA_SYSTEM_MAC AND WHOA_SYSTEM_VERSION LESS WHOA_MAC_10_10)
|
||||||
set(WHOA_FMOD_EX 1)
|
set(WHOA_FMOD_EX 1)
|
||||||
target_compile_definitions(fmod INTERFACE -DWHOA_FMOD_EX=1)
|
target_compile_definitions(fmod INTERFACE -DWHOA_FMOD_EX=1)
|
||||||
elseif(WHOA_SYSTEM_WIN AND WHOA_SYSTEM_VERSION LESS WHOA_WIN_7)
|
elseif(WHOA_SYSTEM_WIN AND WHOA_SYSTEM_VERSION LESS WHOA_WIN_7)
|
||||||
set(WHOA_FMOD_EX 1)
|
set(WHOA_FMOD_EX 1)
|
||||||
target_compile_definitions(fmod INTERFACE -DWHOA_FMOD_EX=1)
|
target_compile_definitions(fmod INTERFACE -DWHOA_FMOD_EX=1)
|
||||||
else()
|
else()
|
||||||
set(WHOA_FMOD_CORE 1)
|
set(WHOA_FMOD_CORE 1)
|
||||||
target_compile_definitions(fmod INTERFACE -DWHOA_FMOD_CORE=1)
|
target_compile_definitions(fmod INTERFACE -DWHOA_FMOD_CORE=1)
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WHOA_FMOD_EX)
|
|
||||||
set(FMOD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/fmodex-4.24.16")
|
|
||||||
else()
|
|
||||||
set(FMOD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/fmodcore-2.02.18")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WHOA_SYSTEM_WIN)
|
|
||||||
if(WHOA_ARCH_32)
|
|
||||||
if(WHOA_FMOD_EX)
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86/lib/fmodex_vc.lib
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/win-x86/lib/fmodex.dll
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/win-x86/lib/fmodex.dll DESTINATION "bin")
|
|
||||||
else()
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86/lib/fmod_vc.lib
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/win-x86/lib/fmod.dll
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/win-x86/lib/fmod.dll DESTINATION "bin")
|
|
||||||
endif()
|
|
||||||
elseif(WHOA_ARCH_64)
|
|
||||||
if(WHOA_FMOD_EX)
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86_64/lib/fmodex64_vc.lib
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/win-x86_64/lib/fmodex64.dll
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86_64/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/win-x86_64/lib/fmodex64.dll DESTINATION "bin")
|
|
||||||
else()
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86_64/lib/fmod_vc.lib
|
|
||||||
IMPORTED_LOCATION FMOD_DIR}/win-x86_64/lib/fmod.dll
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86_64/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/win-x86_64/lib/fmod.dll DESTINATION "bin")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
elseif(WHOA_SYSTEM_LINUX)
|
|
||||||
if(WHOA_ARCH_32)
|
|
||||||
if(WHOA_FMOD_EX)
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86/lib/libfmodex-4.24.16.so
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/linux-x86/lib/libfmodex-4.24.16.so DESTINATION "bin")
|
|
||||||
else()
|
|
||||||
# TODO Add ARM support for FMOD Core on Linux
|
|
||||||
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86/lib/libfmod.so.13.18
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/linux-x86/lib/libfmod.so.13.18 DESTINATION "bin")
|
|
||||||
endif()
|
|
||||||
elseif(WHOA_ARCH_64)
|
|
||||||
if(WHOA_FMOD_EX)
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86_64/lib/libfmodex-4.24.16.so
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86_64/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/linux-x86_64/lib/libfmodex-4.24.16.so DESTINATION "bin")
|
|
||||||
else()
|
|
||||||
# TODO Add ARM support for FMOD Core on Linux
|
|
||||||
|
|
||||||
set_target_properties(fmod PROPERTIES
|
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86_64/lib/libfmod.so.13.18
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86_64/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/linux-x86_64/lib/libfmod.so.13.18 DESTINATION "bin")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
elseif(WHOA_SYSTEM_MAC)
|
|
||||||
# The Mac lib is universal
|
|
||||||
|
|
||||||
if(WHOA_FMOD_EX)
|
if(WHOA_FMOD_EX)
|
||||||
set_target_properties(fmod PROPERTIES
|
set(FMOD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/fmodex-4.24.16")
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/mac/lib/libfmodex.dylib
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/mac/inc
|
|
||||||
)
|
|
||||||
install(FILES ${FMOD_DIR}/mac/lib/libfmodex.dylib DESTINATION "bin")
|
|
||||||
else()
|
else()
|
||||||
set_target_properties(fmod PROPERTIES
|
set(FMOD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/fmodcore-2.02.18")
|
||||||
IMPORTED_LOCATION ${FMOD_DIR}/mac/lib/libfmod.dylib
|
endif()
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/mac/inc
|
|
||||||
)
|
if(WHOA_SYSTEM_WIN)
|
||||||
install(FILES ${FMOD_DIR}/mac/lib/libfmod.dylib DESTINATION "bin")
|
if(WHOA_ARCH_32)
|
||||||
|
if(WHOA_FMOD_EX)
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86/lib/fmodex_vc.lib
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/win-x86/lib/fmodex.dll
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/win-x86/lib/fmodex.dll DESTINATION "bin")
|
||||||
|
else()
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86/lib/fmod_vc.lib
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/win-x86/lib/fmod.dll
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/win-x86/lib/fmod.dll DESTINATION "bin")
|
||||||
|
endif()
|
||||||
|
elseif(WHOA_ARCH_64)
|
||||||
|
if(WHOA_FMOD_EX)
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86_64/lib/fmodex64_vc.lib
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/win-x86_64/lib/fmodex64.dll
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86_64/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/win-x86_64/lib/fmodex64.dll DESTINATION "bin")
|
||||||
|
else()
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_IMPLIB ${FMOD_DIR}/win-x86_64/lib/fmod_vc.lib
|
||||||
|
IMPORTED_LOCATION FMOD_DIR}/win-x86_64/lib/fmod.dll
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/win-x86_64/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/win-x86_64/lib/fmod.dll DESTINATION "bin")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif(WHOA_SYSTEM_LINUX)
|
||||||
|
if(WHOA_ARCH_32)
|
||||||
|
if(WHOA_FMOD_EX)
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86/lib/libfmodex-4.24.16.so
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/linux-x86/lib/libfmodex-4.24.16.so DESTINATION "bin")
|
||||||
|
else()
|
||||||
|
# TODO Add ARM support for FMOD Core on Linux
|
||||||
|
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86/lib/libfmod.so.13.18
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/linux-x86/lib/libfmod.so.13.18 DESTINATION "bin")
|
||||||
|
endif()
|
||||||
|
elseif(WHOA_ARCH_64)
|
||||||
|
if(WHOA_FMOD_EX)
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86_64/lib/libfmodex-4.24.16.so
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86_64/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/linux-x86_64/lib/libfmodex-4.24.16.so DESTINATION "bin")
|
||||||
|
else()
|
||||||
|
# TODO Add ARM support for FMOD Core on Linux
|
||||||
|
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/linux-x86_64/lib/libfmod.so.13.18
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/linux-x86_64/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/linux-x86_64/lib/libfmod.so.13.18 DESTINATION "bin")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif(WHOA_SYSTEM_MAC)
|
||||||
|
# The Mac lib is universal
|
||||||
|
|
||||||
|
if(WHOA_FMOD_EX)
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/mac/lib/libfmodex.dylib
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/mac/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/mac/lib/libfmodex.dylib DESTINATION "bin")
|
||||||
|
else()
|
||||||
|
set_target_properties(fmod PROPERTIES
|
||||||
|
IMPORTED_LOCATION ${FMOD_DIR}/mac/lib/libfmod.dylib
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES ${FMOD_DIR}/mac/inc
|
||||||
|
)
|
||||||
|
install(FILES ${FMOD_DIR}/mac/lib/libfmod.dylib DESTINATION "bin")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_definitions(-DWHOA_BUILD_FMOD)
|
||||||
|
|
||||||
|
if(WHOA_FMOD_CORE)
|
||||||
|
add_definitions(-DWHOA_FMOD_CORE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (WHOA_FMOD_EX)
|
||||||
|
add_definitions(-DWHOA_FMOD_EX)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
Loading…
Reference in New Issue
Block a user