Changed: #1251 NeL can't find selected drivers in CMake

This commit is contained in:
kervala 2011-02-24 18:01:31 +01:00
parent 672da49c26
commit c16cfbcf4d
5 changed files with 61 additions and 39 deletions

View file

@ -86,9 +86,7 @@ NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS()
NL_SETUP_PREFIX_PATHS() NL_SETUP_PREFIX_PATHS()
RYZOM_SETUP_PREFIX_PATHS() RYZOM_SETUP_PREFIX_PATHS()
IF(NOT WIN32) NL_CONFIGURE_CHECKS()
NL_CONFIGURE_CHECKS()
ENDIF(NOT WIN32)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
#Platform specifics #Platform specifics

View file

@ -42,7 +42,33 @@ MACRO(NL_CONFIGURE_CHECKS)
CHECK_FUNCTION_EXISTS("strtoull" HAVE_STRTOULL) CHECK_FUNCTION_EXISTS("strtoull" HAVE_STRTOULL)
CHECK_FUNCTION_EXISTS("statvfs" HAVE_STATVFS) CHECK_FUNCTION_EXISTS("statvfs" HAVE_STATVFS)
CHECK_FUNCTION_EXISTS("stat64" HAVE_STAT64) CHECK_FUNCTION_EXISTS("stat64" HAVE_STAT64)
# 3D drivers
IF(WITH_DRIVER_OPENGL)
SET(NL_OPENGL_AVAILABLE 1)
ENDIF(WITH_DRIVER_OPENGL)
IF(WITH_DRIVER_DIRECT3D)
SET(NL_DIRECT3D_AVAILABLE 1)
ENDIF(WITH_DRIVER_DIRECT3D)
# sound drivers
IF(WITH_DRIVER_FMOD)
SET(NL_FMOD_AVAILABLE 1)
ENDIF(WITH_DRIVER_FMOD)
IF(WITH_DRIVER_OPENAL)
SET(NL_OPENAL_AVAILABLE 1)
ENDIF(WITH_DRIVER_OPENAL)
IF(WITH_DRIVER_DSOUND)
SET(NL_DSOUND_AVAILABLE 1)
ENDIF(WITH_DRIVER_DSOUND)
IF(WITH_DRIVER_XAUDIO2)
SET(NL_XAUDIO2_AVAILABLE 1)
ENDIF(WITH_DRIVER_XAUDIO2)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DHAVE_CONFIG_H)

View file

@ -34,6 +34,14 @@
#cmakedefine HAVE_STATVFS 1 #cmakedefine HAVE_STATVFS 1
#cmakedefine HAVE_STAT64 1 #cmakedefine HAVE_STAT64 1
#cmakedefine NL_OPENGL_AVAILABLE ${NL_OPENGL_AVAILABLE}
#cmakedefine NL_DIRECT3D_AVAILABLE ${NL_DIRECT3D_AVAILABLE}
#cmakedefine NL_FMOD_AVAILABLE ${NL_FMOD_AVAILABLE}
#cmakedefine NL_OPENAL_AVAILABLE ${NL_OPENAL_AVAILABLE}
#cmakedefine NL_DSOUND_AVAILABLE ${NL_DSOUND_AVAILABLE}
#cmakedefine NL_XAUDIO2_AVAILABLE ${NL_XAUDIO2_AVAILABLE}
#cmakedefine NL_BIN_PREFIX "${NL_BIN_PREFIX}" #cmakedefine NL_BIN_PREFIX "${NL_BIN_PREFIX}"
#cmakedefine NL_ETC_PREFIX "${NL_ETC_PREFIX}" #cmakedefine NL_ETC_PREFIX "${NL_ETC_PREFIX}"
#cmakedefine NL_SHARE_PREFIX "${NL_SHARE_PREFIX}" #cmakedefine NL_SHARE_PREFIX "${NL_SHARE_PREFIX}"

View file

@ -66,7 +66,8 @@ void alExtInitDevice(ALCdevice *device)
} }
} }
#if !defined(NL_STATIC) || defined(NL_OS_MAC) // Windows and Mac OS always link to shared OpenAL library
#if defined(NL_OS_WINDOWS) || defined(NL_OS_MAC) || !defined(NL_STATIC)
// EFX // EFX
if ((AlExtEfx = (alcIsExtensionPresent(device, "ALC_EXT_EFX") == ALC_TRUE)) == true) if ((AlExtEfx = (alcIsExtensionPresent(device, "ALC_EXT_EFX") == ALC_TRUE)) == true)
{ {
@ -136,7 +137,7 @@ EAXGetBufferMode eaxGetBufferMode = NULL;
// ALC_EXT_EFX // ALC_EXT_EFX
bool AlExtEfx = false; bool AlExtEfx = false;
// effect objects // effect objects
#if !defined(NL_STATIC) || defined(NL_OS_MAC) #if defined(NL_OS_WINDOWS) || defined(NL_OS_MAC) || !defined(NL_STATIC)
LPALGENEFXOBJECTS alGenEffects = NULL; LPALGENEFXOBJECTS alGenEffects = NULL;
LPALDELETEEFXOBJECTS alDeleteEffects = NULL; LPALDELETEEFXOBJECTS alDeleteEffects = NULL;
LPALISEFXOBJECT alIsEffect = NULL; LPALISEFXOBJECT alIsEffect = NULL;

View file

@ -20,6 +20,17 @@
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
# include "config.h" # include "config.h"
#elif defined(NL_STATIC)
// Driver availability for NL_STATIC compilation.
# undef NL_FMOD_AVAILABLE
# undef NL_OPENAL_AVAILABLE
# undef NL_DSOUND_AVAILABLE
# undef NL_XAUDIO2_AVAILABLE
# if defined( NL_OS_WINDOWS )
# define NL_FMOD_AVAILABLE
# else
# define NL_OPENAL_AVAILABLE
# endif
#endif // HAVE_CONFIG_H #endif // HAVE_CONFIG_H
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
@ -34,28 +45,6 @@
using namespace NLMISC; using namespace NLMISC;
// Driver availability for NL_STATIC compilation.
#if defined( NL_OS_WINDOWS )
# define NL_FMOD_AVAILABLE 1
# define NL_OPENAL_AVAILABLE 0
# define NL_DSOUND_AVAILABLE 0
# define NL_XAUDIO2_AVAILABLE 0
#elif defined( NL_OS_UNIX )
#ifdef NL_STATIC
# define NL_FMOD_AVAILABLE 0
#else
# define NL_FMOD_AVAILABLE 1
#endif
# define NL_OPENAL_AVAILABLE 1
# define NL_DSOUND_AVAILABLE 0
# define NL_XAUDIO2_AVAILABLE 0
#else
# define NL_FMOD_AVAILABLE 0
# define NL_OPENAL_AVAILABLE 0
# define NL_DSOUND_AVAILABLE 0
# define NL_XAUDIO2_AVAILABLE 0
#endif
namespace NLSOUND namespace NLSOUND
{ {
@ -72,16 +61,16 @@ const uint32 ISoundDriver::InterfaceVersion = 0x16; // Kaetemi
extern void outputProfile##__soundDriver(std::string &out); \ extern void outputProfile##__soundDriver(std::string &out); \
extern ISoundDriver::TDriver getDriverType##__soundDriver(); extern ISoundDriver::TDriver getDriverType##__soundDriver();
#if NL_FMOD_AVAILABLE #ifdef NL_FMOD_AVAILABLE
NLSOUND_DECLARE_DRIVER(FMod) NLSOUND_DECLARE_DRIVER(FMod)
#endif #endif
#if NL_OPENAL_AVAILABLE #ifdef NL_OPENAL_AVAILABLE
NLSOUND_DECLARE_DRIVER(OpenAl) NLSOUND_DECLARE_DRIVER(OpenAl)
#endif #endif
#if NL_DSOUND_AVAILABLE #ifdef NL_DSOUND_AVAILABLE
NLSOUND_DECLARE_DRIVER(DSound) NLSOUND_DECLARE_DRIVER(DSound)
#endif #endif
#if NL_XAUDIO2_AVAILABLE #ifdef NL_XAUDIO2_AVAILABLE
NLSOUND_DECLARE_DRIVER(XAudio2) NLSOUND_DECLARE_DRIVER(XAudio2)
#endif #endif
@ -122,26 +111,26 @@ ISoundDriver *ISoundDriver::createDriver(IStringMapperProvider *stringMapper, TD
switch (driverType) switch (driverType)
{ {
// switch between available drivers // switch between available drivers
# if NL_FMOD_AVAILABLE # ifdef NL_FMOD_AVAILABLE
case DriverFMod: result = createISoundDriverInstanceFMod(stringMapper); break; case DriverFMod: result = createISoundDriverInstanceFMod(stringMapper); break;
# endif # endif
# if NL_OPENAL_AVAILABLE # ifdef NL_OPENAL_AVAILABLE
case DriverOpenAl: result = createISoundDriverInstanceOpenAl(stringMapper); break; case DriverOpenAl: result = createISoundDriverInstanceOpenAl(stringMapper); break;
# endif # endif
# if NL_DSOUND_AVAILABLE # ifdef NL_DSOUND_AVAILABLE
case DriverDSound: result = createISoundDriverInstanceDSound(stringMapper); break; case DriverDSound: result = createISoundDriverInstanceDSound(stringMapper); break;
# endif # endif
# if NL_XAUDIO2_AVAILABLE # ifdef NL_XAUDIO2_AVAILABLE
case DriverXAudio2: result = createISoundDriverInstanceXAudio2(stringMapper); break; case DriverXAudio2: result = createISoundDriverInstanceXAudio2(stringMapper); break;
# endif # endif
// auto driver = first available in this order: FMod, OpenAl, XAudio2, DSound // auto driver = first available in this order: FMod, OpenAl, XAudio2, DSound
# if NL_FMOD_AVAILABLE # if defined(NL_FMOD_AVAILABLE)
case DriverAuto: result = createISoundDriverInstanceFMod(stringMapper); break; case DriverAuto: result = createISoundDriverInstanceFMod(stringMapper); break;
# elif NL_OPENAL_AVAILABLE # elif defined(NL_OPENAL_AVAILABLE)
case DriverAuto: result = createISoundDriverInstanceOpenAl(stringMapper); break; case DriverAuto: result = createISoundDriverInstanceOpenAl(stringMapper); break;
# elif NL_XAUDIO2_AVAILABLE # elif defined(NL_XAUDIO2_AVAILABLE)
case DriverAuto: result = createISoundDriverInstanceXAudio2(stringMapper); break; case DriverAuto: result = createISoundDriverInstanceXAudio2(stringMapper); break;
# elif NL_DSOUND_AVAILABLE # elif defined(NL_DSOUND_AVAILABLE)
case DriverAuto: result = createISoundDriverInstanceDSound(stringMapper); break; case DriverAuto: result = createISoundDriverInstanceDSound(stringMapper); break;
# endif # endif
// unavailable driver = FAIL // unavailable driver = FAIL