openal.lua 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. --
  2. -- Copyright (c) 2012-2016 Daniele Bartolini and individual contributors.
  3. -- License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. --
  5. function openal_project(_kind)
  6. project "openal"
  7. kind (_kind)
  8. configuration {}
  9. local AL_DIR = (CROWN_DIR .. "third/openal/")
  10. defines {
  11. "_LARGE_FILES",
  12. "_LARGEFILE_SOURCE",
  13. "AL_ALEXT_PROTOTYPES",
  14. "AL_BUILD_LIBRARY",
  15. "HAVE_C99_BOOL",
  16. "HAVE_FENV_H",
  17. "HAVE_FLOAT_H",
  18. "HAVE_LRINTF",
  19. "HAVE_MALLOC_H",
  20. "HAVE_STAT",
  21. "HAVE_STDBOOL_H",
  22. "HAVE_STDINT_H",
  23. "HAVE_STRTOF",
  24. }
  25. configuration { "android-* or linux-*" }
  26. defines {
  27. "'ALIGN(x)=__attribute__((aligned(x)))'",
  28. "HAVE_C99_VLA",
  29. "HAVE_DIRENT_H",
  30. "HAVE_DLFCN_H",
  31. "HAVE_GCC_DESTRUCTOR",
  32. "HAVE_GCC_FORMAT",
  33. "HAVE_GCC_GET_CPUID",
  34. "HAVE_PTHREAD_SETNAME_NP",
  35. "HAVE_PTHREAD_SETSCHEDPARAM",
  36. "HAVE_STRINGS_H",
  37. "restrict=__restrict",
  38. "SIZEOF_LONG=8",
  39. "SIZEOF_LONG_LONG=8",
  40. }
  41. buildoptions {
  42. "-std=c99",
  43. "-fPIC",
  44. "-fvisibility=hidden",
  45. "-Winline",
  46. }
  47. configuration { "linux-* or vs*" }
  48. defines {
  49. "HAVE_SSE",
  50. "HAVE_SSE2",
  51. }
  52. files {
  53. AL_DIR .. "Alc/mixer_sse2.c",
  54. AL_DIR .. "Alc/mixer_sse.c",
  55. }
  56. configuration { "not vs*" }
  57. defines {
  58. -- These are needed on non-Windows systems for extra features
  59. "_GNU_SOURCE=1",
  60. "_POSIX_C_SOURCE=200809L",
  61. "_XOPEN_SOURCE=700",
  62. }
  63. configuration { "android-*" }
  64. files {
  65. AL_DIR .. "Alc/backends/opensl.c"
  66. }
  67. links {
  68. "OpenSLES",
  69. }
  70. configuration { "linux-*" }
  71. defines {
  72. "HAVE_CPUID_H",
  73. "HAVE_POSIX_MEMALIGN",
  74. "HAVE_PTHREAD_MUTEX_TIMEDLOCK",
  75. "HAVE_PULSEAUDIO",
  76. }
  77. files {
  78. AL_DIR .. "Alc/backends/pulseaudio.c",
  79. }
  80. configuration { "vs*" }
  81. defines {
  82. "_CRT_NONSTDC_NO_DEPRECATE",
  83. "_WIN32_WINNT=0x0502",
  84. "_WINDOWS",
  85. "HAVE___CONTROL87_2",
  86. "HAVE__ALIGNED_MALLOC",
  87. "HAVE__CONTROLFP",
  88. "HAVE_CPUID_INTRINSIC",
  89. "HAVE_DSOUND",
  90. "HAVE_GUIDDEF_H",
  91. "HAVE_INTRIN_H",
  92. "HAVE_IO_H",
  93. "HAVE_MMDEVAPI",
  94. "HAVE_WINDOWS_H",
  95. "HAVE_WINMM",
  96. "inline=__inline",
  97. "restrict=",
  98. "SIZEOF_LONG=4",
  99. "SIZEOF_LONG_LONG=8",
  100. "snprintf=_snprintf",
  101. "strcasecmp=_stricmp",
  102. "strncasecmp=_strnicmp",
  103. }
  104. buildoptions {
  105. "/wd4098",
  106. "/wd4267",
  107. "/wd4244",
  108. }
  109. files {
  110. AL_DIR .. "Alc/backends/mmdevapi.c",
  111. AL_DIR .. "Alc/backends/dsound.c",
  112. AL_DIR .. "Alc/backends/winmm.c",
  113. }
  114. links {
  115. "winmm",
  116. }
  117. configuration {}
  118. includedirs {
  119. AL_DIR,
  120. AL_DIR .. "include",
  121. AL_DIR .. "Alc",
  122. AL_DIR .. "OpenAL32/Include",
  123. }
  124. files {
  125. AL_DIR .. "common/*.c",
  126. AL_DIR .. "Alc/ALc.c",
  127. AL_DIR .. "Alc/ALu.c",
  128. AL_DIR .. "Alc/bsinc.c",
  129. AL_DIR .. "Alc/alcConfig.c",
  130. AL_DIR .. "Alc/alcRing.c",
  131. AL_DIR .. "Alc/bs2b.c",
  132. AL_DIR .. "Alc/helpers.c",
  133. AL_DIR .. "Alc/hrtf.c",
  134. AL_DIR .. "Alc/panning.c",
  135. AL_DIR .. "Alc/mixer.c",
  136. AL_DIR .. "Alc/mixer_c.c",
  137. AL_DIR .. "Alc/effects/*.c",
  138. AL_DIR .. "Alc/midi/*.c",
  139. AL_DIR .. "Alc/backends/base.c",
  140. AL_DIR .. "Alc/backends/loopback.c",
  141. AL_DIR .. "Alc/backends/null.c",
  142. AL_DIR .. "OpenAL32/*.c",
  143. }
  144. configuration {}
  145. end