diff options
-rw-r--r-- | 3rdparty/SDL2-override/mingw/SDL_config.h | 55 | ||||
-rw-r--r-- | 3rdparty/SDL2-override/mingw/SDL_config_windows.h | 221 | ||||
-rw-r--r-- | scripts/src/3rdparty.lua | 25 | ||||
-rw-r--r-- | scripts/src/osd/sdl.lua | 86 | ||||
-rw-r--r-- | scripts/src/osd/sdl_cfg.lua | 4 |
5 files changed, 357 insertions, 34 deletions
diff --git a/3rdparty/SDL2-override/mingw/SDL_config.h b/3rdparty/SDL2-override/mingw/SDL_config.h new file mode 100644 index 00000000000..4270c78bf54 --- /dev/null +++ b/3rdparty/SDL2-override/mingw/SDL_config.h @@ -0,0 +1,55 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_h +#define _SDL_config_h + +#include "SDL_platform.h" + +/** + * \file SDL_config.h + */ + +/* Add any platform that doesn't build using the configure system. */ +#ifdef USING_PREMAKE_CONFIG_H +#include "SDL_config_premake.h" +#elif defined(__WIN32__) +#include "SDL_config_windows.h" +#elif defined(__WINRT__) +#include "SDL_config_winrt.h" +#elif defined(__MACOSX__) +#include "SDL_config_macosx.h" +#elif defined(__IPHONEOS__) +#include "SDL_config_iphoneos.h" +#elif defined(__ANDROID__) +#include "SDL_config_android.h" +#elif defined(__PSP__) +#include "SDL_config_psp.h" +#else +/* This is a minimal configuration just to get SDL running on new platforms */ +#include "SDL_config_minimal.h" +#endif /* platform config */ + +#ifdef USING_GENERATED_CONFIG_H +#error Wrong SDL_config.h, check your include path? +#endif + +#endif /* _SDL_config_h */ diff --git a/3rdparty/SDL2-override/mingw/SDL_config_windows.h b/3rdparty/SDL2-override/mingw/SDL_config_windows.h new file mode 100644 index 00000000000..ad3a96d4ef7 --- /dev/null +++ b/3rdparty/SDL2-override/mingw/SDL_config_windows.h @@ -0,0 +1,221 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef _SDL_config_windows_h +#define _SDL_config_windows_h + +#include "SDL_platform.h" + +/* This is a set of defines to configure the SDL features */ + +#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) +#if defined(__GNUC__) || defined(__DMC__) || defined(__WATCOMC__) +#define HAVE_STDINT_H 1 +#elif defined(_MSC_VER) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +/* Older Visual C++ headers don't have the Win64-compatible typedefs... */ +#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR))) +#define DWORD_PTR DWORD +#endif +#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR))) +#define LONG_PTR LONG +#endif +#else /* !__GNUC__ && !_MSC_VER */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#ifndef _SIZE_T_DEFINED_ +#define _SIZE_T_DEFINED_ +typedef unsigned int size_t; +#endif +typedef unsigned int uintptr_t; +#endif /* __GNUC__ || _MSC_VER */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +#define HAVE_DDRAW_H 1 +#define HAVE_DINPUT_H 1 +#define HAVE_DSOUND_H 1 +#define HAVE_DXGI_H 1 +#define HAVE_XINPUT_H 1 + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STRING_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_ACOS 1 +#define HAVE_ASIN 1 +#define HAVE_CEIL 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_POW 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#if _MSC_VER >= 1800 +#define HAVE_STRTOLL 1 +#define HAVE_VSSCANF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_SCALBN 1 +#endif +#if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES) +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_DSOUND 1 +#define SDL_AUDIO_DRIVER_XAUDIO2 0 +#define SDL_AUDIO_DRIVER_WINMM 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_DINPUT 1 +#define SDL_JOYSTICK_XINPUT 1 +#define SDL_HAPTIC_DINPUT 1 +#define SDL_HAPTIC_XINPUT 1 + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_WINDOWS 1 + +/* Enable various threading systems */ +#define SDL_THREAD_WINDOWS 1 + +/* Enable various timer systems */ +#define SDL_TIMER_WINDOWS 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_WINDOWS 1 + +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#ifndef SDL_VIDEO_RENDER_D3D11 +#define SDL_VIDEO_RENDER_D3D11 0 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_OPENGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_EGL +#define SDL_VIDEO_OPENGL_EGL 1 +#endif + + +/* Enable system power support */ +#define SDL_POWER_WINDOWS 1 + +/* Enable filesystem support */ +#define SDL_FILESYSTEM_WINDOWS 1 + +/* Enable assembly routines (Win64 doesn't have inline asm) */ +#ifndef _WIN64 +#define SDL_ASSEMBLY_ROUTINES 1 +#endif + +#endif /* _SDL_config_windows_h */ diff --git a/scripts/src/3rdparty.lua b/scripts/src/3rdparty.lua index 7c0ce4fa807..3a7f8eb6112 100644 --- a/scripts/src/3rdparty.lua +++ b/scripts/src/3rdparty.lua @@ -1226,10 +1226,6 @@ project "SDL2" kind "StaticLib" configuration { } - - includedirs { - MAME_DIR .. "3rdparty/SDL2/include", - } files { MAME_DIR .. "3rdparty/SDL2/include/begin_code.h", @@ -1325,7 +1321,6 @@ project "SDL2" MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_wave.h", MAME_DIR .. "3rdparty/SDL2/src/audio/winmm/SDL_winmm.c", MAME_DIR .. "3rdparty/SDL2/src/audio/winmm/SDL_winmm.h", - MAME_DIR .. "3rdparty/SDL2/src/audio/xaudio2/SDL_xaudio2.c", MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_directx.h", MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_windows.c", MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_windows.h", @@ -1519,6 +1514,10 @@ project "SDL2" MAME_DIR .. "3rdparty/SDL2/src/main/windows/version.rc", } configuration { "vs*" } + files { + MAME_DIR .. "3rdparty/SDL2/src/audio/xaudio2/SDL_xaudio2.c", + } + buildoptions { "/wd4200", -- warning C4200: nonstandard extension used: zero-sized array in struct/union "/wd4055", -- warning C4055: 'type cast': from data pointer 'void *' to function pointer 'xxx' @@ -1531,6 +1530,22 @@ project "SDL2" defines { "HAVE_LIBC", } + configuration { "mingw*"} + includedirs { + MAME_DIR .. "3rdparty/SDL2-override/mingw", + MAME_DIR .. "3rdparty/bgfx/3rdparty/khronos", + } + buildoptions_c { + "-Wno-undef", + "-Wno-strict-prototypes", + "-Wno-bad-function-cast", + "-Wno-discarded-qualifiers", + "-Wno-unused-but-set-variable", + } configuration { } + includedirs { + MAME_DIR .. "3rdparty/SDL2/include", + } + end
\ No newline at end of file diff --git a/scripts/src/osd/sdl.lua b/scripts/src/osd/sdl.lua index a95374a2cca..ae7ff14b99c 100644 --- a/scripts/src/osd/sdl.lua +++ b/scripts/src/osd/sdl.lua @@ -48,10 +48,14 @@ function maintargetosdoptions(_target,_subtarget) end if _OPTIONS["targetos"]=="windows" then - if _OPTIONS["USE_LIBSDL"]~="1" then + if _OPTIONS["with-bundled-sdl2"]~=nil then configuration { "mingw*"} links { - "SDL2.dll", + "SDL2", + "Imm32", + "Version", + "Ole32", + "OleAut32", } configuration { "vs*" } links { @@ -61,14 +65,35 @@ function maintargetosdoptions(_target,_subtarget) } configuration { } else - local str = backtick(sdlconfigcmd() .. " --libs | sed 's/ -lSDLmain//'") - addlibfromstring(str) - addoptionsfromstring(str) + if _OPTIONS["USE_LIBSDL"]~="1" then + configuration { "mingw*"} + links { + "SDL2.dll", + } + configuration { "vs*" } + links { + "SDL2", + "Imm32", + "Version", + } + configuration { } + else + local str = backtick(sdlconfigcmd() .. " --libs | sed 's/ -lSDLmain//'") + addlibfromstring(str) + addoptionsfromstring(str) + end + configuration { "x32", "vs*" } + libdirs { + path.join(_OPTIONS["SDL_INSTALL_ROOT"],"lib","x86") + } + configuration { "x64", "vs*" } + libdirs { + path.join(_OPTIONS["SDL_INSTALL_ROOT"],"lib","x64") + } end links { "psapi", } - configuration { "mingw*-gcc" } linkoptions{ "-municode", @@ -77,14 +102,6 @@ function maintargetosdoptions(_target,_subtarget) flags { "Unicode", } - configuration { "x32", "vs*" } - libdirs { - path.join(_OPTIONS["SDL_INSTALL_ROOT"],"lib","x86") - } - configuration { "x64", "vs*" } - libdirs { - path.join(_OPTIONS["SDL_INSTALL_ROOT"],"lib","x64") - } configuration {} elseif _OPTIONS["targetos"]=="haiku" then links { @@ -221,6 +238,12 @@ elseif _OPTIONS["targetos"]=="macosx" then SDL_NETWORK = "pcap" end +if _OPTIONS["with-bundled-sdl2"]~=nil then + includedirs { + GEN_DIR .. "includes", + } +end + if BASE_TARGETOS=="unix" then if _OPTIONS["targetos"]=="macosx" then local os_version = str_to_version(backtick("sw_vers -productVersion")) @@ -237,17 +260,23 @@ if BASE_TARGETOS=="unix" then "-weak_framework Metal", } end - if _OPTIONS["USE_LIBSDL"]~="1" then - linkoptions { - "-F" .. _OPTIONS["SDL_FRAMEWORK_PATH"], - } + if _OPTIONS["with-bundled-sdl2"]~=nil then links { - "SDL2.framework", + "SDL2", } else - local str = backtick(sdlconfigcmd() .. " --libs --static | sed 's/-lSDLmain//'") - addlibfromstring(str) - addoptionsfromstring(str) + if _OPTIONS["USE_LIBSDL"]~="1" then + linkoptions { + "-F" .. _OPTIONS["SDL_FRAMEWORK_PATH"], + } + links { + "SDL2.framework", + } + else + local str = backtick(sdlconfigcmd() .. " --libs --static | sed 's/-lSDLmain//'") + addlibfromstring(str) + addoptionsfromstring(str) + end end else if _OPTIONS["NO_X11"]=="1" then @@ -259,9 +288,16 @@ if BASE_TARGETOS=="unix" then "/usr/openwin/lib", } end - local str = backtick(sdlconfigcmd() .. " --libs") - addlibfromstring(str) - addoptionsfromstring(str) + if _OPTIONS["with-bundled-sdl2"]~=nil then + links { + "SDL2", + } + else + local str = backtick(sdlconfigcmd() .. " --libs") + addlibfromstring(str) + addoptionsfromstring(str) + end + if _OPTIONS["targetos"]~="haiku" then links { "m", diff --git a/scripts/src/osd/sdl_cfg.lua b/scripts/src/osd/sdl_cfg.lua index 0c33a771538..8f9b9d29578 100644 --- a/scripts/src/osd/sdl_cfg.lua +++ b/scripts/src/osd/sdl_cfg.lua @@ -111,10 +111,6 @@ if _OPTIONS["targetos"]=="windows" then defines { "MALLOC_DEBUG", } - configuration { "vs*" } - includedirs { - GEN_DIR .. "includes", - } configuration { } elseif _OPTIONS["targetos"]=="linux" then |