summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/src
diff options
context:
space:
mode:
author inte alls <inte@localhost.localdomain>2017-01-11 20:24:00 +0100
committer inte alls <inte@localhost.localdomain>2017-01-11 20:24:00 +0100
commitcd03a642849d567e2f42355bf18ca99cb600b246 (patch)
tree1a64cd6c370ad980d6d03499baf45dc208fa2473 /scripts/src
parent37e8b161d80efea67d5bfc71d58d050628ba7820 (diff)
Initial PortAudio backend with build script changes to support library version 20161030
Diffstat (limited to 'scripts/src')
-rw-r--r--scripts/src/3rdparty.lua304
-rw-r--r--scripts/src/main.lua10
-rw-r--r--scripts/src/osd/modules.lua25
3 files changed, 190 insertions, 149 deletions
diff --git a/scripts/src/3rdparty.lua b/scripts/src/3rdparty.lua
index 211cd7c5fd8..081f8692f66 100644
--- a/scripts/src/3rdparty.lua
+++ b/scripts/src/3rdparty.lua
@@ -902,155 +902,161 @@ end
--------------------------------------------------
-- PortAudio library objects
--------------------------------------------------
---
---if not _OPTIONS["with-system-portaudio"] then
---project "portaudio"
--- uuid "0755c5f5-eccf-47f3-98a9-df67018a94d4"
--- kind "StaticLib"
---
--- configuration { "vs*" }
--- buildoptions {
--- "/wd4245", -- warning C4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
--- "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
--- "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
--- "/wd4389", -- warning C4389: 'operator' : signed/unsigned mismatch
--- "/wd4189", -- warning C4189: 'xxx' : local variable is initialized but not referenced
--- "/wd4127", -- warning C4127: conditional expression is constant
--- }
---if _OPTIONS["vs"]=="intel-15" then
--- buildoptions {
--- "/Qwd869", -- remark #869: parameter "xxx" was never referenced
--- "/Qwd1478", -- warning #1478: function "xxx" (declared at line yyy of "zzz") was declared deprecated
--- "/Qwd2544", -- message #2544: empty dependent statement in if-statement
--- "/Qwd1879", -- warning #1879: unimplemented pragma ignored
--- }
---end
--- configuration { "vs201*" }
--- buildoptions {
--- "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
--- }
---
--- configuration { "gmake or ninja" }
--- buildoptions_c {
--- "-Wno-strict-prototypes",
--- "-Wno-bad-function-cast",
--- "-Wno-undef",
--- "-Wno-missing-braces",
--- "-Wno-unused-variable",
--- "-Wno-unused-value",
--- "-Wno-unused-function",
--- "-Wno-unknown-pragmas",
--- }
---
--- local version = str_to_version(_OPTIONS["gcc_version"])
--- if (_OPTIONS["gcc"]~=nil) then
--- if string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "android") then
--- buildoptions_c {
--- "-Wno-unknown-warning-option",
--- "-Wno-absolute-value",
--- "-Wno-unused-but-set-variable",
--- "-Wno-maybe-uninitialized",
--- "-Wno-sometimes-uninitialized",
--- }
--- else
--- if (version >= 40600) then
--- buildoptions_c {
--- "-Wno-unused-but-set-variable",
--- "-Wno-maybe-uninitialized",
--- "-Wno-sometimes-uninitialized",
--- }
--- end
--- end
--- end
--- configuration { "vs*" }
--- buildoptions {
--- "/wd4204", -- warning C4204: nonstandard extension used : non-constant aggregate initializer
--- "/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
--- }
---
--- configuration { }
---
--- includedirs {
--- MAME_DIR .. "3rdparty/portaudio/include",
--- MAME_DIR .. "3rdparty/portaudio/src/common",
--- }
---
--- files {
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_allocation.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_converters.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_cpuload.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_dither.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_debugprint.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_front.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_process.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_stream.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_trace.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/skeleton/pa_hostapi_skeleton.c",
--- }
---
--- if _OPTIONS["targetos"]=="windows" then
--- defines {
--- "PA_USE_DS=1",
--- "PA_USE_WDMKS=1",
--- "PA_USE_WMME=1",
--- }
--- includedirs {
--- MAME_DIR .. "3rdparty/portaudio/src/os/win",
--- }
---
--- configuration { }
--- files {
--- MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_util.c",
--- MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_waveformat.c",
--- MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_hostapis.c",
--- MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_wdmks_utils.c",
--- MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_coinitialize.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/wdmks/pa_win_wdmks.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_ringbuffer.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/wmme/pa_win_wmme.c",
--- }
---
--- end
--- if _OPTIONS["targetos"]=="linux" then
--- defines {
--- "PA_USE_ALSA=1",
--- "PA_USE_OSS=1",
--- "HAVE_LINUX_SOUNDCARD_H",
--- }
--- includedirs {
--- MAME_DIR .. "3rdparty/portaudio/src/os/unix",
--- }
--- files {
--- MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_hostapis.c",
--- MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_util.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/alsa/pa_linux_alsa.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/oss/pa_unix_oss.c",
--- }
--- end
--- if _OPTIONS["targetos"]=="macosx" then
--- defines {
--- "PA_USE_COREAUDIO=1",
--- }
--- includedirs {
--- MAME_DIR .. "3rdparty/portaudio/src/os/unix",
--- }
--- files {
--- MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_hostapis.c",
--- MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_util.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c",
--- MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c",
--- MAME_DIR .. "3rdparty/portaudio/src/common/pa_ringbuffer.c",
--- }
--- end
---
---else
---links {
--- ext_lib("portaudio"),
---}
---end
+if _OPTIONS["NO_USE_PORTAUDIO"]~="1" then
+if not _OPTIONS["with-system-portaudio"] then
+project "portaudio"
+ uuid "0755c5f5-eccf-47f3-98a9-df67018a94d4"
+ kind "StaticLib"
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4245", -- warning C4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4389", -- warning C4389: 'operator' : signed/unsigned mismatch
+ "/wd4189", -- warning C4189: 'xxx' : local variable is initialized but not referenced
+ "/wd4127", -- warning C4127: conditional expression is constant
+ }
+ if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ "/Qwd1478", -- warning #1478: function "xxx" (declared at line yyy of "zzz") was declared deprecated
+ "/Qwd2544", -- message #2544: empty dependent statement in if-statement
+ "/Qwd1879", -- warning #1879: unimplemented pragma ignored
+ }
+ end
+ configuration { "vs2015*" }
+ buildoptions {
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ }
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-strict-prototypes",
+ "-Wno-bad-function-cast",
+ "-Wno-undef",
+ "-Wno-missing-braces",
+ "-Wno-unused-variable",
+ "-Wno-unused-value",
+ "-Wno-unused-function",
+ "-Wno-unknown-pragmas",
+ }
+
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if (_OPTIONS["gcc"]~=nil) then
+ if string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "android") then
+ buildoptions_c {
+ "-Wno-unknown-warning-option",
+ "-Wno-absolute-value",
+ "-Wno-unused-but-set-variable",
+ "-Wno-maybe-uninitialized",
+ "-Wno-sometimes-uninitialized",
+ }
+ else
+ if (version >= 40600) then
+ buildoptions_c {
+ "-Wno-unused-but-set-variable",
+ "-Wno-maybe-uninitialized",
+ "-Wno-sometimes-uninitialized",
+ "-w",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ }
+ end
+ end
+ end
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4204", -- warning C4204: nonstandard extension used : non-constant aggregate initializer
+ "/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
+ }
+
+ configuration { }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/include",
+ MAME_DIR .. "3rdparty/portaudio/src/common",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_allocation.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_converters.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_cpuload.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_dither.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_debugprint.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_front.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_process.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_stream.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_trace.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/skeleton/pa_hostapi_skeleton.c",
+ }
+
+ if _OPTIONS["targetos"]=="windows" then
+ defines {
+ "PA_USE_DS=1",
+ "PA_USE_WASAPI=1",
+ "PA_USE_WDMKS=1",
+ "PA_USE_WMME=1",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/os/win",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wasapi/mingw-include",
+ }
+
+ configuration { }
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_util.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_waveformat.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_coinitialize.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wasapi/pa_win_wasapi.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wdmks/pa_win_wdmks.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wmme/pa_win_wmme.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_ringbuffer.c",
+ }
+
+ end
+ if _OPTIONS["targetos"]=="linux" then
+ defines {
+ "PA_USE_ALSA=1",
+ "PA_USE_OSS=1",
+ "HAVE_LINUX_SOUNDCARD_H",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix",
+ }
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_util.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/alsa/pa_linux_alsa.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/oss/pa_unix_oss.c",
+ }
+ end
+ if _OPTIONS["targetos"]=="macosx" then
+ defines {
+ "PA_USE_COREAUDIO=1",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix",
+ }
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_util.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_ringbuffer.c",
+ }
+ end
+
+else
+links {
+ ext_lib("portaudio"),
+}
+end
+end
--------------------------------------------------
-- SDL2 library
diff --git a/scripts/src/main.lua b/scripts/src/main.lua
index 22bef465c18..0a92b1fed57 100644
--- a/scripts/src/main.lua
+++ b/scripts/src/main.lua
@@ -284,6 +284,16 @@ if (STANDALONE~=true) then
}
end
+ if _OPTIONS["NO_USE_PORTAUDIO"]~="1" then
+ links {
+ ext_lib("portaudio"),
+ }
+ if _OPTIONS["targetos"]=="windows" then
+ links {
+ "setupapi",
+ }
+ end
+ end
if _OPTIONS["NO_USE_MIDI"]~="1" then
links {
ext_lib("portmidi"),
diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua
index a863cd360b9..ce9977d8dd6 100644
--- a/scripts/src/osd/modules.lua
+++ b/scripts/src/osd/modules.lua
@@ -80,6 +80,7 @@ function osdmodulesbuild()
MAME_DIR .. "src/osd/modules/midi/none.cpp",
MAME_DIR .. "src/osd/modules/sound/js_sound.cpp",
MAME_DIR .. "src/osd/modules/sound/direct_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/pa_sound.cpp",
MAME_DIR .. "src/osd/modules/sound/coreaudio_sound.cpp",
MAME_DIR .. "src/osd/modules/sound/sdl_sound.cpp",
MAME_DIR .. "src/osd/modules/sound/xaudio2_sound.cpp",
@@ -122,6 +123,7 @@ function osdmodulesbuild()
includedirs {
MAME_DIR .. "3rdparty/winpcap/Include",
MAME_DIR .. "3rdparty/compat/mingw",
+ MAME_DIR .. "3rdparty/portaudio/include",
}
includedirs {
@@ -215,6 +217,12 @@ function osdmodulesbuild()
MAME_DIR .. "3rdparty/rapidjson/include",
}
+ if _OPTIONS["NO_USE_PORTAUDIO"]=="1" then
+ defines {
+ "NO_USE_PORTAUDIO",
+ }
+ end
+
if _OPTIONS["NO_USE_MIDI"]=="1" then
defines {
"NO_USE_MIDI",
@@ -494,6 +502,23 @@ if not _OPTIONS["NO_USE_MIDI"] then
end
newoption {
+ trigger = "NO_USE_PORTAUDIO",
+ description = "Disable PortAudio interface",
+ allowed = {
+ { "0", "Enable PortAudio" },
+ { "1", "Disable PortAudio" },
+ },
+}
+
+if not _OPTIONS["NO_USE_PORTAUDIO"] then
+ if _OPTIONS["targetos"]=="windows" or _OPTIONS["targetos"]=="linux" or _OPTIONS["targetos"]=="macosx" then
+ _OPTIONS["NO_USE_PORTAUDIO"] = "0"
+ else
+ _OPTIONS["NO_USE_PORTAUDIO"] = "1"
+ end
+end
+
+newoption {
trigger = "MODERN_WIN_API",
description = "Use Modern Windows APIs",
allowed = {