diff options
| author | John <[email protected]> | 2024-01-20 21:08:19 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-01-20 21:08:19 +0100 |
| commit | 192f7f1b291d21fbe4bdd2c373e6cf94e69272bb (patch) | |
| tree | 1a732b4a137059f783eea0cf85aa9cf5e9fc2fc1 /src/rcore.c | |
| parent | 0a8165c0acc85bab1624b94ee28ab67535aedbdd (diff) | |
| download | raylib-192f7f1b291d21fbe4bdd2c373e6cf94e69272bb.tar.gz raylib-192f7f1b291d21fbe4bdd2c373e6cf94e69272bb.zip | |
[rcore rglfw] Feature Test Macros before include (#3737)
Move/Add Feature Test Macros before any includes.
See: [GNU Feature Test Macros](https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html)
> You should define these macros by using ‘#define’ preprocessor directives at the top of your source code files. These directives must come before any #include of a system header file. It is best to make them the very first thing in the file, preceded only by comments.
Alternative changes to rcore would be to change _POSIX_C_SOURCE to
200809L, which removes the need to define _XOPEN_SOURCE >= 500.
These changes allow for compilation with -std=c* (such as -std=c99)
without adding -D macros to the build step.
Co-authored-by: JayLCypher <[email protected]>
Diffstat (limited to 'src/rcore.c')
| -rw-r--r-- | src/rcore.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/rcore.c b/src/rcore.c index 0769fe93..bb06e9be 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -82,6 +82,19 @@ * **********************************************************************************************/ +//---------------------------------------------------------------------------------- +// Feature Test Macros required for this module +//---------------------------------------------------------------------------------- +#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_XOPEN_SOURCE < 500) + #undef _XOPEN_SOURCE + #define _XOPEN_SOURCE 500 // Required for: readlink if compiled with c99 without gnu ext. +#endif + +#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_POSIX_C_SOURCE < 199309L) + #undef _POSIX_C_SOURCE + #define _POSIX_C_SOURCE 199309L // Required for: CLOCK_MONOTONIC if compiled with c99 without gnu ext. +#endif + #include "raylib.h" // Declares module functions // Check if config flags have been externally provided on compilation line @@ -235,11 +248,6 @@ __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigne #define FLAG_TOGGLE(n, f) ((n) ^= (f)) #define FLAG_CHECK(n, f) ((n) & (f)) -#if (defined(__linux__) || defined(PLATFORM_WEB)) && (_POSIX_C_SOURCE < 199309L) - #undef _POSIX_C_SOURCE - #define _POSIX_C_SOURCE 199309L // Required for: CLOCK_MONOTONIC if compiled with c99 without gnu ext. -#endif - //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- |
