Add FMOD Studio support

This commit is contained in:
Drake Arconis
2014-08-10 17:41:10 -04:00
parent a6ac8e1f71
commit 90d2dce07a
21 changed files with 2157 additions and 1710 deletions

View File

@@ -29,8 +29,8 @@ set(cmake_SOURCE_FILES
ELFIO.cmake
EXPAT.cmake
ExamplePlugin.cmake
FMOD.cmake
FMODEX.cmake
FMODSTUDIO.cmake
FindAPR.cmake
FindBerkeleyDB.cmake
FindCARes.cmake

View File

@@ -233,6 +233,29 @@ if(WORD_SIZE EQUAL 32)
)
endif(WORD_SIZE EQUAL 32)
if(FMODSTUDIO)
if (WORD_SIZE EQUAL 32)
set(fmodstudio_dll_file "fmod.dll")
else (WORD_SIZE EQUAL 32)
set(fmodstudio_dll_file "fmod64.dll")
endif (WORD_SIZE EQUAL 32)
find_path(FMODSTUDIO_BINARY_DIR "${fmodstudio_dll_file}"
"${release_src_dir}"
"${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib"
"${FMODSTUDIO_SDK_DIR}"
NO_DEFAULT_PATH
)
if(FMODSTUDIO_BINARY_DIR)
copy_if_different("${FMODSTUDIO_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/Release" out_targets "${fmodstudio_dll_file}")
set(all_targets ${all_targets} ${out_targets})
copy_if_different("${FMODSTUDIO_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo" out_targets "${fmodstudio_dll_file}")
set(all_targets ${all_targets} ${out_targets})
copy_if_different("${FMODSTUDIO_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/Debug" out_targets "${fmodstudio_dll_file}")
set(all_targets ${all_targets} ${out_targets})
endif(FMODSTUDIO_BINARY_DIR)
endif(FMODSTUDIO)
if(FMODEX)
if (WORD_SIZE EQUAL 32)
@@ -258,25 +281,6 @@ if(FMODEX)
endif(FMODEX_BINARY_DIR)
endif(FMODEX)
if(FMOD)
find_path(FMOD_BINARY_DIR fmod.dll
${release_src_dir}
${FMOD_SDK_DIR}/api
${FMOD_SDK_DIR}
)
if(FMOD_BINARY_DIR)
copy_if_different("${FMOD_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/Release" out_targets fmod.dll)
set(all_targets ${all_targets} ${out_targets})
copy_if_different("${FMOD_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo" out_targets fmod.dll)
set(all_targets ${all_targets} ${out_targets})
copy_if_different("${FMOD_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/Debug" out_targets fmod.dll)
set(all_targets ${all_targets} ${out_targets})
else(FMOD_BINARY_DIR)
list(APPEND release_files fmod.dll) #Required for compile. This will cause an error in copying binaries.
endif(FMOD_BINARY_DIR)
endif(FMOD)
copy_if_different(
${release_src_dir}
"${CMAKE_CURRENT_BINARY_DIR}/Release"

View File

@@ -1,52 +0,0 @@
# -*- cmake -*-
include(Linking)
if(INSTALL_PROPRIETARY)
include(Prebuilt)
use_prebuilt_binary(fmod)
endif(INSTALL_PROPRIETARY)
find_library(FMOD_LIBRARY
NAMES fmod fmodvc fmod-3.75
PATHS
optimized ${ARCH_PREBUILT_DIRS_RELEASE}
debug ${ARCH_PREBUILT_DIRS_DEBUG}
)
if (NOT FMOD_LIBRARY)
set(FMOD_SDK_DIR CACHE PATH "Path to the FMOD SDK.")
if (FMOD_SDK_DIR)
find_library(FMOD_LIBRARY
NAMES fmodvc fmod-3.75 fmod
PATHS
${FMOD_SDK_DIR}/api/lib
${FMOD_SDK_DIR}/api
${FMOD_SDK_DIR}/lib
${FMOD_SDK_DIR}
)
endif (FMOD_SDK_DIR)
endif (NOT FMOD_LIBRARY)
find_path(FMOD_INCLUDE_DIR fmod.h
${LIBS_PREBUILT_DIR}/include
${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include
${FMOD_SDK_DIR}/api/inc
${FMOD_SDK_DIR}/inc
${FMOD_SDK_DIR}
)
if (FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
set(FMOD ON CACHE BOOL "Use closed source FMOD sound library.")
else (FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
set(FMOD_LIBRARY "")
set(FMOD_INCLUDE_DIR "")
if (FMOD)
message(STATUS "No support for FMOD audio (need to set FMOD_SDK_DIR?)")
endif (FMOD)
set(FMOD OFF CACHE BOOL "Use closed source FMOD sound library.")
endif (FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
if (FMOD)
message(STATUS "Building with FMOD audio support")
endif (FMOD)

View File

@@ -2,6 +2,10 @@
include(Linking)
if (FMODEX AND FMODSTUDIO)
message( FATAL_ERROR "You can not enable two FMOD variants at the same time." )
endif (FMODEX AND FMODSTUDIO)
if (NOT FMODEX_LIBRARY)
set(FMODEX_SDK_DIR CACHE PATH "Path to the FMOD Ex SDK.")
if (FMODEX_SDK_DIR)

View File

@@ -0,0 +1,83 @@
# -*- cmake -*-
include(Linking)
if (FMODEX AND FMODSTUDIO)
message( FATAL_ERROR "You can not enable two FMOD variants at the same time." )
endif (FMODEX AND FMODSTUDIO)
if (NOT FMODSTUDIO_LIBRARY)
set(FMODSTUDIO_SDK_DIR CACHE PATH "Path to the FMOD Ex SDK.")
if (FMODSTUDIO_SDK_DIR)
if(WORD_SIZE EQUAL 32)
find_library(FMODSTUDIO_LIBRARY
fmod_vc fmodL_vc fmod fmodL
PATHS
"${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib"
"${FMODSTUDIO_SDK_DIR}/api/lowlevel"
"${FMODSTUDIO_SDK_DIR}"
)
elseif(WORD_SIZE EQUAL 64)
find_library(FMODSTUDIO_LIBRARY
fmod64_vc fmodL64_vc fmod64 fmodL64
PATHS
"${FMODSTUDIO_SDK_DIR}/api/lowlevel/lib"
"${FMODSTUDIO_SDK_DIR}/api/lowlevel"
"${FMODSTUDIO_SDK_DIR}"
)
endif(WORD_SIZE EQUAL 32)
endif(FMODSTUDIO_SDK_DIR)
if(WINDOWS AND NOT FMODSTUDIO_SDK_DIR)
GET_FILENAME_COMPONENT(FMODSTUDIO_PROG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Studio\ API\ Windows] ABSOLUTE CACHE)
if(WORD_SIZE EQUAL 32)
find_library(FMODSTUDIO_LIBRARY
fmod_vc fmodL_vc
PATHS
"${FMODSTUDIO_PROG_DIR}/api/lowlevel/lib"
"${FMODSTUDIO_PROG_DIR}/api/lowlevel"
"${FMODSTUDIO_PROG_DIR}"
)
else(WORD_SIZE EQUAL 32)
find_library(FMODSTUDIO_LIBRARY
fmod64_vc fmodL64_vc
PATHS
"${FMODSTUDIO_PROG_DIR}/api/lowlevel/lib"
"${FMODSTUDIO_PROG_DIR}/api/lowlevel"
"${FMODSTUDIO_PROG_DIR}"
)
endif(WORD_SIZE EQUAL 32)
if(FMODSTUDIO_LIBRARY)
message(STATUS "Found fmodstudio in ${FMODSTUDIO_PROG_DIR}")
set(FMODSTUDIO_SDK_DIR "${FMODSTUDIO_PROG_DIR}")
set(FMODSTUDIO_SDK_DIR "${FMODSTUDIO_PROG_DIR}" CACHE PATH "Path to the FMOD Studio SDK." FORCE)
endif(FMODSTUDIO_LIBRARY)
endif(WINDOWS AND NOT FMODSTUDIO_SDK_DIR)
endif (NOT FMODSTUDIO_LIBRARY)
find_path(FMODSTUDIO_INCLUDE_DIR fmod.hpp
"${LIBS_PREBUILT_DIR}/include/fmodstudio"
"${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/fmodstudio"
"${FMODSTUDIO_SDK_DIR}/api/lowlevel/inc"
"${FMODSTUDIO_SDK_DIR}"
)
if(DARWIN)
set(FMODSTUDIO_ORIG_LIBRARY "${FMODSTUDIO_LIBRARY}")
set(FMODSTUDIO_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/libfmod.dylib")
endif(DARWIN)
if (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
set(FMODSTUDIO ON CACHE BOOL "Use closed source FMOD Studio sound library.")
else (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
set(FMODSTUDIO_LIBRARY "")
set(FMODSTUDIO_INCLUDE_DIR "")
if (FMODSTUDIO)
message(STATUS "No support for FMOD Studio audio (need to set FMODSTUDIO_SDK_DIR?)")
endif (FMODSTUDIO)
set(FMODSTUDIO OFF CACHE BOOL "Use closed source FMOD Studio sound library.")
set(FMODSTUDIO OFF)
endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
if (FMODSTUDIO)
message(STATUS "Building with FMOD Studio audio support")
endif (FMODSTUDIO)