]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
fix for OS Windows
authorViktor Uzlov <viktor.uzlov@opencascade.com>
Wed, 24 Mar 2021 13:11:51 +0000 (16:11 +0300)
committerViktor Uzlov <viktor.uzlov@opencascade.com>
Wed, 24 Mar 2021 13:11:51 +0000 (16:11 +0300)
src/SMESH/CMakeLists.txt
src/SMESH/MG_ADAPT.cxx
src/SMESH/MG_ADAPT.hxx

index 55b8da58434733ba6a1b3160d7358521f2eec9d6..3233847b9a1ed6ba975da8901558e589859d3e35 100644 (file)
@@ -114,7 +114,8 @@ SET(SMESHimpl_SOURCES
 
 ADD_LIBRARY(SMESHimpl ${SMESHimpl_SOURCES})
 IF(WIN32)
-  TARGET_COMPILE_OPTIONS(SMESHimpl PRIVATE /bigobj) 
+  TARGET_COMPILE_OPTIONS(SMESHimpl PRIVATE /bigobj)
+  ADD_DEFINITIONS(-DNOMINMAX) 
 ENDIF(WIN32)
 
 TARGET_LINK_LIBRARIES(SMESHimpl ${_link_LIBRARIES} )
index 6282a600dfd93e9ac0e597441f3394b2f200ac96..a691836d4b7f6cd279fa94cc34fd55fc3603217e 100644 (file)
 
 #include <Utils_SALOME_Exception.hxx>
 
+#ifndef WIN32
 #include <unistd.h> // getpid()
+#else
+#include <process.h>
+#endif
+#include <array>
 #include <memory>   // unique_ptr
 
 typedef SMESH_Comment ToComment;
@@ -859,7 +864,17 @@ void MgAdapt::execCmd( const char* cmd, int& err)
   }
   std::ostream logStream(buf);
 
+  
+#if defined(WIN32)
+#if defined(INICODE)
+  std::unique_ptr <FILE, decltype(&_pclose)> pipe(_wopen(cmd, "r"), _pclose );
+#else
+  std::unique_ptr <FILE, decltype(&_pclose)> pipe(_popen(cmd, "r"), _pclose );
+#endif
+#else
   std::unique_ptr <FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose );
+#endif
+
   if(!pipe)
   {
     throw std::runtime_error("popen() failed!");
@@ -1084,7 +1099,11 @@ std::string MgAdapt::getFileName() const
 
   SMESH_Comment aGenericName( aTmpDir );
   aGenericName << "MgAdapt_";
+#ifndef WIN32
   aGenericName << getpid();
+#else
+aGenericName << _getpid();
+#endif
   aGenericName << "_";
   aGenericName << std::abs((int)(long) aGenericName.data());
 
index 9d11a588850f85541ecbb7992743288a0074a682..fd7cbada07c8abf55bd66de37ce75708b367cb48 100644 (file)
@@ -26,6 +26,8 @@
 #include <vector>
 #include <set>
 
+#include "SMESH_SMESH.hxx"
+
 namespace MEDCoupling
 {
   class MEDFileMesh;
@@ -54,7 +56,7 @@ struct MgAdaptHypothesisData
 };
 
 
-class MgAdapt
+class SMESH_EXPORT MgAdapt
 {
 
 public: