| [17] | 1 | # cmake project file by Prakash Punnoor | 
|---|
 | 2 | CMAKE_MINIMUM_REQUIRED(VERSION 2.0) | 
|---|
 | 3 |  | 
|---|
 | 4 | SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/admin/CMakeModules") | 
|---|
 | 5 | PROJECT(OpenAL C) | 
|---|
 | 6 | SET(PACKAGE "openal") | 
|---|
 | 7 | SET(PACKAGE_TARNAME "openal") | 
|---|
 | 8 | SET(PACKAGE_NAME "openal") | 
|---|
 | 9 | SET(PACKAGE_MAJOR_VERSION "0") | 
|---|
 | 10 | SET(PACKAGE_MINOR_VERSION "0") | 
|---|
 | 11 | SET(PACKAGE_BUILD_VERSION "8") | 
|---|
 | 12 | SET(PACKAGE_VERSION "${PACKAGE_MAJOR_VERSION}.${PACKAGE_MINOR_VERSION}.${PACKAGE_BUILD_VERSION}") | 
|---|
 | 13 |  | 
|---|
 | 14 | SET(PACKAGE_STRING "openal") | 
|---|
 | 15 | SET(PACKAGE_BUGREPORT "openal-devel@opensource.creative.com") | 
|---|
 | 16 | SET(OPERATING_SYSTEM "${CMAKE_SYSTEM_NAME}") | 
|---|
 | 17 |  | 
|---|
 | 18 | FIND_PACKAGE(ConfigHelper) | 
|---|
 | 19 |  | 
|---|
 | 20 | MACRO(MACRO_TEST ARG VAR) | 
|---|
 | 21 | CHECK_C_SOURCE_COMPILES( | 
|---|
 | 22 | "#ifndef ${ARG} | 
|---|
 | 23 | #error ${ARG} macro not defined | 
|---|
 | 24 | #endif | 
|---|
 | 25 | int main(){} | 
|---|
 | 26 | " ${VAR}) | 
|---|
 | 27 | ENDMACRO(MACRO_TEST ARG VAR) | 
|---|
 | 28 |  | 
|---|
 | 29 |  | 
|---|
 | 30 | ADD_DEFINE("PACKAGE_VERSION \"${PACKAGE_VERSION}\"") | 
|---|
 | 31 |  | 
|---|
 | 32 | # We need ISO C99 features (e.g. snprintf) and POSIX IEEE Std 1003.1b-1993 | 
|---|
 | 33 | # features (e.g. struct timespec, used in <alsa/asoundlib.h>) | 
|---|
 | 34 | ADD_DEFINITIONS(-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=199309) | 
|---|
 | 35 |  | 
|---|
 | 36 | ADD_DEFINE("SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}") | 
|---|
 | 37 |  | 
|---|
 | 38 | INCLUDE(${CMAKE_ROOT}/Modules/CheckCSourceCompiles.cmake) | 
|---|
 | 39 | INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) | 
|---|
 | 40 | INCLUDE(${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake) | 
|---|
 | 41 | INCLUDE(${CMAKE_ROOT}/Modules/TestBigEndian.cmake) | 
|---|
 | 42 |  | 
|---|
 | 43 | INCLUDE_DIRECTORIES(${OpenAL_SOURCE_DIR}/common/include) | 
|---|
 | 44 | INCLUDE_DIRECTORIES(${OpenAL_SOURCE_DIR}/include) | 
|---|
 | 45 | INCLUDE_DIRECTORIES(${OpenAL_SOURCE_DIR}/src) | 
|---|
 | 46 | INCLUDE_DIRECTORIES(${OpenAL_SOURCE_DIR}/src/arch) | 
|---|
 | 47 |  | 
|---|
 | 48 |  | 
|---|
 | 49 | SET(AL_OBJS              src/al_bpool.c | 
|---|
 | 50 |                          src/al_buffer.c | 
|---|
 | 51 |                          src/al_config.c | 
|---|
 | 52 |                          src/al_debug.c | 
|---|
 | 53 |                          src/al_distance.c | 
|---|
 | 54 |                          src/al_error.c | 
|---|
 | 55 |                          src/al_ext.c | 
|---|
 | 56 |                          src/al_filter.c | 
|---|
 | 57 |                          src/al_listen.c | 
|---|
 | 58 |                          src/al_main.c | 
|---|
 | 59 |                          src/al_mixer.c | 
|---|
 | 60 |                          src/al_mixfunc.c | 
|---|
 | 61 |                          src/al_mixmanager.c | 
|---|
 | 62 |                          src/al_mspool.c | 
|---|
 | 63 |                          src/al_mutexlib.c | 
|---|
 | 64 |                          src/al_queue.c | 
|---|
 | 65 |                          src/al_rctree.c | 
|---|
 | 66 |                          src/al_rcvar.c | 
|---|
 | 67 |                          src/al_source.c | 
|---|
 | 68 |                          src/al_spool.c | 
|---|
 | 69 |                          src/al_state.c | 
|---|
 | 70 |                          src/al_threadlib.c | 
|---|
 | 71 |                          src/al_vector.c | 
|---|
 | 72 |                          src/al_matrix.c | 
|---|
 | 73 |                          src/mixaudio16.c | 
|---|
 | 74 |                          src/backends/alc_backend.c) | 
|---|
 | 75 |  | 
|---|
 | 76 | SET(ALC_OBJS             src/alc/alc_context.c | 
|---|
 | 77 |                          src/alc/alc_speaker.c | 
|---|
 | 78 |                          src/alc/alc_error.c | 
|---|
 | 79 |                          src/alc/alc_device.c) | 
|---|
 | 80 |  | 
|---|
 | 81 | SET(AC_OBJS              src/audioconvert/ac_misc.c | 
|---|
 | 82 |                          src/audioconvert/ac_freq.c | 
|---|
 | 83 |                          src/audioconvert/ac_bits.c | 
|---|
 | 84 |                          src/audioconvert/ac_channels.c | 
|---|
 | 85 |                          src/audioconvert/ac_helper.c | 
|---|
 | 86 |                          src/audioconvert/ac_adpcm.c | 
|---|
 | 87 |                          src/audioconvert/ac_endian.c) | 
|---|
 | 88 |  | 
|---|
 | 89 | SET(EXT_OBJS             src/extensions/al_ext_loki.c | 
|---|
 | 90 |                          src/extensions/al_ext_capture.c) | 
|---|
 | 91 |  | 
|---|
 | 92 | SET(MP3_OBJS             src/extensions/al_ext_mp3.c) | 
|---|
 | 93 | SET(VORBIS_OBJS          src/extensions/al_ext_vorbis.c) | 
|---|
 | 94 |  | 
|---|
 | 95 | SET(BSD_OBJS             src/backends/alc_backend_bsd.c) | 
|---|
 | 96 | SET(DARWIN_OBJS          src/backends/alc_backend_darwin.c) | 
|---|
 | 97 | SET(DMEDIA_OBJS          src/backends/alc_backend_irix.c) | 
|---|
 | 98 | SET(LINUX_OBJS           src/backends/alc_backend_linux.c) | 
|---|
 | 99 | SET(MORPHOS_OBJS         src/backends/alc_backend_morphos.c) | 
|---|
 | 100 | SET(SOLARIS_OBJS         src/backends/alc_backend_solaris.c) | 
|---|
 | 101 | SET(WINDOWS_OBJS         src/backends/alc_backend_windows.c) | 
|---|
 | 102 | SET(ALSA_OBJS            src/backends/alc_backend_alsa.c) | 
|---|
 | 103 | SET(ARTS_OBJS            src/backends/alc_backend_arts.c) | 
|---|
 | 104 | SET(ESD_OBJS             src/backends/alc_backend_esd.c) | 
|---|
 | 105 | SET(NULL_OBJS            src/backends/alc_backend_null.c) | 
|---|
 | 106 | SET(SDL_OBJS             src/backends/alc_backend_sdl.c) | 
|---|
 | 107 | SET(WAVEOUT_OBJS         src/backends/alc_backend_wave.c) | 
|---|
 | 108 |  | 
|---|
 | 109 | SET(x86_OBJS             src/arch/i386/x86_floatmul.c | 
|---|
 | 110 |                          src/arch/i386/x86_cpu_caps_prk.c) | 
|---|
 | 111 | SET(x86_MMX_OBJS         src/arch/i386/mixaudio16_mmx_prk.c) | 
|---|
 | 112 | SET(x86_NASM_OBJS        src/arch/i386/x86_cpu_caps_detect_prk.nasm) | 
|---|
 | 113 | SET(x86_MMX_NASM_OBJS    src/arch/i386/memcpy_mmx_prk.nasm) | 
|---|
 | 114 |  | 
|---|
 | 115 | SET(PORTABLE_OBJS        src/arch/portable/floatmul.c | 
|---|
 | 116 |                          src/arch/portable/cpu_caps.c) | 
|---|
 | 117 |  | 
|---|
 | 118 |  | 
|---|
 | 119 | SET(ADD_CFLAGS "") | 
|---|
 | 120 | SET(ADD_LIBS "") | 
|---|
 | 121 | SET(ADD_LDFLAGS "") | 
|---|
 | 122 | SET(ADD_WFLAGS "") | 
|---|
 | 123 |  | 
|---|
 | 124 | IF(CMAKE_UNAME) | 
|---|
 | 125 |   EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_MACHINE) | 
|---|
 | 126 | ELSE(CMAKE_UNAME) | 
|---|
 | 127 |   MESSAGE("Could not detect machine type") | 
|---|
 | 128 | ENDIF(CMAKE_UNAME) | 
|---|
 | 129 |  | 
|---|
 | 130 | IF(CMAKE_SYSTEM MATCHES CYGWIN OR CMAKE_SYSTEM MATCHES MINGW) | 
|---|
 | 131 |   SET(CMAKE_SYSTEM Windows) | 
|---|
 | 132 |   IF(CMAKE_SYSTEM MATCHES CYGWIN) | 
|---|
 | 133 |     SET(CYGWIN ON) | 
|---|
 | 134 |   ELSE(CMAKE_SYSTEM MATCHES CYGWIN) | 
|---|
 | 135 |     SET(MINGW ON) | 
|---|
 | 136 |   ENDIF(CMAKE_SYSTEM MATCHES CYGWIN) | 
|---|
 | 137 | ENDIF(CMAKE_SYSTEM MATCHES CYGWIN OR CMAKE_SYSTEM MATCHES MINGW) | 
|---|
 | 138 |  | 
|---|
 | 139 |  | 
|---|
 | 140 | TEST_BIG_ENDIAN(CMAKE_WORDS_BIGENDIAN) | 
|---|
 | 141 |  | 
|---|
 | 142 | IF(CMAKE_WORDS_BIGENDIAN) | 
|---|
 | 143 |   ADD_DEFINE(WORDS_BIGENDIAN) | 
|---|
 | 144 | ENDIF(CMAKE_WORDS_BIGENDIAN) | 
|---|
 | 145 |  | 
|---|
 | 146 |  | 
|---|
 | 147 | OPTION(BUILD_STATIC "build static library too" ON) | 
|---|
 | 148 | OPTION(BUILD_TESTS  "build the test-suite"     OFF) | 
|---|
 | 149 | OPTION(PROFILE      "enable profile"           OFF) | 
|---|
 | 150 | OPTION(OPTIMIZATION "enable optimization"      ON) | 
|---|
 | 151 | OPTION(DEBUG        "enable debug"             OFF) | 
|---|
 | 152 | OPTION(WARNINGS     "enable warnings"          ON) | 
|---|
 | 153 |  | 
|---|
 | 154 | # sound backends | 
|---|
 | 155 | IF(CMAKE_SYSTEM MATCHES "Linux") | 
|---|
 | 156 |   OPTION(ALSA        "alsa back-end"         ON) | 
|---|
 | 157 |   OPTION(ALSA_DLOPEN "alsa dynamic loading"  ON) | 
|---|
 | 158 | ENDIF(CMAKE_SYSTEM MATCHES "Linux") | 
|---|
 | 159 |  | 
|---|
 | 160 | #IF(WIN32) | 
|---|
 | 161 | #  OPTION(DSOUND      "directsound back-end"  OFF) | 
|---|
 | 162 | #ENDIF(WIN32) | 
|---|
 | 163 |  | 
|---|
 | 164 | OPTION(NATIVE      "native/oss back-end"  ON) | 
|---|
 | 165 | OPTION(ARTS        "arts back-end"        ON) | 
|---|
 | 166 | OPTION(ARTS_DLOPEN "arts dynamic loading" ON) | 
|---|
 | 167 | OPTION(DMEDIA      "DMedia/Irix back-end" ON) | 
|---|
 | 168 | OPTION(ESD         "esd back-end"         ON) | 
|---|
 | 169 | OPTION(ESD_DLOPEN  "esd dynamic loading"  ON) | 
|---|
 | 170 | OPTION(SDL         "sdl back-end"         ON) | 
|---|
 | 171 | OPTION(SDL_DLOPEN  "sdl dynamic loading"  ON) | 
|---|
 | 172 | OPTION(WAVEOUT     "wave out back-end"    ON) | 
|---|
 | 173 | OPTION(NULLOUT     "null out back-end"    ON) | 
|---|
 | 174 |  | 
|---|
 | 175 | # additional codecs | 
|---|
 | 176 | OPTION(VORBIS         "vorbis support"          ON) | 
|---|
 | 177 | OPTION(VORBIS_DLOPEN  "vorbis dynamic loading"  ON) | 
|---|
 | 178 | OPTION(MP3            "mp3 support"             ON) | 
|---|
 | 179 | OPTION(MP3_DLOPEN     "mp3 dynamic loading"     ON) | 
|---|
 | 180 |  | 
|---|
 | 181 | IF(DEBUG) | 
|---|
 | 182 |   ADD_DEFINE(DEBUG) | 
|---|
 | 183 |   IF(WARNINGS) | 
|---|
 | 184 |     OPTION(MORE_WARNINGS "enable more warnings"         OFF) | 
|---|
 | 185 |     OPTION(USE_WERROR    "enable fail on all warning"   OFF) | 
|---|
 | 186 |   ENDIF(WARNINGS) | 
|---|
 | 187 |  | 
|---|
 | 188 |   OPTION(EFENCE          "enable efence support"        OFF) | 
|---|
 | 189 |   OPTION(DEBUG_MAXIMUS   "enable all debugging"         OFF) | 
|---|
 | 190 |   OPTION(DEBUG_STUB      "enable stub debugging"        OFF) | 
|---|
 | 191 |   OPTION(DEBUG_LOOP      "enable looping debugging"     OFF) | 
|---|
 | 192 |   OPTION(DEBUG_CONVERT   "enable convertion debugging"  OFF) | 
|---|
 | 193 |   OPTION(DEBUG_CONFIG    "enable config file debugging" OFF) | 
|---|
 | 194 |   OPTION(DEBUG_LOCK      "enable lock debugging"        OFF) | 
|---|
 | 195 |   OPTION(DEBUG_EXT       "enable extension debugging"   OFF) | 
|---|
 | 196 |   OPTION(DEBUG_BUFFER    "enable buffer debugging"      OFF) | 
|---|
 | 197 |   OPTION(DEBUG_SOURCE    "enable source debugging"      OFF) | 
|---|
 | 198 |   OPTION(DEBUG_MIXER     "enable mixer debugging"       OFF) | 
|---|
 | 199 |   OPTION(DEBUG_STREAMING "enable streaming debugging"   OFF) | 
|---|
 | 200 |   OPTION(DEBUG_MATH      "enable math debugging"        OFF) | 
|---|
 | 201 |   OPTION(DEBUG_MEM       "enable mem debugging"         OFF) | 
|---|
 | 202 |   OPTION(DEBUG_CONTEXT   "enable context debugging"     OFF) | 
|---|
 | 203 |   OPTION(DEBUG_QUEUE     "enable queue debugging"       OFF) | 
|---|
 | 204 |   OPTION(DEBUG_FILTER    "enable filter debugging"      OFF) | 
|---|
 | 205 |  | 
|---|
 | 206 |   IF(EFENCE) | 
|---|
 | 207 |     FIND_LIBRARY(EFENCE_LIB NAMES efence PATHS /usr/lib /usr/local/lib) | 
|---|
 | 208 |     IF(EFENCE_LIB MATCHES "NOTFOUND") | 
|---|
 | 209 |       MESSAGE("Electric Fence not installed - disabled.") | 
|---|
 | 210 |       SET(EFENCE OFF CACHE BOOL "" FORCE) | 
|---|
 | 211 |     ELSE(EFENCE_LIB MATCHES "NOTFOUND") | 
|---|
 | 212 |  | 
|---|
 | 213 |       SET(ADD_LIBS ${ADD_LIBS} ${EFENCE_LIB}) | 
|---|
 | 214 |     ENDIF(EFENCE_LIB MATCHES "NOTFOUND") | 
|---|
 | 215 |   ENDIF(EFENCE) | 
|---|
 | 216 |  | 
|---|
 | 217 |   MACRO(CHECK_DEBUG DEBUG_OPTION) | 
|---|
 | 218 |   IF(${DEBUG_OPTION}) | 
|---|
 | 219 |     ADD_DEFINE(${DEBUG_OPTION}) | 
|---|
 | 220 |   ENDIF(${DEBUG_OPTION}) | 
|---|
 | 221 |   ENDMACRO(CHECK_DEBUG) | 
|---|
 | 222 |  | 
|---|
 | 223 |   CHECK_DEBUG(DEBUG_MAXIMUS) | 
|---|
 | 224 |   CHECK_DEBUG(DEBUG_STUB) | 
|---|
 | 225 |   CHECK_DEBUG(DEBUG_LOOP) | 
|---|
 | 226 |   CHECK_DEBUG(DEBUG_CONVERT) | 
|---|
 | 227 |   CHECK_DEBUG(DEBUG_CONFIG) | 
|---|
 | 228 |   CHECK_DEBUG(DEBUG_LOCK) | 
|---|
 | 229 |   CHECK_DEBUG(DEBUG_EXT) | 
|---|
 | 230 |   CHECK_DEBUG(DEBUG_BUFFER) | 
|---|
 | 231 |   CHECK_DEBUG(DEBUG_SOURC) | 
|---|
 | 232 |   CHECK_DEBUG(DEBUG_MIXER) | 
|---|
 | 233 |   CHECK_DEBUG(DEBUG_STREAMING) | 
|---|
 | 234 |   CHECK_DEBUG(DEBUG_MATH) | 
|---|
 | 235 |   CHECK_DEBUG(DEBUG_MEM) | 
|---|
 | 236 |   CHECK_DEBUG(DEBUG_CONTEXT) | 
|---|
 | 237 |   CHECK_DEBUG(DEBUG_QUEUE) | 
|---|
 | 238 |   CHECK_DEBUG(DEBUG_FILTER) | 
|---|
 | 239 | ELSE(DEBUG) | 
|---|
 | 240 |  | 
|---|
 | 241 |   ADD_DEFINITIONS(-DNDEBUG) | 
|---|
 | 242 | ENDIF(DEBUG) | 
|---|
 | 243 |  | 
|---|
 | 244 |  | 
|---|
 | 245 | # library stuff | 
|---|
 | 246 | CHECK_LIBRARY_EXISTS("m" "sin" "" HAVE_LIB_M) | 
|---|
 | 247 | IF(HAVE_LIB_M) | 
|---|
 | 248 |   SET(ADD_LIBS ${ADD_LIBS} m) | 
|---|
 | 249 | ELSE(HAVE_LIB_M) | 
|---|
 | 250 |  | 
|---|
 | 251 |   IF(NOT CMAKE_SYSTEM MATCHES "Darwin") | 
|---|
 | 252 |     MESSAGE(FATAL_ERROR "libm not found.") | 
|---|
 | 253 |   ENDIF(NOT CMAKE_SYSTEM MATCHES "Darwin") | 
|---|
 | 254 | ENDIF(HAVE_LIB_M) | 
|---|
 | 255 |  | 
|---|
 | 256 |  | 
|---|
 | 257 | CHECK_INCLUDE_FILE("dlfcn.h" HAVE_DL) | 
|---|
 | 258 | IF(HAVE_DL) | 
|---|
 | 259 |   CHECK_LIBRARY_EXISTS("dl" "dlopen" "" HAVE_LIB_DL) | 
|---|
 | 260 |   IF(HAVE_LIB_DL) | 
|---|
 | 261 |     SET(ADD_LIBS ${ADD_LIBS} dl) | 
|---|
 | 262 |   ENDIF(HAVE_LIB_DL) | 
|---|
 | 263 | ELSE(HAVE_DL) | 
|---|
 | 264 |  | 
|---|
 | 265 |   ADD_DEFINE(NODLOPEN) | 
|---|
 | 266 |   MESSAGE("Dynamic loading of libraries is not available.") | 
|---|
 | 267 | ENDIF(HAVE_DL) | 
|---|
 | 268 |  | 
|---|
 | 269 |  | 
|---|
 | 270 | # Special OS objs for target systems | 
|---|
 | 271 | IF(NATIVE) | 
|---|
 | 272 | IF(CMAKE_SYSTEM MATCHES "Linux") | 
|---|
 | 273 |   ADD_DEFINE(USE_BACKEND_NATIVE_IRIX) | 
|---|
 | 274 |   SET(OS_OBJS ${LINUX_OBJS}) | 
|---|
 | 275 | ELSE(CMAKE_SYSTEM MATCHES "Linux") | 
|---|
 | 276 |  | 
|---|
 | 277 | IF(CMAKE_SYSTEM MATCHES "BSD") | 
|---|
 | 278 |   ADD_DEFINE(USE_BACKEND_NATIVE_BSD) | 
|---|
 | 279 |   SET(OS_OBJS ${BSD_OBJS}) | 
|---|
 | 280 | ELSE(CMAKE_SYSTEM MATCHES "BSD") | 
|---|
 | 281 |  | 
|---|
 | 282 | IF(CMAKE_SYSTEM MATCHES "SunOS") | 
|---|
 | 283 |   ADD_DEFINE(USE_BACKEND_NATIVE_SOLARIS) | 
|---|
 | 284 |   SET(OS_OBJS ${SOLARIS_OBJS}) | 
|---|
 | 285 | ELSE(CMAKE_SYSTEM MATCHES "SunOS") | 
|---|
 | 286 |  | 
|---|
 | 287 | IF(CMAKE_SYSTEM MATCHES "Windows") | 
|---|
 | 288 |   ADD_DEFINE(USE_BACKEND_NATIVE_WINDOWS) | 
|---|
 | 289 |   SET(OS_OBJS ${WINDOWS_OBJS}) | 
|---|
 | 290 |   # need winmm library for waveOutOpen etc. | 
|---|
 | 291 |   SET(ADD_LIBS ${ADD_LIBS} winmm) | 
|---|
 | 292 | ELSE(CMAKE_SYSTEM MATCHES "Windows") | 
|---|
 | 293 |  | 
|---|
 | 294 | IF(CMAKE_SYSTEM MATCHES "Darwin") | 
|---|
 | 295 |   ADD_DEFINE(USE_BACKEND_NATIVE_DARWIN) | 
|---|
 | 296 |   SET(OS_OBJS ${DARWIN_OBJS}) | 
|---|
 | 297 |   #FIXME | 
|---|
 | 298 |   SET(ADD_LDFLAGS "${ADD_LDFLAGS} -I/System/Library/Frameworks/CoreAudio.framework/Headers/ -framework CoreAudio") | 
|---|
 | 299 | ELSE(CMAKE_SYSTEM MATCHES "Darwin") | 
|---|
 | 300 |  | 
|---|
 | 301 | IF(CMAKE_SYSTEM MATCHES "morphos") | 
|---|
 | 302 |   ADD_DEFINE(USE_BACKEND_NATIVE_MORPHOS) | 
|---|
 | 303 |   SET(OS_OBJS ${MORPHOS_OBJS}) | 
|---|
 | 304 | ELSE(CMAKE_SYSTEM MATCHES "morphos") | 
|---|
 | 305 |  | 
|---|
 | 306 |   MESSAGE("unknown System") | 
|---|
 | 307 |   SET(OS_OBJS ${LINUX_OBJS}) | 
|---|
 | 308 | ENDIF(CMAKE_SYSTEM MATCHES "morphos") | 
|---|
 | 309 | ENDIF(CMAKE_SYSTEM MATCHES "Darwin") | 
|---|
 | 310 | ENDIF(CMAKE_SYSTEM MATCHES "Windows") | 
|---|
 | 311 | ENDIF(CMAKE_SYSTEM MATCHES "SunOS") | 
|---|
 | 312 | ENDIF(CMAKE_SYSTEM MATCHES "BSD") | 
|---|
 | 313 | ENDIF(CMAKE_SYSTEM MATCHES "Linux") | 
|---|
 | 314 | ENDIF(NATIVE) | 
|---|
 | 315 |  | 
|---|
 | 316 | # threads handling | 
|---|
 | 317 | IF(CMAKE_SYSTEM MATCHES "morphos") | 
|---|
 | 318 |   CHECK_INCLUDE_FILE(dlfcn.h MOSTHREAD_AVAILABLE) | 
|---|
 | 319 | ENDIF(CMAKE_SYSTEM MATCHES "morphos") | 
|---|
 | 320 |  | 
|---|
 | 321 | IF(MOSTHREAD_AVAILABLE) | 
|---|
 | 322 |   ADD_DEFINE(USE_MORPHOSTHREADING) | 
|---|
 | 323 | ELSE(MOSTHREAD_AVAILABLE) | 
|---|
 | 324 |  | 
|---|
 | 325 |   FIND_PACKAGE(Threads) | 
|---|
 | 326 |   IF(CMAKE_USE_WIN32_THREADS_INIT) | 
|---|
 | 327 |     ADD_DEFINE(USE_WINDOWSTHREADING) | 
|---|
 | 328 |   ELSE(CMAKE_USE_WIN32_THREADS_INIT) | 
|---|
 | 329 |  | 
|---|
 | 330 |   IF(CMAKE_USE_PTHREADS_INIT) | 
|---|
 | 331 |     ADD_DEFINE(USE_POSIXTHREADING) | 
|---|
 | 332 |     SET(ADD_LIBS ${ADD_LIBS} ${CMAKE_THREAD_LIBS_INIT}) | 
|---|
 | 333 |   ELSE(CMAKE_USE_PTHREADS_INIT) | 
|---|
 | 334 |  | 
|---|
 | 335 |     ADD_DEFINE(NO_THREADING) | 
|---|
 | 336 |   ENDIF(CMAKE_USE_PTHREADS_INIT) | 
|---|
 | 337 |   ENDIF(CMAKE_USE_WIN32_THREADS_INIT) | 
|---|
 | 338 | ENDIF(MOSTHREAD_AVAILABLE) | 
|---|
 | 339 |  | 
|---|
 | 340 | # sound backends | 
|---|
 | 341 | FIND_PACKAGE(PkgConfig) | 
|---|
 | 342 |  | 
|---|
 | 343 | MACRO(CHECK_BACKEND BACKEND_OPTION BACKEND_NAME BACKEND_LIB BACKEND_HEADER BACKEND_TEST_FUNC) | 
|---|
 | 344 | IF(${BACKEND_OPTION} AND NOT ${BACKEND_OPTION}_FOUND MATCHES "1${${BACKEND_OPTION}_DLOPEN}") | 
|---|
 | 345 |   IF(CMAKE_PKGCONFIG_EXECUTABLE AND NOT ${BACKEND_NAME} MATCHES "^$") | 
|---|
 | 346 |     PKGCONFIG(${BACKEND_NAME} | 
|---|
 | 347 |               BACKEND_HAVE | 
|---|
 | 348 |               BACKEND_INCLUDE_DIRS | 
|---|
 | 349 |               BACKEND_DEFINES | 
|---|
 | 350 |               BACKEND_LINK_DIRS | 
|---|
 | 351 |               BACKEND_LIBS) | 
|---|
 | 352 |  | 
|---|
 | 353 |     SET(${BACKEND_OPTION}_HAVE          ${BACKEND_HAVE}          CACHE INTERNAL "") | 
|---|
 | 354 |     SET(${BACKEND_OPTION}_INCLUDE_DIRS "${BACKEND_INCLUDE_DIRS}" CACHE INTERNAL "") | 
|---|
 | 355 |     SET(${BACKEND_OPTION}_DEFINES      "${BACKEND_DEFINES}"      CACHE INTERNAL "") | 
|---|
 | 356 |     SET(${BACKEND_OPTION}_LINK_DIRS    "${BACKEND_LINK_DIRS}"    CACHE INTERNAL "") | 
|---|
 | 357 |     SET(${BACKEND_OPTION}_LIBS         "${BACKEND_LIBS}"         CACHE INTERNAL "") | 
|---|
 | 358 |  | 
|---|
 | 359 |     #MESSAGE("have ${${BACKEND_OPTION}_HAVE} inc ${${BACKEND_OPTION}_INCLUDE_DIRS} def ${${BACKEND_OPTION}_DEFINES} linkdirs ${${BACKEND_OPTION}_LINK_DIRS} libs ${${BACKEND_OPTION}_LIBS}") | 
|---|
 | 360 |   ENDIF(CMAKE_PKGCONFIG_EXECUTABLE AND NOT ${BACKEND_NAME} MATCHES "^$") | 
|---|
 | 361 |  | 
|---|
 | 362 |   SET(SOURCE | 
|---|
 | 363 | "#include <${BACKEND_HEADER}> | 
|---|
 | 364 | int main(){return 0;} | 
|---|
 | 365 | ") | 
|---|
 | 366 |   # CHECK_INCLUDE_FILE() doesn't handle include dir, so check by hand | 
|---|
 | 367 |   FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/src.c" "${SOURCE}") | 
|---|
 | 368 |  | 
|---|
 | 369 |   TRY_COMPILE(HAVE_BACKEND_HEADER | 
|---|
 | 370 |               ${CMAKE_BINARY_DIR} | 
|---|
 | 371 |               ${CMAKE_BINARY_DIR}/CMakeTmp/src.c | 
|---|
 | 372 |               CMAKE_FLAGS | 
|---|
 | 373 |               "-DINCLUDE_DIRECTORIES:STRING=${${BACKEND_OPTION}_INCLUDE_DIRS}" | 
|---|
 | 374 |               "-DCOMPILE_DEFINITIONS:STRING=${${BACKEND_OPTION}_DEFINES}" | 
|---|
 | 375 |               OUTPUT_VARIABLE OUTPUT) | 
|---|
 | 376 |  | 
|---|
 | 377 |    WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log | 
|---|
 | 378 |               "Performing manual C SOURCE FILE Test HAVE_BACKEND_HEADER for ${BACKEND_OPTION} with the following output:\n" | 
|---|
 | 379 |               "${OUTPUT}\n" | 
|---|
 | 380 |               "Source file was:\n${SOURCE}\n" APPEND) | 
|---|
 | 381 |  | 
|---|
 | 382 |   IF(HAVE_BACKEND_HEADER) | 
|---|
 | 383 |     IF(HAVE_DL AND ${BACKEND_OPTION}_DLOPEN) | 
|---|
 | 384 |       SET(${BACKEND_OPTION}_FOUND "1${${BACKEND_OPTION}_DLOPEN}" CACHE INTERNAL "") | 
|---|
 | 385 |     ELSE(HAVE_DL AND ${BACKEND_OPTION}_DLOPEN) | 
|---|
 | 386 |  | 
|---|
 | 387 |       IF(${BACKEND_OPTION}_LIBS MATCHES "^$") | 
|---|
 | 388 |         FIND_LIBRARY(${BACKEND_OPTION}_LIBS NAMES ${BACKEND_LIB} PATHS /usr/lib /usr/local/lib) | 
|---|
 | 389 |       ENDIF(${BACKEND_OPTION}_LIBS MATCHES "^$") | 
|---|
 | 390 |  | 
|---|
 | 391 |       IF(${BACKEND_OPTION}_LIBS MATCHES "NOTFOUND") | 
|---|
 | 392 |         MESSAGE(STATUS "${BACKEND_OPTION} library ${BACKEND_LIB} not found.") | 
|---|
 | 393 |       ELSE(${BACKEND_OPTION}_LIBS MATCHES "NOTFOUND") | 
|---|
 | 394 |  | 
|---|
 | 395 |         # check whether back-end is link-able | 
|---|
 | 396 |         SET(SOURCE | 
|---|
 | 397 | "int main(){${BACKEND_TEST_FUNC}();return 0;} | 
|---|
 | 398 | ") | 
|---|
 | 399 |         FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/src.c" "${SOURCE}") | 
|---|
 | 400 |  | 
|---|
 | 401 |         TRY_COMPILE(BACKEND_LINKS | 
|---|
 | 402 |           ${CMAKE_BINARY_DIR} | 
|---|
 | 403 |           ${CMAKE_BINARY_DIR}/CMakeTmp/src.c | 
|---|
 | 404 |           CMAKE_FLAGS | 
|---|
 | 405 |           "-DINCLUDE_DIRECTORIES:STRING=${${BACKEND_OPTION}_INCLUDE_DIRS}" | 
|---|
 | 406 |           "-DLINK_DIRECTORIES:STRING=${${BACKEND_OPTION}_LINK_DIRS}" | 
|---|
 | 407 |           "-DLINK_LIBRARIES:STRING=${${BACKEND_OPTION}_LIBS}" | 
|---|
 | 408 |           "-DCOMPILE_DEFINITIONS:STRING=${${BACKEND_OPTION}_DEFINES}" | 
|---|
 | 409 |           OUTPUT_VARIABLE OUTPUT) | 
|---|
 | 410 |  | 
|---|
 | 411 |         WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log | 
|---|
 | 412 |                    "Performing manual C SOURCE FILE Test BACKEND_LINKS for ${BACKEND_OPTION} with the following output:\n" | 
|---|
 | 413 |                    "${OUTPUT}\n" | 
|---|
 | 414 |                    "Source file was:\n${SOURCE}\n" APPEND) | 
|---|
 | 415 |  | 
|---|
 | 416 |         IF(BACKEND_LINKS) | 
|---|
 | 417 |           SET(${BACKEND_OPTION}_FOUND "1${${BACKEND_OPTION}_DLOPEN}" CACHE INTERNAL "") | 
|---|
 | 418 |         ELSE(BACKEND_LINKS) | 
|---|
 | 419 |  | 
|---|
 | 420 |           MESSAGE(STATUS "${BACKEND_OPTION} doesn't link.") | 
|---|
 | 421 |         ENDIF(BACKEND_LINKS) | 
|---|
 | 422 |       ENDIF(${BACKEND_OPTION}_LIBS MATCHES "NOTFOUND") | 
|---|
 | 423 |     ENDIF(HAVE_DL AND ${BACKEND_OPTION}_DLOPEN) | 
|---|
 | 424 |   ELSE(HAVE_BACKEND_HEADER) | 
|---|
 | 425 |  | 
|---|
 | 426 |     MESSAGE(STATUS "${BACKEND_OPTION} header ${BACKEND_HEADER} not found.") | 
|---|
 | 427 |   ENDIF(HAVE_BACKEND_HEADER) | 
|---|
 | 428 | ENDIF(${BACKEND_OPTION} AND NOT ${BACKEND_OPTION}_FOUND MATCHES "1${${BACKEND_OPTION}_DLOPEN}") | 
|---|
 | 429 |  | 
|---|
 | 430 | IF(${BACKEND_OPTION} AND ${BACKEND_OPTION}_FOUND MATCHES "1${${BACKEND_OPTION}_DLOPEN}") | 
|---|
 | 431 |   SET(OS_OBJS ${OS_OBJS} ${${BACKEND_OPTION}_OBJS}) | 
|---|
 | 432 |   # kinda hack, but won't hurt | 
|---|
 | 433 |   ADD_DEFINE(USE_BACKEND_${BACKEND_OPTION}) | 
|---|
 | 434 |   ADD_DEFINE(ENABLE_EXTENSION_AL_EXT_${BACKEND_OPTION}) | 
|---|
 | 435 |   INCLUDE_DIRECTORIES(${${BACKEND_OPTION}_INCLUDE_DIRS}) | 
|---|
 | 436 |  | 
|---|
 | 437 |   ADD_DEFINITIONS(${${BACKEND_OPTION}_DEFINES}) | 
|---|
 | 438 |  | 
|---|
 | 439 |   IF(HAVE_DL AND ${BACKEND_OPTION}_DLOPEN) | 
|---|
 | 440 |     ADD_DEFINE(OPENAL_DLOPEN_${BACKEND_OPTION}) | 
|---|
 | 441 |     MESSAGE(STATUS "${BACKEND_OPTION} support - dynamic") | 
|---|
 | 442 |   ELSE(HAVE_DL AND ${BACKEND_OPTION}_DLOPEN) | 
|---|
 | 443 |  | 
|---|
 | 444 |     SET(ADD_LIBS ${ADD_LIBS} ${${BACKEND_OPTION}_LIBS}) | 
|---|
 | 445 |     LINK_DIRECTORIES(${${BACKEND_OPTION}_LINK_DIRS}) | 
|---|
 | 446 |     MESSAGE(STATUS "${BACKEND_OPTION} support - static") | 
|---|
 | 447 |   ENDIF(HAVE_DL AND ${BACKEND_OPTION}_DLOPEN) | 
|---|
 | 448 | ELSE(${BACKEND_OPTION} AND ${BACKEND_OPTION}_FOUND MATCHES "1${${BACKEND_OPTION}_DLOPEN}") | 
|---|
 | 449 |  | 
|---|
 | 450 |   MESSAGE(STATUS "${BACKEND_OPTION} support - disabled") | 
|---|
 | 451 |   SET(${BACKEND_OPTION} OFF CACHE BOOL "" FORCE) | 
|---|
 | 452 | ENDIF(${BACKEND_OPTION} AND ${BACKEND_OPTION}_FOUND MATCHES "1${${BACKEND_OPTION}_DLOPEN}") | 
|---|
 | 453 | ENDMACRO(CHECK_BACKEND) | 
|---|
 | 454 |  | 
|---|
 | 455 | #             OPT    PKG-NAME   LIB        HEADER              TEST-FUNCTION | 
|---|
 | 456 | CHECK_BACKEND(ALSA   alsa       asound     alsa/asoundlib.h    snd_pcm_info_sizeof) | 
|---|
 | 457 | CHECK_BACKEND(ARTS   artsc      artsc      artsc.h             arts_free) | 
|---|
 | 458 | CHECK_BACKEND(DMEDIA ""         audio      dmedia/audio.h      alGetResourceByName) | 
|---|
 | 459 | CHECK_BACKEND(ESD    esd        esd        esd.h               esd_audio_open) | 
|---|
 | 460 | CHECK_BACKEND(SDL    sdl        sdl        SDL.h               SDL_LockAudio) | 
|---|
 | 461 | #IF(WIN32) | 
|---|
 | 462 | #  CHECK_BACKEND(DSOUND ""       dsound     dsound.h     ???) | 
|---|
 | 463 | #ENDIF(WIN32) | 
|---|
 | 464 |  | 
|---|
 | 465 | CHECK_BACKEND(MP3    smpeg      smpeg      smpeg.h             SMPEG_play) | 
|---|
 | 466 | CHECK_BACKEND(VORBIS vorbisfile vorbisfile vorbis/vorbisfile.h ov_clear) | 
|---|
 | 467 |  | 
|---|
 | 468 | IF(WAVEOUT) | 
|---|
 | 469 |   SET(OS_OBJS ${OS_OBJS} ${WAVEOUT_OBJS}) | 
|---|
 | 470 |   ADD_DEFINE(USE_BACKEND_WAVEOUT) | 
|---|
 | 471 | ENDIF(WAVEOUT) | 
|---|
 | 472 |  | 
|---|
 | 473 | IF(NULLOUT) | 
|---|
 | 474 |   SET(OS_OBJS ${OS_OBJS} ${NULL_OBJS}) | 
|---|
 | 475 |   ADD_DEFINE(USE_BACKEND_NULL) | 
|---|
 | 476 | ENDIF(NULLOUT) | 
|---|
 | 477 |  | 
|---|
 | 478 |  | 
|---|
 | 479 | # Special objs for architectures | 
|---|
 | 480 | IF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64") | 
|---|
 | 481 |   INCLUDE_DIRECTORIES(${OpenAL_SOURCE_DIR}/src/arch/i386) | 
|---|
 | 482 |   SET(ARCH_OBJS ${x86_OBJS}) | 
|---|
 | 483 |  | 
|---|
 | 484 |   MACRO_TEST(__MMX__ HAVE_MMX) | 
|---|
 | 485 |   IF(HAVE_MMX) | 
|---|
 | 486 |     SET(ARCH_OBJS ${ARCH_OBJS} ${x86_MMX_OBJS}) | 
|---|
 | 487 |    | 
|---|
 | 488 |  | 
|---|
 | 489 |   IF(CMAKE_SYSTEM_MACHINE MATCHES "i.86") | 
|---|
 | 490 |     # nasm stuff | 
|---|
 | 491 |     FIND_PROGRAM(HAVE_NASM NAMES nasm) | 
|---|
 | 492 |  | 
|---|
 | 493 |     IF(NOT HAVE_NASM MATCHES "NOTFOUND") | 
|---|
 | 494 |       PROJECT(OpenAL ASM) | 
|---|
 | 495 |       MESSAGE(STATUS "Using NASM") | 
|---|
 | 496 |       ADD_DEFINE(HAVE_CPU_CAPS_DETECTION) | 
|---|
 | 497 |       SET(ARCH_OBJS ${ARCH_OBJS} ${x86_NASM_OBJS}) | 
|---|
 | 498 |  | 
|---|
 | 499 |       IF(HAVE_MMX) | 
|---|
 | 500 |         SET(ARCH_OBJS ${ARCH_OBJS} ${x86_MMX_NASM_OBJS}) | 
|---|
 | 501 |         ADD_DEFINE(HAVE_MMX_MEMCPY) | 
|---|
 | 502 |       ENDIF(HAVE_MMX) | 
|---|
 | 503 |     ELSE(NOT HAVE_NASM MATCHES "NOTFOUND") | 
|---|
 | 504 |  | 
|---|
 | 505 |       IF(HAVE_MMX) | 
|---|
 | 506 |         MESSAGE("Warning: MMX capability found, but NASM not found. Without NASM no SIMD detection (MMX enabled by default) and no MMX memcopy is built.") | 
|---|
 | 507 |       ENDIF(HAVE_MMX) | 
|---|
 | 508 |     ENDIF(NOT HAVE_NASM MATCHES "NOTFOUND") | 
|---|
 | 509 |   ENDIF(CMAKE_SYSTEM_MACHINE MATCHES "i.86") | 
|---|
 | 510 |  | 
|---|
 | 511 |   IF(CMAKE_SYSTEM_MACHINE MATCHES "i686" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64") | 
|---|
 | 512 |     OPTION(OPTIM_GENERIC "enable full generic mixing despite MMX optimized routines" OFF) | 
|---|
 | 513 |   ELSE(CMAKE_SYSTEM_MACHINE MATCHES "i686" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64") | 
|---|
 | 514 |  | 
|---|
 | 515 |     OPTION(OPTIM_GENERIC "enable full generic mixing" ON) | 
|---|
 | 516 |   ENDIF(CMAKE_SYSTEM_MACHINE MATCHES "i686" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64") | 
|---|
 | 517 |  | 
|---|
 | 518 |   IF(NOT OPTIM_GENERIC) | 
|---|
 | 519 |     ADD_DEFINE(USE_LIGHT_GEN_MIXING) | 
|---|
 | 520 |   ENDIF(NOT OPTIM_GENERIC) | 
|---|
 | 521 |   ENDIF(HAVE_MMX) | 
|---|
 | 522 | ELSE(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64") | 
|---|
 | 523 |  | 
|---|
 | 524 |   SET(ARCH_OBJS ${PORTABLE_OBJS}) | 
|---|
 | 525 | ENDIF(CMAKE_SYSTEM_MACHINE MATCHES "i.86" OR CMAKE_SYSTEM_MACHINE MATCHES "x86_64") | 
|---|
 | 526 |  | 
|---|
 | 527 |  | 
|---|
 | 528 | # compiler specific settings | 
|---|
 | 529 | FIND_PACKAGE(CompilerAttribute) | 
|---|
 | 530 | FIND_PACKAGE(CompilerVisibility) | 
|---|
 | 531 | FIND_PACKAGE(CompilerFlagsSet) | 
|---|
 | 532 |  | 
|---|
 | 533 | ADD_DEFINE(AL_SUPPORT_BYTE_LOKI_SOURCE_ATTR_) | 
|---|
 | 534 | ADD_DEFINITIONS(-DAL_BUILD_LIBRARY) | 
|---|
 | 535 |  | 
|---|
 | 536 |  | 
|---|
 | 537 | GENERATE_CONFIG_H() | 
|---|
 | 538 |  | 
|---|
 | 539 | SET(CMAKE_C_FLAGS "${ADD_WFLAGS} ${ADD_CFLAGS} ${CMAKE_C_FLAGS}") | 
|---|
 | 540 | SET(CMAKE_CXX_FLAGS "${ADD_CFLAGS} ${CMAKE_CXX_FLAGS}") | 
|---|
 | 541 | SET(CMAKE_SHARED_LINKER_FLAGS "${ADD_LDFLAGS} ${CMAKE_SHARED_LINKER_FLAGS}") | 
|---|
 | 542 | SET(CMAKE_MODULE_LINKER_FLAGS "${ADD_LDFLAGS} ${CMAKE_MODULE_LINKER_FLAGS}") | 
|---|
 | 543 |  | 
|---|
 | 544 | SET(OPENAL_OBJS ${AL_OBJS} | 
|---|
 | 545 |                 ${OS_OBJS} | 
|---|
 | 546 |                 ${ARCH_OBJS} | 
|---|
 | 547 |                 ${ALC_OBJS} | 
|---|
 | 548 |                 ${AC_OBJS} | 
|---|
 | 549 |                 ${EXT_OBJS}) | 
|---|
 | 550 |  | 
|---|
 | 551 | IF(BUILD_STATIC) | 
|---|
 | 552 |   # we can't create a static library with the same name | 
|---|
 | 553 |   # as the shared one, so we copy it over after creation | 
|---|
 | 554 |   ADD_LIBRARY(openal-static STATIC ${OPENAL_OBJS}) | 
|---|
 | 555 |   #SET_TARGET_PROPERTIES(openal-static PROPERTIES OUTPUT_NAME openal) | 
|---|
 | 556 |   SET_TARGET_PROPERTIES(openal-static PROPERTIES LINKER_LANGUAGE C) | 
|---|
 | 557 |   TARGET_LINK_LIBRARIES(openal-static ${ADD_LIBS}) | 
|---|
 | 558 |   ADD_CUSTOM_COMMAND( | 
|---|
 | 559 |     TARGET openal-static | 
|---|
 | 560 |     POST_BUILD | 
|---|
 | 561 |     COMMAND ${CMAKE_COMMAND} | 
|---|
 | 562 |     ARGS -E copy | 
|---|
 | 563 |       ${CMAKE_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}openal-static${CMAKE_STATIC_LIBRARY_SUFFIX} | 
|---|
 | 564 |       ${CMAKE_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}openal${CMAKE_STATIC_LIBRARY_SUFFIX}) | 
|---|
 | 565 |   INSTALL_FILES(/lib FILES ${CMAKE_STATIC_LIBRARY_PREFIX}openal${CMAKE_STATIC_LIBRARY_SUFFIX}) | 
|---|
 | 566 | ENDIF(BUILD_STATIC) | 
|---|
 | 567 |  | 
|---|
 | 568 | ADD_LIBRARY(openal SHARED ${OPENAL_OBJS}) | 
|---|
 | 569 | SET_TARGET_PROPERTIES(openal PROPERTIES LINKER_LANGUAGE C) | 
|---|
 | 570 | SET_TARGET_PROPERTIES(openal PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${PACKAGE_MAJOR_VERSION}) | 
|---|
 | 571 | TARGET_LINK_LIBRARIES(openal ${ADD_LIBS}) | 
|---|
 | 572 | INSTALL_TARGETS(/lib openal) | 
|---|
 | 573 | INSTALL_FILES(/include/AL FILES common/include/AL/al.h | 
|---|
 | 574 |                                 common/include/AL/alc.h | 
|---|
 | 575 |                                 include/AL/alext.h) | 
|---|
 | 576 |  | 
|---|
 | 577 | # build test-suite | 
|---|
 | 578 | IF(BUILD_TESTS) | 
|---|
 | 579 |   # need CXX for testcpp only | 
|---|
 | 580 |   PROJECT(OpenAL CXX) | 
|---|
 | 581 |   FIND_LIBRARY(ALUT_LIB NAMES alut PATHS /usr/lib /usr/local/lib) | 
|---|
 | 582 |   IF(ALUT_LIB MATCHES "NOTFOUND") | 
|---|
 | 583 |     MESSAGE("alut not installed, cannot build tests") | 
|---|
 | 584 |   ELSE(ALUT_LIB MATCHES "NOTFOUND") | 
|---|
 | 585 |  | 
|---|
 | 586 |     ADD_LIBRARY(testlib test/testlib.c) | 
|---|
 | 587 |     TARGET_LINK_LIBRARIES(testlib ${ADD_LIBS} openal ${ALUT_LIB}) | 
|---|
 | 588 |  | 
|---|
 | 589 |     SET(TESTS rotatesound | 
|---|
 | 590 |               reverb | 
|---|
 | 591 |               da | 
|---|
 | 592 |               multi | 
|---|
 | 593 |               multinothread | 
|---|
 | 594 |               alut | 
|---|
 | 595 |               time | 
|---|
 | 596 |               multialut | 
|---|
 | 597 |               alinitexit | 
|---|
 | 598 |               single | 
|---|
 | 599 |               nothread | 
|---|
 | 600 |               pitch | 
|---|
 | 601 |               pitch2 | 
|---|
 | 602 |               pitch3 | 
|---|
 | 603 |               pitch4 | 
|---|
 | 604 |               doppler | 
|---|
 | 605 |               sourcestop | 
|---|
 | 606 |               ext | 
|---|
 | 607 |               stream | 
|---|
 | 608 |               callback | 
|---|
 | 609 |               orient | 
|---|
 | 610 |               relative | 
|---|
 | 611 |               channel | 
|---|
 | 612 |               channel2 | 
|---|
 | 613 |               pause | 
|---|
 | 614 |               pitchnothread | 
|---|
 | 615 |               pitchnothread2 | 
|---|
 | 616 |               gain | 
|---|
 | 617 |               loop | 
|---|
 | 618 |               listener | 
|---|
 | 619 |               listener2 | 
|---|
 | 620 |               listener3 | 
|---|
 | 621 |               listener4 | 
|---|
 | 622 |               bufferuniq | 
|---|
 | 623 |               sourceuniq | 
|---|
 | 624 |               gendelbuffer_error | 
|---|
 | 625 |               gendelsource_error | 
|---|
 | 626 |               multichannel | 
|---|
 | 627 |               mp3 | 
|---|
 | 628 |               mp32 | 
|---|
 | 629 |               vorbis | 
|---|
 | 630 |               gainlinear | 
|---|
 | 631 |               multimp3 | 
|---|
 | 632 |               queue | 
|---|
 | 633 |               queue2 | 
|---|
 | 634 |               queue3 | 
|---|
 | 635 |               capture | 
|---|
 | 636 |               capture2 | 
|---|
 | 637 |               leak | 
|---|
 | 638 |               multicontext | 
|---|
 | 639 |               strings | 
|---|
 | 640 |               attributes) | 
|---|
 | 641 |  | 
|---|
 | 642 |     FOREACH(TEST ${TESTS}) | 
|---|
 | 643 |       SET(TEST_SRC test/test${TEST}.c) | 
|---|
 | 644 |       # gets added at the beginning thus having no effect | 
|---|
 | 645 |       SET_SOURCE_FILES_PROPERTIES(${TEST_SRC} PROPERTIES COMPILE_FLAGS "-Wno-unused") | 
|---|
 | 646 |       ADD_EXECUTABLE(test${TEST} ${TEST_SRC}) | 
|---|
 | 647 |       TARGET_LINK_LIBRARIES(test${TEST} testlib openal ${ALUT_LIB}) | 
|---|
 | 648 |     ENDFOREACH(TEST) | 
|---|
 | 649 |  | 
|---|
 | 650 |     SET_SOURCE_FILES_PROPERTIES(test/testcpp.cc PROPERTIES COMPILE_FLAGS "-Wno-unused") | 
|---|
 | 651 |     ADD_EXECUTABLE(testcpp test/testcpp.cc) | 
|---|
 | 652 |     TARGET_LINK_LIBRARIES(testcpp testlib openal ${ALUT_LIB}) | 
|---|
 | 653 |  | 
|---|
 | 654 |     # copy over testdata, so test-suite can be used in binary dir | 
|---|
 | 655 |     SET(TESTDATA boom.mp3 | 
|---|
 | 656 |                  boom.ogg | 
|---|
 | 657 |                  boom.wav | 
|---|
 | 658 |                  fire2.wav | 
|---|
 | 659 |                  multiboom.wav | 
|---|
 | 660 |                  multisample.wav | 
|---|
 | 661 |                  sample.wav) | 
|---|
 | 662 |  | 
|---|
 | 663 |     FOREACH(TESTDATUM ${TESTDATA}) | 
|---|
 | 664 |       CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/test/${TESTDATUM} ${CMAKE_BINARY_DIR}/${TESTDATUM} COPYONLY) | 
|---|
 | 665 |     ENDFOREACH(TESTDATUM) | 
|---|
 | 666 |   ENDIF(ALUT_LIB MATCHES "NOTFOUND") | 
|---|
 | 667 | ENDIF(BUILD_TESTS) | 
|---|
 | 668 |  | 
|---|
 | 669 |  | 
|---|
 | 670 | # needed for openal.pc.in and openal-config.in | 
|---|
 | 671 | SET(prefix ${CMAKE_INSTALL_PREFIX}) | 
|---|
 | 672 | SET(exec_prefix "\${prefix}") | 
|---|
 | 673 | SET(libdir "\${exec_prefix}/lib") | 
|---|
 | 674 | SET(bindir "\${exec_prefix}/bin") | 
|---|
 | 675 | SET(includedir "\${prefix}/include") | 
|---|
 | 676 | SET(requirements "") | 
|---|
 | 677 | SET(PTHREAD_LIBS ${CMAKE_THREAD_LIBS_INIT}) | 
|---|
 | 678 |  | 
|---|
 | 679 | CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/admin/pkgconfig/openal.pc.in ${CMAKE_BINARY_DIR}/admin/pkgconfig/openal.pc @ONLY) | 
|---|
 | 680 | CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/admin/pkgconfig/openal-config.in ${CMAKE_BINARY_DIR}/admin/pkgconfig/openal-config @ONLY) | 
|---|
 | 681 | INSTALL_PROGRAMS(/bin FILES admin/pkgconfig/openal-config) | 
|---|
 | 682 | INSTALL_FILES(/lib/pkgconfig FILES admin/pkgconfig/openal.pc) | 
|---|
 | 683 |  | 
|---|
 | 684 |  | 
|---|
 | 685 | # info file | 
|---|
 | 686 | IF(UNIX) | 
|---|
 | 687 |   FIND_PROGRAM(MAKEINFO_PRG NAMES makeinfo) | 
|---|
 | 688 |   IF(NOT MAKEINFO_PRG MATCHES "NOTFOUND") | 
|---|
 | 689 |     IF(NOT EXISTS ${CMAKE_BINARY_DIR}/doc) | 
|---|
 | 690 |       MAKE_DIRECTORY(${CMAKE_BINARY_DIR}/doc) | 
|---|
 | 691 |     ENDIF(NOT EXISTS ${CMAKE_BINARY_DIR}/doc) | 
|---|
 | 692 |  | 
|---|
 | 693 |     ADD_CUSTOM_COMMAND( | 
|---|
 | 694 |       OUTPUT    ${CMAKE_BINARY_DIR}/doc/openal.info | 
|---|
 | 695 |       DEPENDS   ${CMAKE_SOURCE_DIR}/doc/openal.texi | 
|---|
 | 696 |       COMMAND   cd ${CMAKE_BINARY_DIR}/doc && ${MAKEINFO_PRG} | 
|---|
 | 697 |       ARGS      ${CMAKE_SOURCE_DIR}/doc/openal.texi) | 
|---|
 | 698 |  | 
|---|
 | 699 |     ADD_CUSTOM_TARGET(InfoFile ALL echo DEPENDS ${CMAKE_BINARY_DIR}/doc/openal.info) | 
|---|
 | 700 |     INSTALL_FILES(/share/info FILES doc/openal.info) | 
|---|
 | 701 |   ENDIF(NOT MAKEINFO_PRG MATCHES "NOTFOUND") | 
|---|
 | 702 | ENDIF(UNIX) | 
|---|
 | 703 |  | 
|---|