From 37f5e1dcd94611dd5b670f013abf0323e8b47def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Sat, 27 May 2017 11:57:54 +0200 Subject: [PATCH] Fix MinGW-w64 build of TinyEXR for old toolchains MinGW-w64 is at version 2.0.1 on our current Travis CI toolchain, and seems not to like fopen_s. --- thirdparty/tinyexr/tinyexr.h | 40 +++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/thirdparty/tinyexr/tinyexr.h b/thirdparty/tinyexr/tinyexr.h index 44cc287da74..c82768be9a2 100644 --- a/thirdparty/tinyexr/tinyexr.h +++ b/thirdparty/tinyexr/tinyexr.h @@ -85,6 +85,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include // for size_t #include // guess stdint.h is available(C99) +// -- GODOT change for old MinGW on Travis CI -- +#if defined(__MINGW32__) +#include <_mingw.h> // for __MINGW64_VERSION_MAJOR +#endif + #ifdef __cplusplus extern "C" { #endif @@ -4514,7 +4519,10 @@ void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, #include #include -#if defined(_MSC_VER) || defined(__MINGW64__) +// -- GODOT change for old MinGW on Travis CI -- +//#if defined(_MSC_VER) || defined(__MINGW64__) +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- static FILE *mz_fopen(const char *pFilename, const char *pMode) { FILE *pFile = NULL; fopen_s(&pFile, pFilename, pMode); @@ -10822,7 +10830,10 @@ int LoadEXRImageFromFile(EXRImage *exr_image, const EXRHeader *exr_header, return TINYEXR_ERROR_INVALID_ARGUMENT; } -#ifdef _WIN32 +// -- GODOT change for old MinGW on Travis CI -- +//#ifdef _WIN32 +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- FILE *fp = NULL; fopen_s(&fp, filename, "rb"); #else @@ -11411,7 +11422,10 @@ int SaveEXRImageToFile(const EXRImage *exr_image, const EXRHeader *exr_header, } #endif -#ifdef _WIN32 +// -- GODOT change for old MinGW on Travis CI -- +//#ifdef _WIN32 +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- FILE *fp = NULL; fopen_s(&fp, filename, "wb"); #else @@ -11892,7 +11906,10 @@ int ParseEXRHeaderFromFile(EXRHeader *exr_header, const EXRVersion *exr_version, return TINYEXR_ERROR_INVALID_ARGUMENT; } -#ifdef _WIN32 +// -- GODOT change for old MinGW on Travis CI -- +//#ifdef _WIN32 +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- FILE *fp = NULL; fopen_s(&fp, filename, "rb"); #else @@ -12016,7 +12033,10 @@ int ParseEXRMultipartHeaderFromFile(EXRHeader ***exr_headers, int *num_headers, return TINYEXR_ERROR_INVALID_ARGUMENT; } -#ifdef _WIN32 +// -- GODOT change for old MinGW on Travis CI -- +//#ifdef _WIN32 +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- FILE *fp = NULL; fopen_s(&fp, filename, "rb"); #else @@ -12116,7 +12136,10 @@ int ParseEXRVersionFromFile(EXRVersion *version, const char *filename) { return TINYEXR_ERROR_INVALID_ARGUMENT; } -#ifdef _WIN32 +// -- GODOT change for old MinGW on Travis CI -- +//#ifdef _WIN32 +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- FILE *fp = NULL; fopen_s(&fp, filename, "rb"); #else @@ -12254,7 +12277,10 @@ int LoadEXRMultipartImageFromFile(EXRImage *exr_images, return TINYEXR_ERROR_INVALID_ARGUMENT; } -#ifdef _WIN32 +// -- GODOT change for old MinGW on Travis CI -- +//#ifdef _WIN32 +#if defined(_MSC_VER) || (defined(__MINGW32__) && __MINGW64_VERSION_MAJOR >= 3) +// -- GODOT end -- FILE *fp = NULL; fopen_s(&fp, filename, "rb"); #else