Skip to content

Commit 08a70a4

Browse files
committed
Add SDL_config file for emscripten
I noticed that we lacked such a thing while working on #17475. It turns out that system header are technically allowed to redefine macros without generating a warning, but when I made the SDL header tree into a normal `-I` path I noticed that `M_PI` was being duplicately defined because we were not defining `HAVE_M_PI`. This list of defines is taked from `SDL_config_iphoneos.h` and a visual inspection seems to confirm that we do indeed support all the specified features.
1 parent 4099591 commit 08a70a4

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

system/include/SDL/SDL_config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
#include "SDL_config_android.h"
4242
#elif defined(__NINTENDODS__)
4343
#include "SDL_config_nintendods.h"
44+
#elif defined(__EMSCRIPTEN__)
45+
#include "SDL_config_emscripten.h"
4446
#else
4547
#include "SDL_config_minimal.h"
4648
#endif /* platform config */
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/*
2+
Simple DirectMedia Layer
3+
Copyright (C) 1997-2011 Sam Lantinga <[email protected]>
4+
5+
This software is provided 'as-is', without any express or implied
6+
warranty. In no event will the authors be held liable for any damages
7+
arising from the use of this software.
8+
9+
Permission is granted to anyone to use this software for any purpose,
10+
including commercial applications, and to alter it and redistribute it
11+
freely, subject to the following restrictions:
12+
13+
1. The origin of this software must not be misrepresented; you must not
14+
claim that you wrote the original software. If you use this software
15+
in a product, an acknowledgment in the product documentation would be
16+
appreciated but is not required.
17+
2. Altered source versions must be plainly marked as such, and must not be
18+
misrepresented as being the original software.
19+
3. This notice may not be removed or altered from any source distribution.
20+
*/
21+
22+
#ifndef _SDL_config_emscripten_h
23+
#define _SDL_config_emscripten_h
24+
25+
#include "SDL_platform.h"
26+
#include "SDL_config_minimal.h"
27+
28+
#define HAVE_GCC_ATOMICS 1
29+
30+
#define HAVE_ALLOCA_H 1
31+
#define HAVE_SYS_TYPES_H 1
32+
#define HAVE_STDIO_H 1
33+
#define STDC_HEADERS 1
34+
#define HAVE_STRING_H 1
35+
#define HAVE_INTTYPES_H 1
36+
#define HAVE_STDINT_H 1
37+
#define HAVE_CTYPE_H 1
38+
#define HAVE_MATH_H 1
39+
#define HAVE_SIGNAL_H 1
40+
41+
/* C library functions */
42+
#define HAVE_MALLOC 1
43+
#define HAVE_CALLOC 1
44+
#define HAVE_REALLOC 1
45+
#define HAVE_FREE 1
46+
#define HAVE_ALLOCA 1
47+
#define HAVE_GETENV 1
48+
#define HAVE_SETENV 1
49+
#define HAVE_PUTENV 1
50+
#define HAVE_SETENV 1
51+
#define HAVE_UNSETENV 1
52+
#define HAVE_QSORT 1
53+
#define HAVE_ABS 1
54+
#define HAVE_BCOPY 1
55+
#define HAVE_MEMSET 1
56+
#define HAVE_MEMCPY 1
57+
#define HAVE_MEMMOVE 1
58+
#define HAVE_MEMCMP 1
59+
#define HAVE_STRLEN 1
60+
#define HAVE_STRLCPY 1
61+
#define HAVE_STRLCAT 1
62+
#define HAVE_STRDUP 1
63+
#define HAVE_STRCHR 1
64+
#define HAVE_STRRCHR 1
65+
#define HAVE_STRSTR 1
66+
#define HAVE_STRTOL 1
67+
#define HAVE_STRTOUL 1
68+
#define HAVE_STRTOLL 1
69+
#define HAVE_STRTOULL 1
70+
#define HAVE_STRTOD 1
71+
#define HAVE_ATOI 1
72+
#define HAVE_ATOF 1
73+
#define HAVE_STRCMP 1
74+
#define HAVE_STRNCMP 1
75+
#define HAVE_STRCASECMP 1
76+
#define HAVE_STRNCASECMP 1
77+
#define HAVE_SSCANF 1
78+
#define HAVE_SNPRINTF 1
79+
#define HAVE_VSNPRINTF 1
80+
#define HAVE_M_PI 1
81+
#define HAVE_ATAN 1
82+
#define HAVE_ATAN2 1
83+
#define HAVE_CEIL 1
84+
#define HAVE_COPYSIGN 1
85+
#define HAVE_COS 1
86+
#define HAVE_COSF 1
87+
#define HAVE_FABS 1
88+
#define HAVE_FLOOR 1
89+
#define HAVE_LOG 1
90+
#define HAVE_POW 1
91+
#define HAVE_SCALBN 1
92+
#define HAVE_SIN 1
93+
#define HAVE_SINF 1
94+
#define HAVE_SQRT 1
95+
#define HAVE_SIGACTION 1
96+
#define HAVE_SETJMP 1
97+
#define HAVE_NANOSLEEP 1
98+
#define HAVE_SYSCONF 1
99+
#define HAVE_SYSCTLBYNAME 1
100+
101+
#endif /* _SDL_config_emscripten_h */

0 commit comments

Comments
 (0)