Succeed in opening the FluidSynth decoder even if the default soundfont doesn't load
[alure.git] / CMakeLists.txt
blob228d1fe72bcc45d2c607df7b9322819930c25ac0
1 # CMakeLists.txt for ALURE
2 CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
4 IF(COMMAND CMAKE_POLICY)
5     CMAKE_POLICY(SET CMP0003 NEW)
6 ENDIF(COMMAND CMAKE_POLICY)
8 SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
10 INCLUDE(CheckCCompilerFlag)
11 INCLUDE(CheckCSourceCompiles)
12 INCLUDE(CheckFunctionExists)
13 INCLUDE(CheckIncludeFile)
14 INCLUDE(CheckIncludeFiles)
15 INCLUDE(CheckLibraryExists)
16 INCLUDE(CheckSharedLibraryExists)
17 INCLUDE(FindPkgConfig)
18 INCLUDE(UsePkgConfig)
19 INCLUDE(CheckFileOffsetBits)
21 PROJECT(ALURE)
23 IF(WIN32)
24     SET(LIBNAME ALURE32)
25 ELSE(WIN32)
26     SET(LIBNAME alure)
27 ENDIF(WIN32)
29 SET(LIB_MAJOR_VERSION "1")
30 SET(LIB_MINOR_VERSION "0")
31 SET(LIB_BUILD_VERSION "72")
32 SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_BUILD_VERSION}")
35 INCLUDE_DIRECTORIES(include "${ALURE_BINARY_DIR}")
38 OPTION(BUILD_SHARED "Build the shared version of the library" ON)
39 OPTION(BUILD_STATIC "Build the static version of the library" ON)
41 IF(NOT BUILD_SHARED AND NOT BUILD_STATIC)
42     MESSAGE(FATAL_ERROR "No libtype being built!")
43 ENDIF(NOT BUILD_SHARED AND NOT BUILD_STATIC)
45 IF(NOT CMAKE_BUILD_TYPE)
46     SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
47         "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
48         FORCE)
49 ENDIF(NOT CMAKE_BUILD_TYPE)
50 IF(NOT DEFINED CMAKE_DEBUG_POSTFIX)
51     SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING
52         "Library postfix for debug builds. Normally left blank."
53         FORCE)
54 ENDIF(NOT DEFINED CMAKE_DEBUG_POSTFIX)
57 CHECK_SHARED_LIBRARY_EXISTS(stdc++ memset "" HAS_STDCXX)
58 IF(HAS_STDCXX)
59     SET(EXTRA_LIBS stdc++ ${EXTRA_LIBS})
60 ENDIF(HAS_STDCXX)
62 CHECK_SHARED_LIBRARY_EXISTS(m pow "" HAS_LIBM)
63 IF(HAS_LIBM)
64     SET(EXTRA_LIBS m ${EXTRA_LIBS})
65 ENDIF(HAS_LIBM)
67 CHECK_FILE_OFFSET_BITS()
68 IF(_FILE_OFFSET_BITS)
69     ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=${_FILE_OFFSET_BITS})
70     SET(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} -D_FILE_OFFSET_BITS=${_FILE_OFFSET_BITS})
71 ENDIF(_FILE_OFFSET_BITS)
73 CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO)
75 IF(MSVC)
76     # ???
77 ELSE(MSVC)
78     IF(NOT WIN32)
79         CHECK_C_SOURCE_COMPILES("int foo() __attribute__((constructor));
80                                  int main() {return 0;}" HAVE_GCC_CONSTRUCTOR)
82         CHECK_C_COMPILER_FLAG(-fvisibility=hidden HAVE_GCC_VISIBILITY)
83         IF(HAVE_GCC_VISIBILITY)
84             ADD_DEFINITIONS(-fvisibility=hidden)
85         ENDIF(HAVE_GCC_VISIBILITY)
86     ENDIF(NOT WIN32)
88     CHECK_C_COMPILER_FLAG(-Wextra HAVE_WEXTRA)
89     IF(HAVE_WEXTRA)
90         ADD_DEFINITIONS(-Wextra)
91     ENDIF(HAVE_WEXTRA)
92     ADD_DEFINITIONS(-Wall)
94     CHECK_C_COMPILER_FLAG(-funswitch-loops HAVE_FUNSWITCH_LOOPS)
95     IF(HAVE_FUNSWITCH_LOOPS)
96         ADD_DEFINITIONS(-funswitch-loops)
97     ENDIF(HAVE_FUNSWITCH_LOOPS)
98 ENDIF(MSVC)
101 CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H -D_WIN32_WINNT=0x0500)
102 IF(NOT HAVE_WINDOWS_H)
103     CHECK_C_COMPILER_FLAG(-pthread HAVE_PTHREAD)
104     IF(HAVE_PTHREAD)
105         ADD_DEFINITIONS(-pthread)
106         SET(EXTRA_LIBS ${EXTRA_LIBS} -pthread)
107     ENDIF(HAVE_PTHREAD)
109     # We need pthreads outside of Windows
110     CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
111     IF(NOT HAVE_PTHREAD_H)
112         MESSAGE(FATAL_ERROR "PThreads is required for non-Windows builds!")
113     ENDIF()
114     # Some systems need pthread_np.h to get recursive mutexes
115     CHECK_INCLUDE_FILES("pthread.h;pthread_np.h" HAVE_PTHREAD_NP_H)
117     # _GNU_SOURCE is needed on some systems for extra attributes, and
118     # _REENTRANT is needed for libc thread-safety
119     ADD_DEFINITIONS(-D_GNU_SOURCE=1)
120     CHECK_FUNCTION_EXISTS(pthread_create HAS_PTHREAD_CREATE)
121     IF(NOT HAS_PTHREAD_CREATE)
122         CHECK_SHARED_LIBRARY_EXISTS(pthread pthread_create "" HAVE_LIBPTHREAD)
123         IF(NOT HAVE_LIBPTHREAD)
124             MESSAGE(FATAL_ERROR "pthread_create not found on non-Windows target!")
125         ENDIF(NOT HAVE_LIBPTHREAD)
126         SET(EXTRA_LIBS pthread ${EXTRA_LIBS})
127     ENDIF(NOT HAS_PTHREAD_CREATE)
129     CHECK_FUNCTION_EXISTS(nanosleep HAVE_NANOSLEEP)
130     IF(NOT HAVE_NANOSLEEP)
131         MESSAGE(FATAL_ERROR "No sleep function found!")
132     ENDIF(NOT HAVE_NANOSLEEP)
133 ENDIF(NOT HAVE_WINDOWS_H)
135 CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
136 CHECK_INCLUDE_FILE(sys/wait.h HAVE_SYS_WAIT_H)
137 CHECK_INCLUDE_FILE(signal.h HAVE_SIGNAL_H)
138 CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
140 IF(HAVE_DLFCN_H)
141     CHECK_SHARED_LIBRARY_EXISTS(dl dlopen "" HAVE_LIBDL)
142     IF(HAVE_LIBDL)
143         SET(EXTRA_LIBS dl ${EXTRA_LIBS})
144     ENDIF(HAVE_LIBDL)
145 ENDIF(HAVE_DLFCN_H)
147 OPTION(DYNLOAD    "Dynamically load support libs at run-time" ON)
148 OPTION(SNDFILE    "SoundFile support (for various formats)" ON)
149 OPTION(VORBIS     "VorbisFile support (for Ogg Vorbis)"  ON)
150 OPTION(FLAC       "FLAC support (for FLAC and Ogg FLAC)" ON)
151 OPTION(MPG123     "MPG123 support (for MP1/MP2/MP3)" ON)
152 OPTION(DUMB       "DUMB support (for IT/XM/S3M/MOD)" ON)
153 OPTION(FLUIDSYNTH "FluidSynth support (for MID)" ON)
155 IF(WIN32)
156     ADD_DEFINITIONS(-D_WIN32)
158     IF(CMAKE_SIZEOF_VOID_P MATCHES "8")
159         SET(WIN_TYPE Win64)
160         SET(XBITS x64)
161     ELSE(CMAKE_SIZEOF_VOID_P MATCHES "8")
162         SET(WIN_TYPE Win32)
163         SET(XBITS x86)
164     ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
166     SET(OPENAL_SEARCH_PATHS
167         ENV ALSDK_DIR
168         ENV MINGDIR
169         "C:/Program Files/OpenAL 1.1 SDK"
170         "C:/Program Files (x86)/OpenAL 1.1 SDK"
171         "E:/Programs/Dev/OpenAL"
172         "E:/Program Files (x86)/OpenAL 1.1 SDK" )
174     FIND_PATH(OPENAL_INCLUDE_DIR al.h
175               PATHS ${OPENAL_SEARCH_PATHS}
176               PATH_SUFFIXES include include/AL )
177     IF(OPENAL_INCLUDE_DIR)
178         INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
179         FIND_LIBRARY(OPENAL_LIBRARIES OpenAL32
180                      PATHS ${OPENAL_SEARCH_PATHS}
181                      PATH_SUFFIXES lib libs/${WIN_TYPE} )
182     ENDIF(OPENAL_INCLUDE_DIR)
184     IF(NOT OPENAL_LIBRARIES)
185         MESSAGE(FATAL_ERROR "OpenAL not found!\nPlease try setting the ALSDK_DIR environment variable and try again.")
186     ENDIF(NOT OPENAL_LIBRARIES)
188     MESSAGE(STATUS "OpenAL include: ${OPENAL_INCLUDE_DIR}")
189     MESSAGE(STATUS "OpenAL lib: ${OPENAL_LIBRARIES}")
190 ELSE(WIN32)
191     IF(NOT HAVE_DLFCN_H OR NOT HAVE_LIBDL)
192         SET(DYNLOAD OFF)
193     ENDIF(NOT HAVE_DLFCN_H OR NOT HAVE_LIBDL)
195     PKG_CHECK_MODULES(OPENAL openal)
196     IF(NOT OPENAL_FOUND)
197         IF(APPLE)
198             CHECK_INCLUDE_FILE(OpenAL/al.h HAVE_OPENAL_AL_H)
199             IF(HAVE_OPENAL_AL_H)
200                 SET(OPENAL_LIBRARIES "-framework OpenAL")
201                 SET(HAS_OPENAL 1)
202             ENDIF(HAVE_OPENAL_AL_H)
203         ELSE(APPLE)
204             CHECK_INCLUDE_FILE(AL/al.h HAVE_AL_AL_H)
205             IF(HAVE_AL_AL_H)
206                 CHECK_SHARED_LIBRARY_EXISTS(openal alcOpenDevice "" HAS_OPENAL)
207                 IF(HAS_OPENAL)
208                     SET(OPENAL_LIBRARIES openal)
209                 ENDIF(HAS_OPENAL)
210             ENDIF(HAVE_AL_AL_H)
211         ENDIF(APPLE)
212         IF(NOT HAS_OPENAL)
213             MESSAGE(FATAL_ERROR "OpenAL not found!")
214         ENDIF(NOT HAS_OPENAL)
215     ELSE(NOT OPENAL_FOUND)
216         INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIRS})
217         LINK_DIRECTORIES(${OPENAL_LIBRARY_DIRS})
218     ENDIF(NOT OPENAL_FOUND)
219 ENDIF(WIN32)
221 # SndFile support
222 IF(SNDFILE)
223     PKG_CHECK_MODULES(SNDFILE sndfile)
224     IF(NOT SNDFILE_FOUND)
225         CHECK_INCLUDE_FILE(sndfile.h HAVE_SNDFILE_H)
226         IF(HAVE_SNDFILE_H)
227             CHECK_SHARED_LIBRARY_EXISTS(sndfile sf_open "" HAVE_LIBSNDFILE)
228             CHECK_SHARED_LIBRARY_EXISTS(libsndfile-1 sf_open "" HAVE_LIBSNDFILE1)
229             IF(DYNLOAD OR HAVE_LIBSNDFILE OR HAVE_LIBSNDFILE1)
230                 SET(HAS_SNDFILE 1)
231                 IF(HAVE_LIBSNDFILE)
232                     SET(SNDFILE_LIBRARIES "sndfile")
233                 ELSEIF(HAVE_LIBSNDFILE1)
234                     SET(SNDFILE_LIBRARIES "libsndfile-1")
235                 ENDIF(HAVE_LIBSNDFILE)
236             ENDIF(DYNLOAD OR HAVE_LIBSNDFILE OR HAVE_LIBSNDFILE1)
237         ENDIF(HAVE_SNDFILE_H)
238     ELSE(NOT SNDFILE_FOUND)
239         SET(HAS_SNDFILE 1)
240         INCLUDE_DIRECTORIES(${SNDFILE_INCLUDE_DIRS})
241         LINK_DIRECTORIES(${SNDFILE_LIBRARY_DIRS})
242     ENDIF(NOT SNDFILE_FOUND)
243 ELSE(SNDFILE)
244     SET(SNDFILE_LIBRARIES "")
245 ENDIF(SNDFILE)
247 # Vorbis support
248 IF(VORBIS)
249     PKG_CHECK_MODULES(VORBISFILE vorbisfile)
250     IF(NOT VORBISFILE_FOUND)
251         CHECK_INCLUDE_FILE(vorbis/vorbisfile.h HAVE_VORBIS_VORBISFILE_H)
252         IF(HAVE_VORBIS_VORBISFILE_H)
253             CHECK_SHARED_LIBRARY_EXISTS(vorbisfile ov_open "" HAVE_LIBVORBISFILE)
254             IF(DYNLOAD OR HAVE_LIBVORBISFILE)
255                 SET(HAS_VORBISFILE 1)
256                 IF(HAVE_LIBVORBISFILE)
257                     SET(VORBISFILE_LIBRARIES "vorbisfile")
258                 ENDIF(HAVE_LIBVORBISFILE)
259             ENDIF(DYNLOAD OR HAVE_LIBVORBISFILE)
260         ENDIF(HAVE_VORBIS_VORBISFILE_H)
261     ELSE(NOT VORBISFILE_FOUND)
262         SET(HAS_VORBISFILE 1)
263         INCLUDE_DIRECTORIES(${VORBISFILE_INCLUDE_DIRS})
264         LINK_DIRECTORIES(${VORBISFILE_LIBRARY_DIRS})
265     ENDIF(NOT VORBISFILE_FOUND)
266 ELSE(VORBIS)
267     SET(VORBISFILE_LIBRARIES "")
268 ENDIF(VORBIS)
270 # FLAC support
271 IF(FLAC)
272     #PKG_CHECK_MODULES(LIBFLAC flac)
273     #IF(NOT LIBFLAC_FOUND)
274         CHECK_INCLUDE_FILE(FLAC/all.h HAVE_FLAC_ALL_H)
275         IF(HAVE_FLAC_ALL_H)
276             CHECK_SHARED_LIBRARY_EXISTS(FLAC FLAC__stream_decoder_new "" HAVE_LIBFLAC)
277             IF(DYNLOAD OR HAVE_LIBFLAC)
278                 SET(HAS_FLAC 1)
279                 IF(HAVE_LIBFLAC)
280                     SET(LIBFLAC_LIBRARIES "FLAC")
281                 ENDIF(HAVE_LIBFLAC)
282             ENDIF(DYNLOAD OR HAVE_LIBFLAC)
283         ENDIF(HAVE_FLAC_ALL_H)
284     #ELSE(NOT LIBFLAC)
285     #    SET(HAS_FLAC 1)
286     #    INCLUDE_DIRECTORIES(${LIBFLAC_INCLUDE_DIRS})
287     #    LINK_DIRECTORIES(${LIBFLAC_LIBRARY_DIRS})
288     #ENDIF(NOT LIBFLAC_FOUND)
289 ELSE(FLAC)
290     SET(LIBFLAC_LIBRARIES "")
291 ENDIF(FLAC)
293 # MPG123 support
294 IF(MPG123)
295     PKG_CHECK_MODULES(MPG123 libmpg123)
296     IF(NOT MPG123_FOUND)
297         CHECK_INCLUDE_FILE(mpg123.h HAVE_MPG123_H)
298         IF(HAVE_MPG123_H)
299             CHECK_SHARED_LIBRARY_EXISTS(mpg123 mpg123_init "" HAVE_LIBMPG123)
300             IF(DYNLOAD OR HAVE_LIBMPG123)
301                 SET(HAS_MPG123 1)
302                 IF(HAVE_LIBMPG123)
303                     SET(MPG123_LIBRARIES "mpg123")
304                 ENDIF(HAVE_LIBMPG123)
305             ENDIF(DYNLOAD OR HAVE_LIBMPG123)
306         ENDIF(HAVE_MPG123_H)
307     ELSE(NOT MPG123_FOUND)
308         SET(HAS_MPG123 1)
309         INCLUDE_DIRECTORIES(${MPG123_INCLUDE_DIRS})
310         LINK_DIRECTORIES(${MPG123_LIBRARY_DIRS})
311     ENDIF(NOT MPG123_FOUND)
312 ELSE(MPG123)
313     SET(MPG123_LIBRARIES "")
314 ENDIF(MPG123)
316 # DUMB support
317 IF(DUMB)
318     CHECK_INCLUDE_FILE(dumb.h HAVE_DUMB_H)
319     IF(HAVE_DUMB_H)
320         IF(HAS_LIBM)
321             CHECK_LIBRARY_EXISTS("dumb;m" dumbfile_open_ex "" HAVE_LIBDUMB)
322         ELSE(HAS_LIBM)
323             CHECK_LIBRARY_EXISTS(dumb dumbfile_open_ex "" HAVE_LIBDUMB)
324         ENDIF(HAS_LIBM)
325         IF(DYNLOAD OR HAVE_LIBDUMB)
326             SET(HAS_DUMB 1)
327             IF(HAVE_LIBDUMB)
328                 SET(DUMB_LIBRARIES dumb)
329             ENDIF(HAVE_LIBDUMB)
330         ENDIF(DYNLOAD OR HAVE_LIBDUMB)
331     ENDIF(HAVE_DUMB_H)
332 ELSE(DUMB)
333     SET(DUMB_LIBRARIES "")
334 ENDIF(DUMB)
336 # FluidSynth support
337 IF(FLUIDSYNTH)
338     PKG_CHECK_MODULES(FLUIDSYNTH fluidsynth>=1.1.1)
339     IF(NOT FLUIDSYNTH_FOUND)
340         CHECK_INCLUDE_FILE(fluidsynth.h HAVE_FLUIDSYNTH_H)
341         IF(HAVE_FLUIDSYNTH_H)
342             CHECK_SHARED_LIBRARY_EXISTS(fluidsynth new_fluid_synth "" HAVE_LIBFLUIDSYNTH)
343             IF(DYNLOAD OR HAVE_LIBFLUIDSYNTH)
344                 SET(HAS_FLUIDSYNTH 1)
345                 IF(HAVE_LIBFLUIDSYNTH)
346                     SET(FLUIDSYNTH_LIBRARIES "fluidsynth")
347                 ENDIF(HAVE_LIBFLUIDSYNTH)
348             ENDIF(DYNLOAD OR HAVE_LIBFLUIDSYNTH)
349         ENDIF(HAVE_FLUIDSYNTH_H)
350     ELSE(NOT FLUIDSYNTH_FOUND)
351         SET(HAS_FLUIDSYNTH 1)
352         INCLUDE_DIRECTORIES(${FLUIDSYNTH_INCLUDE_DIRS})
353         LINK_DIRECTORIES(${FLUIDSYNTH_LIBRARY_DIRS})
354     ENDIF(NOT FLUIDSYNTH_FOUND)
355 ELSE(FLUIDSYNTH)
356     SET(FLUIDSYNTH_LIBRARIES "")
357 ENDIF(FLUIDSYNTH)
360 IF(NOT DYNLOAD)
361     SET(EXTRA_LIBS ${SNDFILE_LIBRARIES} ${VORBISFILE_LIBRARIES} ${LIBFLAC_LIBRARIES} ${MPG123_LIBRARIES} ${DUMB_LIBRARIES} ${FLUIDSYNTH_LIBRARIES} ${EXTRA_LIBS})
362 ELSE(NOT DYNLOAD)
363     ADD_DEFINITIONS(-DDYNLOAD=1)
364 ENDIF(NOT DYNLOAD)
366 # For alure.pc.in
367 SET(prefix ${CMAKE_INSTALL_PREFIX})
368 SET(exec_prefix "\${prefix}")
369 SET(libdir "\${exec_prefix}/lib${LIB_SUFFIX}")
370 SET(bindir "\${exec_prefix}/bin")
371 SET(includedir "\${prefix}/include")
372 SET(PKG_CONFIG_REQUIRES openal)
373 SET(PACKAGE_VERSION "${LIB_VERSION}")
375 # End configuration
376 CONFIGURE_FILE(
377     "${ALURE_SOURCE_DIR}/config.h.in"
378     "${ALURE_BINARY_DIR}/config.h")
379 CONFIGURE_FILE(
380     "${ALURE_SOURCE_DIR}/alure.pc.in"
381     "${ALURE_BINARY_DIR}/alure.pc"
382     @ONLY)
384 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
387 SET(ALURE_OBJS  src/alure.cpp
388                 src/buffer.cpp
389                 src/istream.cpp
390                 src/stream.cpp
391                 src/streamdec.cpp
392                 src/streamplay.cpp
395 IF(BUILD_SHARED)
396     #build a shared library
397     ADD_LIBRARY(${LIBNAME} SHARED ${ALURE_OBJS})
398     SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES DEFINE_SYMBOL ALURE_BUILD_LIBRARY
399                                                 VERSION ${LIB_VERSION}
400                                                 SOVERSION ${LIB_MAJOR_VERSION})
401     IF(WIN32)
402         SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES PREFIX "")
403     ENDIF(WIN32)
404     TARGET_LINK_LIBRARIES(${LIBNAME} ${OPENAL_LIBRARIES} ${EXTRA_LIBS})
406     INSTALL(TARGETS ${LIBNAME}
407             RUNTIME DESTINATION bin
408             LIBRARY DESTINATION lib${LIB_SUFFIX}
409             ARCHIVE DESTINATION lib${LIB_SUFFIX}
411 ENDIF(BUILD_SHARED)
412 IF(BUILD_STATIC)
413     #build a static library
414     ADD_LIBRARY(${LIBNAME}-static STATIC ${ALURE_OBJS})
415     SET_TARGET_PROPERTIES(${LIBNAME}-static PROPERTIES DEFINE_SYMBOL ALURE_BUILD_LIBRARY
416                                                        COMPILE_FLAGS -DALURE_STATIC_LIBRARY
417                                                        VERSION ${LIB_VERSION})
418     INSTALL(TARGETS ${LIBNAME}-static
419             RUNTIME DESTINATION bin
420             LIBRARY DESTINATION lib${LIB_SUFFIX}
421             ARCHIVE DESTINATION lib${LIB_SUFFIX}
423 ENDIF(BUILD_STATIC)
426 ADD_EXECUTABLE(alureplay examples/alureplay.c)
427 ADD_EXECUTABLE(alurestream examples/alurestream.c)
428 IF(BUILD_SHARED)
429     TARGET_LINK_LIBRARIES(alureplay ${LIBNAME} ${OPENAL_LIBRARIES} ${EXTRA_LIBS})
430     TARGET_LINK_LIBRARIES(alurestream ${LIBNAME} ${OPENAL_LIBRARIES} ${EXTRA_LIBS})
431 ELSE(BUILD_SHARED)
432     TARGET_LINK_LIBRARIES(alureplay ${LIBNAME}-static ${OPENAL_LIBRARIES} ${EXTRA_LIBS})
433     TARGET_LINK_LIBRARIES(alurestream ${LIBNAME}-static ${OPENAL_LIBRARIES} ${EXTRA_LIBS})
434 ENDIF(BUILD_SHARED)
437 FIND_PROGRAM(NATDOCS_BIN NaturalDocs)
438 IF(NATDOCS_BIN)
439     ADD_CUSTOM_TARGET(docs
440                       "${NATDOCS_BIN}" -i "${ALURE_SOURCE_DIR}/src" -o HTML "${ALURE_SOURCE_DIR}/docs/html" -p "${ALURE_SOURCE_DIR}/docs/naturaldocs" -s Default CustomStyle
441                       COMMENT "Building NaturalDocs documentation..." VERBATIM)
442 ELSE(NATDOCS_BIN)
443     MESSAGE(STATUS "\nNaturalDocs not found; building documentation is disabled")
444 ENDIF(NATDOCS_BIN)
447 #add an install target here
448 IF(APPLE)
449     SET(INCPATH OpenAL)
450 ELSE(APPLE)
451     SET(INCPATH AL)
452 ENDIF(APPLE)
454 INSTALL(DIRECTORY "${ALURE_SOURCE_DIR}/docs/html"
455         DESTINATION share/doc/alure
457 INSTALL(FILES include/AL/alure.h
458         DESTINATION "include/${INCPATH}"
460 INSTALL(FILES "${ALURE_BINARY_DIR}/alure.pc"
461         DESTINATION "lib${LIB_SUFFIX}/pkgconfig"
465 MESSAGE(STATUS "\n********************** Configured options **********************")
466 IF(BUILD_SHARED AND BUILD_STATIC)
467     MESSAGE(STATUS "Building shared, static library")
468 ELSEIF(BUILD_SHARED)
469     MESSAGE(STATUS "Building shared library")
470 ELSE(BUILD_SHARED AND BUILD_STATIC)
471     MESSAGE(STATUS "Building static library")
472 ENDIF(BUILD_SHARED AND BUILD_STATIC)
473 MESSAGE(STATUS "")
474 IF(HAS_SNDFILE)
475     MESSAGE(STATUS "SndFile support: enabled")
476 ELSE(HAS_SNDFILE)
477     MESSAGE(STATUS "SndFile support: disabled")
478 ENDIF(HAS_SNDFILE)
479 IF(HAS_VORBISFILE)
480     MESSAGE(STATUS "VorbisFile support: enabled")
481 ELSE(HAS_VORBISFILE)
482     MESSAGE(STATUS "VorbisFile support: disabled")
483 ENDIF(HAS_VORBISFILE)
484 IF(HAS_FLAC)
485     MESSAGE(STATUS "FLAC support: enabled")
486 ELSE(HAS_FLAC)
487     MESSAGE(STATUS "FLAC support: disabled")
488 ENDIF(HAS_FLAC)
489 IF(HAS_MPG123)
490     MESSAGE(STATUS "MPG123 support: enabled")
491 ELSE(HAS_MPG123)
492     MESSAGE(STATUS "MPG123 support: disabled")
493 ENDIF(HAS_MPG123)
494 IF(HAS_DUMB)
495     MESSAGE(STATUS "DUMB support: enabled")
496 ELSE(HAS_DUMB)
497     MESSAGE(STATUS "DUMB support: disabled")
498 ENDIF(HAS_DUMB)
499 IF(HAS_FLUIDSYNTH)
500     MESSAGE(STATUS "FluidSynth support: enabled")
501 ELSE(HAS_FLUIDSYNTH)
502     MESSAGE(STATUS "FluidSynth support: disabled")
503 ENDIF(HAS_FLUIDSYNTH)
504 MESSAGE(STATUS "")