2
0

openal.lua 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. --
  2. -- Copyright (c) 2012-2025 Daniele Bartolini et al.
  3. -- SPDX-License-Identifier: MIT
  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. "AL_ALEXT_PROTOTYPES",
  12. "HAVE_MALLOC_H",
  13. "HAVE_STAT",
  14. "SIZEOF_LONG_LONG=8",
  15. }
  16. configuration { "not vs*" }
  17. defines {
  18. "HAVE_DIRENT_H",
  19. "HAVE_PTHREAD_SETNAME_NP",
  20. "HAVE_PTHREAD_SETSCHEDPARAM",
  21. "restrict=__restrict",
  22. "SIZEOF_LONG=8",
  23. }
  24. buildoptions {
  25. "-fPIC",
  26. "-fvisibility=hidden",
  27. "-fexceptions" -- :(
  28. }
  29. configuration { "android-* or linux-*" }
  30. defines {
  31. "HAVE_DLFCN_H",
  32. "HAVE_GCC_GET_CPUID",
  33. }
  34. links {
  35. "pthread",
  36. }
  37. configuration { "not android-*" }
  38. defines {
  39. "HAVE_SSE",
  40. "HAVE_SSE2",
  41. }
  42. files {
  43. AL_DIR .. "alc/mixer/mixer_sse2.cpp",
  44. AL_DIR .. "alc/mixer/mixer_sse.cpp",
  45. }
  46. configuration { "android-*" }
  47. defines {
  48. "HAVE_NEON",
  49. "HAVE_OPENSL",
  50. }
  51. files {
  52. AL_DIR .. "alc/mixer/mixer_neon.cpp",
  53. AL_DIR .. "alc/backends/opensl.cpp",
  54. }
  55. configuration { "linux-*" }
  56. defines {
  57. "HAVE_CPUID_H",
  58. "HAVE_POSIX_MEMALIGN",
  59. "HAVE_PULSEAUDIO",
  60. }
  61. files {
  62. AL_DIR .. "alc/backends/pulseaudio.cpp",
  63. }
  64. configuration { "vs* or mingw-*"}
  65. defines {
  66. "_WIN32_WINNT=0x0502",
  67. "_WINDOWS",
  68. "HAVE__ALIGNED_MALLOC",
  69. "HAVE_CPUID_INTRINSIC",
  70. "HAVE_DSOUND",
  71. "HAVE_GUIDDEF_H",
  72. "HAVE_INTRIN_H",
  73. "HAVE_WASAPI",
  74. "HAVE_WINDOWS_H",
  75. "HAVE_WINMM",
  76. "strcasecmp=_stricmp",
  77. "strncasecmp=_strnicmp",
  78. }
  79. files {
  80. AL_DIR .. "alc/backends/dsound.cpp",
  81. AL_DIR .. "alc/backends/wasapi.cpp",
  82. AL_DIR .. "alc/backends/winmm.cpp",
  83. }
  84. links {
  85. "winmm",
  86. "ole32",
  87. }
  88. configuration { "vs*" }
  89. defines {
  90. "_CRT_NONSTDC_NO_DEPRECATE",
  91. "restrict=",
  92. "SIZEOF_LONG=4",
  93. }
  94. buildoptions {
  95. "/wd4098",
  96. "/wd4267",
  97. "/wd4244",
  98. "/EHs", -- :(
  99. }
  100. configuration {}
  101. includedirs {
  102. AL_DIR .. "include",
  103. AL_DIR,
  104. AL_DIR .. "alc",
  105. AL_DIR .. "common",
  106. }
  107. files {
  108. AL_DIR .. "al/*.cpp",
  109. AL_DIR .. "alc/*.cpp",
  110. AL_DIR .. "alc/backends/base.cpp",
  111. AL_DIR .. "alc/backends/loopback.cpp",
  112. AL_DIR .. "alc/backends/null.cpp",
  113. AL_DIR .. "alc/effects/*.cpp",
  114. AL_DIR .. "alc/filters/*.cpp",
  115. AL_DIR .. "alc/midi/*.cpp",
  116. AL_DIR .. "alc/mixer/mixer_c.cpp",
  117. AL_DIR .. "common/*.cpp",
  118. }
  119. configuration {}
  120. end