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(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)
SET(MEFISTO2D_NAME "MEFISTO_2D")
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_TBB @SALOME_SMESH_USE_TBB@)
SET(SALOME_SMESH_ENABLE_MEFISTO @SALOME_SMESH_ENABLE_MEFISTO@)
SET(SALOME_SMESH_DISABLE_MG_ADAPT @SALOME_SMESH_DISABLE_MG_ADAPT@)
IF(NOT WIN32)
LIST(APPEND SMESH_DEFINITIONS "-DENABLE_MEFISTO")
ENDIF(NOT WIN32)

View 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} )

View File

@ -32,8 +32,15 @@
#include <MeshFormatWriter.hxx>
#include <Utils_SALOME_Exception.hxx>
#include <Basics_Utils.hxx>
#ifndef WIN32
#include <unistd.h> // getpid()
#else
#include <process.h>
#endif
#include <fcntl.h>
#include <array>
#include <memory> // unique_ptr
typedef SMESH_Comment ToComment;
@ -859,7 +866,18 @@ void MgAdapt::execCmd( const char* cmd, int& err)
}
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 );
#endif
if(!pipe)
{
throw std::runtime_error("popen() failed!");
@ -1084,7 +1102,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());

View 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:

View File

@ -3044,6 +3044,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
break;
}
// Adaptation - begin
#ifndef DISABLE_MG_ADAPT
case SMESHOp::OpMGAdapt:
{
if ( isStudyLocked() )
@ -3055,6 +3056,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
( new SMESHGUI_MG_ADAPTDRIVER( this, model, isCreation ))->show();
break;
}
#endif
// Adaptation - end
case SMESHOp::OpSplitBiQuadratic:
case SMESHOp::OpConvertMeshToQuadratic:
@ -4294,7 +4296,9 @@ void SMESHGUI::initialize( CAM_Application* app )
createSMESHAction( SMESHOp::OpDisableAutoColor, "DISABLE_AUTO_COLOR" );
// Adaptation - begin
#ifndef DISABLE_MG_ADAPT
createSMESHAction( SMESHOp::OpMGAdapt, "MG_ADAPT", "ICON_MG_ADAPT" );
#endif
// Adaptation - end
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 ),
ctrlId = createMenu( tr( "MEN_CTRL" ), -1, 60, 10 ),
modifyId = createMenu( tr( "MEN_MODIFY" ), -1, 40, 10 ),
#ifndef DISABLE_MG_ADAPT
adaptId = createMenu( tr( "MEN_ADAPT" ), -1, 80, 10 ),
#endif
measureId = createMenu( tr( "MEN_MEASURE" ), -1, 50, 10 ),
viewId = createMenu( tr( "MEN_VIEW" ), -1, 2 );
@ -4512,7 +4518,9 @@ void SMESHGUI::initialize( CAM_Application* app )
createMenu( SMESHOp::OpPatternMapping, modifyId, -1 );
// Adaptation - begin
#ifndef DISABLE_MG_ADAPT
createMenu( SMESHOp::OpMGAdapt, adaptId, -1 );
#endif
// Adaptation - end
createMenu( SMESHOp::OpMinimumDistance, measureId, -1 );
@ -4659,8 +4667,10 @@ void SMESHGUI::initialize( CAM_Application* app )
createTool( SMESHOp::OpPatternMapping, modifyTb );
// Adaptation - begin
#ifndef DISABLE_MG_ADAPT
int adaptTb = createTool( tr( "TB_ADAPTATION" ),QString( "SMESHAdaptationToolbar" ) ) ;
createTool( SMESHOp::OpMGAdapt, adaptTb );
#endif
// Adaptation - end
int measuremTb = createTool( tr( "TB_MEASUREM" ), QString( "SMESHMeasurementsToolbar" ) ) ;
@ -4745,7 +4755,9 @@ void SMESHGUI::initialize( CAM_Application* app )
popupMgr()->insert( separator(), -1, 0 );
// Adaptation - begin
#ifndef DISABLE_MG_ADAPT
createPopupItem( SMESHOp::OpMGAdapt, OB, mesh );
#endif
// Adaptation - end
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();
break;
// Adaptation - begin
#ifndef DISABLE_MG_ADAPT
case SMESHOp::OpMGAdapt:
break;
#endif
// Adaptation - end
default:
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()
{
#ifndef DISABLE_MG_ADAPT
SMESH::MG_ADAPT_i* aMGadapt = new SMESH::MG_ADAPT_i();
SMESH::MG_ADAPT_var anObj = aMGadapt->_this();
return anObj._retn();
#else
return SMESH::MG_ADAPT_ptr();
#endif
}
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_var anObj = aMGadapt->_this();
return anObj._retn();
#else
return SMESH::MG_ADAPT_ptr();
#endif
}
SMESH::MG_ADAPT_OBJECT_ptr SMESH_Gen_i::Adaptation( const char* adaptationType)
{
#ifndef DISABLE_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_var anObj = mg_adapt_object->_this();
return anObj._retn();
}
#endif
return SMESH::MG_ADAPT_OBJECT_ptr();
}
//=============================================================================