From b312232b80ca8d5a1162d77f198783ec6792c705 Mon Sep 17 00:00:00 2001 From: jriegel Date: Wed, 26 Jun 2013 23:20:09 +0200 Subject: [PATCH] Switch NetgenObject to inert if build without Netgen --- src/Mod/Fem/App/CMakeLists.txt | 31 +++++++++++++++----- src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp | 13 ++++---- src/Mod/Fem/Gui/CMakeLists.txt | 4 +++ src/Mod/Fem/Gui/Command.cpp | 6 ++++ 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index 4c6c98589..48639d6f7 100755 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -4,6 +4,10 @@ else(MSVC) add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H) endif(MSVC) +if(FREECAD_BUILD_FEM_NETGEN) + add_definitions(-DFCWithNetgen) +endif(FREECAD_BUILD_FEM_NETGEN) + include_directories( ${CMAKE_SOURCE_DIR}/src @@ -20,14 +24,25 @@ include_directories( link_directories(${OCC_LIBRARY_DIR}) -set(Fem_LIBS - Part - Mesh - FreeCADApp - StdMeshers - NETGENPlugin - SMESH -) + +if(FREECAD_BUILD_FEM_NETGEN) + set(Fem_LIBS + Part + Mesh + FreeCADApp + StdMeshers + NETGENPlugin + SMESH + ) +else(FREECAD_BUILD_FEM_NETGEN) + set(Fem_LIBS + Part + Mesh + FreeCADApp + StdMeshers + SMESH + ) +endif(FREECAD_BUILD_FEM_NETGEN) generate_from_xml(FemMeshPy) diff --git a/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp b/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp index 7bad4cbe3..0ebe3267e 100644 --- a/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp +++ b/src/Mod/Fem/App/FemMeshShapeNetgenObject.cpp @@ -38,9 +38,11 @@ #include #include -#include -#include -#include +#ifdef FCWithNetgen + #include + #include + #include +#endif #include #include @@ -71,7 +73,8 @@ FemMeshShapeNetgenObject::~FemMeshShapeNetgenObject() App::DocumentObjectExecReturn *FemMeshShapeNetgenObject::execute(void) { - +#ifdef FCWithNetgen + Fem::FemMesh newMesh; Part::Feature *feat = Shape.getValue(); @@ -132,7 +135,7 @@ App::DocumentObjectExecReturn *FemMeshShapeNetgenObject::execute(void) // set the value to the object FemMesh.setValue(newMesh); - +#endif return App::DocumentObject::StdReturn; } diff --git a/src/Mod/Fem/Gui/CMakeLists.txt b/src/Mod/Fem/Gui/CMakeLists.txt index 6dc46ff7e..823d75c65 100755 --- a/src/Mod/Fem/Gui/CMakeLists.txt +++ b/src/Mod/Fem/Gui/CMakeLists.txt @@ -4,6 +4,10 @@ else(MSVC) add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H) endif(MSVC) +if(FREECAD_BUILD_FEM_NETGEN) + add_definitions(-DFCWithNetgen) +endif(FREECAD_BUILD_FEM_NETGEN) + include_directories( ${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR} diff --git a/src/Mod/Fem/Gui/Command.cpp b/src/Mod/Fem/Gui/Command.cpp index f65d8c552..4c10293b9 100755 --- a/src/Mod/Fem/Gui/Command.cpp +++ b/src/Mod/Fem/Gui/Command.cpp @@ -126,6 +126,12 @@ CmdFemCreateAnalysis::CmdFemCreateAnalysis() void CmdFemCreateAnalysis::activated(int iMsg) { +#ifndef FCWithNetgen + QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), + QObject::tr("Your FreeCAD is build without NETGEN support. Meshing will not work....")); + return; +#endif + std::vector selection = getSelection().getSelectionEx(); if (selection.size() != 1) {