openal.lua 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. --
  2. -- Copyright (c) 2012-2017 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 .. "3rdparty/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. "HAVE_C99_VLA",
  28. "HAVE_DIRENT_H",
  29. "HAVE_DLFCN_H",
  30. "HAVE_GCC_DESTRUCTOR",
  31. "HAVE_GCC_FORMAT",
  32. "HAVE_GCC_GET_CPUID",
  33. "HAVE_PTHREAD_SETNAME_NP",
  34. "HAVE_PTHREAD_SETSCHEDPARAM",
  35. "HAVE_STRINGS_H",
  36. "restrict=__restrict",
  37. "SIZEOF_LONG=8",
  38. "SIZEOF_LONG_LONG=8",
  39. }
  40. buildoptions {
  41. "-std=c99",
  42. "-fPIC",
  43. "-fvisibility=hidden",
  44. "-Winline",
  45. }
  46. configuration { "linux-* or vs*" }
  47. defines {
  48. "HAVE_SSE",
  49. "HAVE_SSE2",
  50. }
  51. files {
  52. AL_DIR .. "Alc/mixer_sse2.c",
  53. AL_DIR .. "Alc/mixer_sse.c",
  54. }
  55. configuration { "not vs*" }
  56. defines {
  57. -- These are needed on non-Windows systems for extra features
  58. "_GNU_SOURCE=1",
  59. "_POSIX_C_SOURCE=200809L",
  60. "_XOPEN_SOURCE=700",
  61. }
  62. configuration { "android-*" }
  63. files {
  64. AL_DIR .. "Alc/backends/opensl.c"
  65. }
  66. links {
  67. "OpenSLES",
  68. }
  69. configuration { "linux-*" }
  70. defines {
  71. "HAVE_CPUID_H",
  72. "HAVE_POSIX_MEMALIGN",
  73. "HAVE_PTHREAD_MUTEX_TIMEDLOCK",
  74. "HAVE_PULSEAUDIO",
  75. }
  76. files {
  77. AL_DIR .. "Alc/backends/pulseaudio.c",
  78. }
  79. configuration { "vs*" }
  80. defines {
  81. "_CRT_NONSTDC_NO_DEPRECATE",
  82. "_WIN32_WINNT=0x0502",
  83. "_WINDOWS",
  84. "HAVE___CONTROL87_2",
  85. "HAVE__ALIGNED_MALLOC",
  86. "HAVE__CONTROLFP",
  87. "HAVE_CPUID_INTRINSIC",
  88. "HAVE_DSOUND",
  89. "HAVE_GUIDDEF_H",
  90. "HAVE_INTRIN_H",
  91. "HAVE_IO_H",
  92. "HAVE_MMDEVAPI",
  93. "HAVE_WINDOWS_H",
  94. "HAVE_WINMM",
  95. "inline=__inline",
  96. "restrict=",
  97. "SIZEOF_LONG=4",
  98. "SIZEOF_LONG_LONG=8",
  99. "snprintf=_snprintf",
  100. "strcasecmp=_stricmp",
  101. "strncasecmp=_strnicmp",
  102. }
  103. buildoptions {
  104. "/wd4098",
  105. "/wd4267",
  106. "/wd4244",
  107. }
  108. files {
  109. AL_DIR .. "Alc/backends/mmdevapi.c",
  110. AL_DIR .. "Alc/backends/dsound.c",
  111. AL_DIR .. "Alc/backends/winmm.c",
  112. }
  113. links {
  114. "winmm",
  115. }
  116. configuration {}
  117. includedirs {
  118. AL_DIR,
  119. AL_DIR .. "include",
  120. AL_DIR .. "Alc",
  121. AL_DIR .. "OpenAL32/Include",
  122. }
  123. files {
  124. AL_DIR .. "common/*.c",
  125. AL_DIR .. "Alc/ALc.c",
  126. AL_DIR .. "Alc/ALu.c",
  127. AL_DIR .. "Alc/bsinc.c",
  128. AL_DIR .. "Alc/alcConfig.c",
  129. AL_DIR .. "Alc/alcRing.c",
  130. AL_DIR .. "Alc/bs2b.c",
  131. AL_DIR .. "Alc/helpers.c",
  132. AL_DIR .. "Alc/hrtf.c",
  133. AL_DIR .. "Alc/panning.c",
  134. AL_DIR .. "Alc/mixer.c",
  135. AL_DIR .. "Alc/mixer_c.c",
  136. AL_DIR .. "Alc/effects/*.c",
  137. AL_DIR .. "Alc/midi/*.c",
  138. AL_DIR .. "Alc/backends/base.c",
  139. AL_DIR .. "Alc/backends/loopback.c",
  140. AL_DIR .. "Alc/backends/null.c",
  141. AL_DIR .. "OpenAL32/*.c",
  142. }
  143. configuration {}
  144. end