117 lines
5.0 KiB
CMake
117 lines
5.0 KiB
CMake
# -*- 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)
|
|
|
|
unset(FMOD_LIBRARY_RELEASE CACHE)
|
|
unset(FMOD_LIBRARY_DEBUG CACHE)
|
|
unset(FMOD_INCLUDE_DIR CACHE)
|
|
|
|
set(FMOD_EXTERNAL_LIB OFF)
|
|
|
|
if(STANDALONE OR WINDOWS)
|
|
if (NOT FMODEX_SDK_DIR AND WINDOWS)
|
|
GET_FILENAME_COMPONENT(REG_DIR [HKEY_CURRENT_USER\\Software\\FMOD\ Programmers\ API\ Windows] ABSOLUTE)
|
|
set(FMODEX_SDK_DIR ${REG_DIR} CACHE PATH "Path to the FMOD Ex SDK." FORCE)
|
|
endif (NOT FMODEX_SDK_DIR AND WINDOWS)
|
|
if(NOT FMODEX_SDK_DIR AND STANDALONE)
|
|
message(FATAL_ERROR "FMODEX_SDK_DIR not set!")
|
|
endif(NOT FMODEX_SDK_DIR AND STANDALONE)
|
|
endif(STANDALONE OR WINDOWS)
|
|
|
|
if(FMODEX_SDK_DIR)
|
|
set(fmod_lib_paths "${FMODEX_SDK_DIR}/api" "${FMODEX_SDK_DIR}/api/lib" )
|
|
set(fmod_inc_paths "${FMODEX_SDK_DIR}/api/inc")
|
|
|
|
if(WINDOWS)
|
|
set(CMAKE_FIND_LIBRARY_SUFFIXES_OLD ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
set(CMAKE_FIND_LIBRARY_SUFFIXES .dll)
|
|
endif(WINDOWS)
|
|
if(WORD_SIZE EQUAL 64)
|
|
find_library(FMOD_LIBRARY_RELEASE fmodex64 PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
find_library(FMOD_LIBRARY_DEBUG fmodexL64 PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
else(WORD_SIZE EQUAL 64)#Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin.
|
|
find_library(FMOD_LIBRARY_RELEASE fmodex PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
find_library(FMOD_LIBRARY_DEBUG fmodexL PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
endif(WORD_SIZE EQUAL 64)
|
|
if(WINDOWS)
|
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_OLD})
|
|
if(WORD_SIZE EQUAL 64)
|
|
find_library(FMOD_LINK_LIBRARY_RELEASE fmodex64_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
find_library(FMOD_LINK_LIBRARY_DEBUG fmodexL64_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
else(WORD_SIZE EQUAL 64)#Check if CMAKE_FIND_LIBRARY_PREFIXES is set to 'lib' for darwin.
|
|
find_library(FMOD_LINK_LIBRARY_RELEASE fmodex_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
find_library(FMOD_LINK_LIBRARY_DEBUG fmodexL_vc PATHS ${fmod_lib_paths} NO_DEFAULT_PATH)
|
|
endif(WORD_SIZE EQUAL 64)
|
|
else(WINDOWS)
|
|
set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE})
|
|
set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
|
|
endif(WINDOWS)
|
|
find_path(FMOD_INCLUDE_DIR fmod.hpp ${fmod_inc_paths})
|
|
if(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
|
|
if(STANDALONE)
|
|
message(FATAL_ERROR "Provided FMODEX_SDK_DIR path not found '{$FMODEX_SDK_DIR}'")
|
|
else(STANDALONE)
|
|
message(STATUS "Provided FMODEX_SDK_DIR path not found '${FMODEX_SDK_DIR}'. Falling back to prebuilts")
|
|
endif(STANDALONE)
|
|
else(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
|
|
message(STATUS "Using system-provided FMOD Ex Libraries")
|
|
set(FMOD_EXTERNAL_LIB ON)
|
|
endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
|
|
endif (FMODEX_SDK_DIR)
|
|
|
|
if (NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
|
|
if(WINDOWS)
|
|
set(lib_suffix .dll)
|
|
elseif(DARWIN)
|
|
set(lib_suffix .dylib)
|
|
else(WINDOWS)
|
|
set(lib_suffix .so)
|
|
endif(WINDOWS)
|
|
if(WINDOWS)
|
|
if(WORD_SIZE EQUAL 64)
|
|
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmodex64${lib_suffix})
|
|
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodexL64${lib_suffix})
|
|
else(WORD_SIZE EQUAL 64)
|
|
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/fmodex${lib_suffix})
|
|
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/fmodexL${lib_suffix})
|
|
endif(WORD_SIZE EQUAL 64)
|
|
else(WINDOWS)
|
|
if(WORD_SIZE EQUAL 64)
|
|
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmodex64${lib_suffix})
|
|
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodex64L${lib_suffix})
|
|
else(WORD_SIZE EQUAL 64)
|
|
set(FMOD_LIBRARY_RELEASE ${LIBS_PREBUILT_DIR}/lib/release/libfmodex${lib_suffix})
|
|
set(FMOD_LIBRARY_DEBUG ${LIBS_PREBUILT_DIR}/lib/debug/libfmodexL${lib_suffix})
|
|
endif(WORD_SIZE EQUAL 64)
|
|
endif(WINDOWS)
|
|
set(FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE})
|
|
set(FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
|
|
if(WINDOWS)
|
|
string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_RELEASE ${FMOD_LIBRARY_RELEASE})
|
|
string(REPLACE ".dll" "_vc.lib" FMOD_LINK_LIBRARY_DEBUG ${FMOD_LIBRARY_DEBUG})
|
|
endif(WINDOWS)
|
|
use_prebuilt_binary(fmodex)
|
|
set(FMOD_INCLUDE_DIR
|
|
${LIBS_PREBUILT_DIR}/include/fmodex)
|
|
endif(NOT FMOD_LIBRARY_RELEASE OR NOT FMOD_INCLUDE_DIR)
|
|
|
|
if(FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
|
|
set(FMOD ON)
|
|
if (NOT FMOD_LIBRARY_DEBUG) #Use release library in debug configuration if debug library is absent.
|
|
set(FMOD_LIBRARY_DEBUG ${FMOD_LIBRARY_RELEASE})
|
|
endif (NOT FMOD_LIBRARY_DEBUG)
|
|
else (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
|
|
message(STATUS "No support for FMOD EX audio (need to set FMODEX_SDK_DIR?)")
|
|
set(FMOD OFF)
|
|
set(FMODEX OFF)
|
|
endif (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
|
|
|
|
if (FMOD)
|
|
message(STATUS "Building with FMOD Ex audio support")
|
|
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODEX")
|
|
endif (FMOD)
|