From 18b6544883051a341c4f248a7ad5fd0c0987bd3f Mon Sep 17 00:00:00 2001 From: looooo Date: Wed, 14 Feb 2018 17:16:48 +0100 Subject: [PATCH] win: pybind11: workaround for strdup --- src/Mod/MeshPart/App/MeshFlatteningPy.cpp | 6 ++++++ src/Mod/Path/libarea/pyarea.cpp | 7 +++++++ src/Tools/generateTemplates/templateClassPyExport.py | 12 +++++------- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/Mod/MeshPart/App/MeshFlatteningPy.cpp b/src/Mod/MeshPart/App/MeshFlatteningPy.cpp index 6d5851e37a..5506dde12b 100644 --- a/src/Mod/MeshPart/App/MeshFlatteningPy.cpp +++ b/src/Mod/MeshPart/App/MeshFlatteningPy.cpp @@ -21,6 +21,11 @@ ***************************************************************************/ + +#ifdef _MSC_VER + #define strdup _strdup +#endif + #include "PreCompiled.h" #include #include @@ -50,6 +55,7 @@ #include + namespace py = pybind11; const TopoDS_Face& getTopoDSFace(py::object* face) diff --git a/src/Mod/Path/libarea/pyarea.cpp b/src/Mod/Path/libarea/pyarea.cpp index 02687c00b1..1b5fd92630 100644 --- a/src/Mod/Path/libarea/pyarea.cpp +++ b/src/Mod/Path/libarea/pyarea.cpp @@ -2,6 +2,11 @@ // Copyright 2017, Lorenz Lechner // This program is released under the BSD license. See the file COPYING for details. + +#ifdef _MSC_VER + #define strdup _strdup +#endif + #include "Area.h" #include "Point.h" #include "AreaDxf.h" @@ -13,6 +18,8 @@ #include + + namespace py = pybind11; diff --git a/src/Tools/generateTemplates/templateClassPyExport.py b/src/Tools/generateTemplates/templateClassPyExport.py index a98518f285..2aeaa4358a 100644 --- a/src/Tools/generateTemplates/templateClassPyExport.py +++ b/src/Tools/generateTemplates/templateClassPyExport.py @@ -29,13 +29,11 @@ class TemplateClassPyExport (template.ModelTemplate): file = open(path + exportName + "Imp.cpp",'wb') generateBase.generateTools.replace(self.TemplateImplement,locals(),file) file.close() - file = open(path + exportName + ".cpp",'wb') - generateBase.generateTools.replace(self.TemplateModule,locals(),file) - file.close() - file = open(path + exportName + ".h",'wb') - generateBase.generateTools.replace(self.TemplateHeader,locals(),file) - #file.write( generateBase.generateTools.replace(self.Template,locals())) - file.close() + with open(path + exportName + ".cpp", 'wb') as file: + generateBase.generateTools.replace(self.TemplateModule,locals(),file) + with open(path + exportName + ".h", 'wb') as file: + generateBase.generateTools.replace(self.TemplateHeader,locals(),file) + #file.write( generateBase.generateTools.replace(self.Template,locals())) TemplateHeader = """ // This file is generated by src/Tools/generateTemaplates/templateClassPyExport.py out of the XML file