On Windows disable MG_ADAPT

This commit is contained in:
Viktor Uzlov 2021-03-25 14:50:55 +03:00
parent ccce4dbe25
commit 3c5cf4827a
7 changed files with 63 additions and 3 deletions

View File

@ -240,6 +240,17 @@ IF(WIN32)
ENDIF(${F2C_FOUND}) ENDIF(${F2C_FOUND})
ENDIF(WIN32) ENDIF(WIN32)
SET (SALOME_SMESH_DISABLE_MG_ADAPT OFF)
IF(WIN32)
SET (SALOME_SMESH_DISABLE_MG_ADAPT ON)
ENDIF()
#On Windows disable MG_ADAPT
IF(SALOME_SMESH_DISABLE_MG_ADAPT)
ADD_DEFINITIONS(-DDISABLE_MG_ADAPT)
ENDIF()
IF(SALOME_SMESH_ENABLE_MEFISTO) IF(SALOME_SMESH_ENABLE_MEFISTO)
SET(MEFISTO2D_NAME "MEFISTO_2D") SET(MEFISTO2D_NAME "MEFISTO_2D")
ELSE(SALOME_SMESH_ENABLE_MEFISTO) ELSE(SALOME_SMESH_ENABLE_MEFISTO)

View File

@ -59,6 +59,7 @@ SET(SALOME_SMESH_BUILD_GUI @SALOME_BUILD_GUI@)
SET(SALOME_SMESH_USE_CGNS @SALOME_SMESH_USE_CGNS@) SET(SALOME_SMESH_USE_CGNS @SALOME_SMESH_USE_CGNS@)
SET(SALOME_SMESH_USE_TBB @SALOME_SMESH_USE_TBB@) SET(SALOME_SMESH_USE_TBB @SALOME_SMESH_USE_TBB@)
SET(SALOME_SMESH_ENABLE_MEFISTO @SALOME_SMESH_ENABLE_MEFISTO@) SET(SALOME_SMESH_ENABLE_MEFISTO @SALOME_SMESH_ENABLE_MEFISTO@)
SET(SALOME_SMESH_DISABLE_MG_ADAPT @SALOME_SMESH_DISABLE_MG_ADAPT@)
IF(NOT WIN32) IF(NOT WIN32)
LIST(APPEND SMESH_DEFINITIONS "-DENABLE_MEFISTO") LIST(APPEND SMESH_DEFINITIONS "-DENABLE_MEFISTO")
ENDIF(NOT WIN32) ENDIF(NOT WIN32)

View File

@ -115,6 +115,7 @@ SET(SMESHimpl_SOURCES
ADD_LIBRARY(SMESHimpl ${SMESHimpl_SOURCES}) ADD_LIBRARY(SMESHimpl ${SMESHimpl_SOURCES})
IF(WIN32) IF(WIN32)
TARGET_COMPILE_OPTIONS(SMESHimpl PRIVATE /bigobj) TARGET_COMPILE_OPTIONS(SMESHimpl PRIVATE /bigobj)
ADD_DEFINITIONS(-DNOMINMAX)
ENDIF(WIN32) ENDIF(WIN32)
TARGET_LINK_LIBRARIES(SMESHimpl ${_link_LIBRARIES} ) TARGET_LINK_LIBRARIES(SMESHimpl ${_link_LIBRARIES} )

View File

@ -32,8 +32,15 @@
#include <MeshFormatWriter.hxx> #include <MeshFormatWriter.hxx>
#include <Utils_SALOME_Exception.hxx> #include <Utils_SALOME_Exception.hxx>
#include <Basics_Utils.hxx>
#ifndef WIN32
#include <unistd.h> // getpid() #include <unistd.h> // getpid()
#else
#include <process.h>
#endif
#include <fcntl.h>
#include <array>
#include <memory> // unique_ptr #include <memory> // unique_ptr
typedef SMESH_Comment ToComment; typedef SMESH_Comment ToComment;
@ -859,7 +866,18 @@ void MgAdapt::execCmd( const char* cmd, int& err)
} }
std::ostream logStream(buf); std::ostream logStream(buf);
#if defined(WIN32)
#if defined(UNICODE)
const wchar_t * aCmd = Kernel_Utils::utf8_decode(cmd);
std::unique_ptr <FILE, decltype(&_pclose)> pipe(_wpopen(aCmd, O_RDONLY), _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 ); std::unique_ptr <FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose );
#endif
if(!pipe) if(!pipe)
{ {
throw std::runtime_error("popen() failed!"); throw std::runtime_error("popen() failed!");
@ -1084,7 +1102,11 @@ std::string MgAdapt::getFileName() const
SMESH_Comment aGenericName( aTmpDir ); SMESH_Comment aGenericName( aTmpDir );
aGenericName << "MgAdapt_"; aGenericName << "MgAdapt_";
#ifndef WIN32
aGenericName << getpid(); aGenericName << getpid();
#else
aGenericName << _getpid();
#endif
aGenericName << "_"; aGenericName << "_";
aGenericName << std::abs((int)(long) aGenericName.data()); aGenericName << std::abs((int)(long) aGenericName.data());

View File

@ -26,6 +26,8 @@
#include <vector> #include <vector>
#include <set> #include <set>
#include "SMESH_SMESH.hxx"
namespace MEDCoupling namespace MEDCoupling
{ {
class MEDFileMesh; class MEDFileMesh;
@ -54,7 +56,7 @@ struct MgAdaptHypothesisData
}; };
class MgAdapt class SMESH_EXPORT MgAdapt
{ {
public: public:

View File

@ -3044,6 +3044,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
break; break;
} }
// Adaptation - begin // Adaptation - begin
#ifndef DISABLE_MG_ADAPT
case SMESHOp::OpMGAdapt: case SMESHOp::OpMGAdapt:
{ {
if ( isStudyLocked() ) if ( isStudyLocked() )
@ -3055,6 +3056,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
( new SMESHGUI_MG_ADAPTDRIVER( this, model, isCreation ))->show(); ( new SMESHGUI_MG_ADAPTDRIVER( this, model, isCreation ))->show();
break; break;
} }
#endif
// Adaptation - end // Adaptation - end
case SMESHOp::OpSplitBiQuadratic: case SMESHOp::OpSplitBiQuadratic:
case SMESHOp::OpConvertMeshToQuadratic: case SMESHOp::OpConvertMeshToQuadratic:
@ -4294,7 +4296,9 @@ void SMESHGUI::initialize( CAM_Application* app )
createSMESHAction( SMESHOp::OpDisableAutoColor, "DISABLE_AUTO_COLOR" ); createSMESHAction( SMESHOp::OpDisableAutoColor, "DISABLE_AUTO_COLOR" );
// Adaptation - begin // Adaptation - begin
#ifndef DISABLE_MG_ADAPT
createSMESHAction( SMESHOp::OpMGAdapt, "MG_ADAPT", "ICON_MG_ADAPT" ); createSMESHAction( SMESHOp::OpMGAdapt, "MG_ADAPT", "ICON_MG_ADAPT" );
#endif
// Adaptation - end // Adaptation - end
createSMESHAction( SMESHOp::OpMinimumDistance, "MEASURE_MIN_DIST", "ICON_MEASURE_MIN_DIST" ); createSMESHAction( SMESHOp::OpMinimumDistance, "MEASURE_MIN_DIST", "ICON_MEASURE_MIN_DIST" );
@ -4338,7 +4342,9 @@ void SMESHGUI::initialize( CAM_Application* app )
meshId = createMenu( tr( "MEN_MESH" ), -1, 70, 10 ), meshId = createMenu( tr( "MEN_MESH" ), -1, 70, 10 ),
ctrlId = createMenu( tr( "MEN_CTRL" ), -1, 60, 10 ), ctrlId = createMenu( tr( "MEN_CTRL" ), -1, 60, 10 ),
modifyId = createMenu( tr( "MEN_MODIFY" ), -1, 40, 10 ), modifyId = createMenu( tr( "MEN_MODIFY" ), -1, 40, 10 ),
#ifndef DISABLE_MG_ADAPT
adaptId = createMenu( tr( "MEN_ADAPT" ), -1, 80, 10 ), adaptId = createMenu( tr( "MEN_ADAPT" ), -1, 80, 10 ),
#endif
measureId = createMenu( tr( "MEN_MEASURE" ), -1, 50, 10 ), measureId = createMenu( tr( "MEN_MEASURE" ), -1, 50, 10 ),
viewId = createMenu( tr( "MEN_VIEW" ), -1, 2 ); viewId = createMenu( tr( "MEN_VIEW" ), -1, 2 );
@ -4512,7 +4518,9 @@ void SMESHGUI::initialize( CAM_Application* app )
createMenu( SMESHOp::OpPatternMapping, modifyId, -1 ); createMenu( SMESHOp::OpPatternMapping, modifyId, -1 );
// Adaptation - begin // Adaptation - begin
#ifndef DISABLE_MG_ADAPT
createMenu( SMESHOp::OpMGAdapt, adaptId, -1 ); createMenu( SMESHOp::OpMGAdapt, adaptId, -1 );
#endif
// Adaptation - end // Adaptation - end
createMenu( SMESHOp::OpMinimumDistance, measureId, -1 ); createMenu( SMESHOp::OpMinimumDistance, measureId, -1 );
@ -4659,8 +4667,10 @@ void SMESHGUI::initialize( CAM_Application* app )
createTool( SMESHOp::OpPatternMapping, modifyTb ); createTool( SMESHOp::OpPatternMapping, modifyTb );
// Adaptation - begin // Adaptation - begin
#ifndef DISABLE_MG_ADAPT
int adaptTb = createTool( tr( "TB_ADAPTATION" ),QString( "SMESHAdaptationToolbar" ) ) ; int adaptTb = createTool( tr( "TB_ADAPTATION" ),QString( "SMESHAdaptationToolbar" ) ) ;
createTool( SMESHOp::OpMGAdapt, adaptTb ); createTool( SMESHOp::OpMGAdapt, adaptTb );
#endif
// Adaptation - end // Adaptation - end
int measuremTb = createTool( tr( "TB_MEASUREM" ), QString( "SMESHMeasurementsToolbar" ) ) ; int measuremTb = createTool( tr( "TB_MEASUREM" ), QString( "SMESHMeasurementsToolbar" ) ) ;
@ -4745,7 +4755,9 @@ void SMESHGUI::initialize( CAM_Application* app )
popupMgr()->insert( separator(), -1, 0 ); popupMgr()->insert( separator(), -1, 0 );
// Adaptation - begin // Adaptation - begin
#ifndef DISABLE_MG_ADAPT
createPopupItem( SMESHOp::OpMGAdapt, OB, mesh ); createPopupItem( SMESHOp::OpMGAdapt, OB, mesh );
#endif
// Adaptation - end // Adaptation - end
QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( dc ); QString only_one_non_empty = QString( " && %1=1 && numberOfNodes>0" ).arg( dc );
@ -6017,8 +6029,10 @@ LightApp_Operation* SMESHGUI::createOperation( const int id ) const
op = new SMESHGUI_Add0DElemsOnAllNodesOp(); op = new SMESHGUI_Add0DElemsOnAllNodesOp();
break; break;
// Adaptation - begin // Adaptation - begin
#ifndef DISABLE_MG_ADAPT
case SMESHOp::OpMGAdapt: case SMESHOp::OpMGAdapt:
break; break;
#endif
// Adaptation - end // Adaptation - end
default: default:
break; break;

View File

@ -96,25 +96,34 @@ void MG_ADAPT_i::copyHypothesisDataFromImpl(const ::MG_ADAPT::MgAdaptHypothesisD
SMESH::MG_ADAPT_ptr SMESH_Gen_i::CreateMG_ADAPT() SMESH::MG_ADAPT_ptr SMESH_Gen_i::CreateMG_ADAPT()
{ {
#ifndef DISABLE_MG_ADAPT
SMESH::MG_ADAPT_i* aMGadapt = new SMESH::MG_ADAPT_i(); SMESH::MG_ADAPT_i* aMGadapt = new SMESH::MG_ADAPT_i();
SMESH::MG_ADAPT_var anObj = aMGadapt->_this(); SMESH::MG_ADAPT_var anObj = aMGadapt->_this();
return anObj._retn(); return anObj._retn();
#else
return SMESH::MG_ADAPT_ptr();
#endif
} }
SMESH::MG_ADAPT_ptr SMESH_Gen_i::CreateAdaptationHypothesis() SMESH::MG_ADAPT_ptr SMESH_Gen_i::CreateAdaptationHypothesis()
{ {
#ifndef DISABLE_MG_ADAPT
SMESH::MG_ADAPT_i* aMGadapt = new SMESH::MG_ADAPT_i(); SMESH::MG_ADAPT_i* aMGadapt = new SMESH::MG_ADAPT_i();
SMESH::MG_ADAPT_var anObj = aMGadapt->_this(); SMESH::MG_ADAPT_var anObj = aMGadapt->_this();
return anObj._retn(); return anObj._retn();
#else
return SMESH::MG_ADAPT_ptr();
#endif
} }
SMESH::MG_ADAPT_OBJECT_ptr SMESH_Gen_i::Adaptation( const char* adaptationType) SMESH::MG_ADAPT_OBJECT_ptr SMESH_Gen_i::Adaptation( const char* adaptationType)
{ {
#ifndef DISABLE_MG_ADAPT
if (!strcmp(adaptationType, "MG_Adapt")) if (!strcmp(adaptationType, "MG_Adapt"))
{ {
SMESH::MG_ADAPT_OBJECT_i* mg_adapt_object = new SMESH::MG_ADAPT_OBJECT_i(); SMESH::MG_ADAPT_OBJECT_i* mg_adapt_object = new SMESH::MG_ADAPT_OBJECT_i();
SMESH::MG_ADAPT_OBJECT_var anObj = mg_adapt_object->_this(); SMESH::MG_ADAPT_OBJECT_var anObj = mg_adapt_object->_this();
return anObj._retn(); return anObj._retn();
} }
#endif
return SMESH::MG_ADAPT_OBJECT_ptr(); return SMESH::MG_ADAPT_OBJECT_ptr();
} }
//============================================================================= //=============================================================================