Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-01-30 06:30:28 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-01-30 06:31:04 +0300
commitb0af44fa4d7a2e134b315c49a4fbdf573f781004 (patch)
tree6d79b0e079faaf7a302e4355b25a69cbff791718 /intern/elbeem
parent1eeb846e781dac3f55d6c108d0fc4c3cfe88f4cc (diff)
Fix T50630: Fluid fails on win32 w/ unicode paths
Allow overriding gzip open w/ elbeem.
Diffstat (limited to 'intern/elbeem')
-rw-r--r--intern/elbeem/CMakeLists.txt8
-rw-r--r--intern/elbeem/intern/ntl_blenderdumper.cpp12
2 files changed, 17 insertions, 3 deletions
diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt
index 30c5615f1d2..1534219a052 100644
--- a/intern/elbeem/CMakeLists.txt
+++ b/intern/elbeem/CMakeLists.txt
@@ -107,6 +107,14 @@ add_definitions(
-DNEWDIRVELMOTEST=0
)
+if(WIN32)
+ # We need BLI_gzopen on win32 for unicode paths
+ add_definitions(
+ -DLBM_GZIP_OVERRIDE_H="${CMAKE_SOURCE_DIR}/source/blender/blenlib/BLI_fileops.h"
+ -D LBM_GZIP_OPEN_FN="\(gzFile\)BLI_gzopen"
+ )
+endif()
+
if(WITH_OPENMP)
add_definitions(-DPARALLEL=1)
else()
diff --git a/intern/elbeem/intern/ntl_blenderdumper.cpp b/intern/elbeem/intern/ntl_blenderdumper.cpp
index ec05c25004d..af99dc03add 100644
--- a/intern/elbeem/intern/ntl_blenderdumper.cpp
+++ b/intern/elbeem/intern/ntl_blenderdumper.cpp
@@ -22,7 +22,11 @@
#include <zlib.h>
-
+#ifdef LBM_GZIP_OVERRIDE_H
+# include LBM_GZIP_OVERRIDE_H
+#else
+# define LBM_GZIP_OPEN_FN(a, b) gzopen(a, b)
+#endif
/******************************************************************************
* Constructor
@@ -141,7 +145,8 @@ int ntlBlenderDumper::renderScene( void )
std::ostringstream bvelfilename;
bvelfilename << boutfilename.str();
bvelfilename << ".bvel.gz";
- gzf = gzopen(bvelfilename.str().c_str(), "wb9");
+ /* wraps gzopen */
+ gzf = LBM_GZIP_OPEN_FN(bvelfilename.str().c_str(), "wb9");
if(gzf) {
int numVerts;
if(sizeof(numVerts)!=4) { errMsg("ntlBlenderDumper::renderScene","Invalid int size"); return 1; }
@@ -162,7 +167,8 @@ int ntlBlenderDumper::renderScene( void )
// compress all bobj's
boutfilename << ".bobj.gz";
- gzf = gzopen(boutfilename.str().c_str(), "wb1"); // wb9 is slow for large meshes!
+ /* wraps gzopen */
+ gzf = LBM_GZIP_OPEN_FN(boutfilename.str().c_str(), "wb1"); // wb9 is slow for large meshes!
if (!gzf) {
errMsg("ntlBlenderDumper::renderScene","Unable to open output '" + boutfilename.str() + "' ");
return 1; }