From 71dae0e63981596effe2a684511d05efdaf64eb0 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 18 Nov 2019 11:56:08 +0100 Subject: [PATCH] handle some more warnings: -Wkeyword-macro -Wdeprecated-declarations -Wextra-semi --- cMake/FreeCAD_Helpers/PrintFinalReport.cmake | 2 +- src/App/Path.cpp | 2 +- src/Gui/WidgetFactory.cpp | 4 + src/Mod/Fem/App/CMakeLists.txt | 7 +- src/Mod/Fem/Gui/CMakeLists.txt | 7 +- src/Mod/Import/App/AppImportPy.cpp | 7 + src/Mod/Import/App/ExportOCAF.cpp | 1 - src/Mod/Import/App/ImportOCAF.cpp | 1 - src/Mod/Import/Gui/AppImportGuiPy.cpp | 267 ++++++++++--------- src/Mod/MeshPart/App/Mesher.cpp | 1 + 10 files changed, 161 insertions(+), 138 deletions(-) diff --git a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake index 02e011c05c..5f8e42b4f2 100644 --- a/cMake/FreeCAD_Helpers/PrintFinalReport.cmake +++ b/cMake/FreeCAD_Helpers/PrintFinalReport.cmake @@ -8,7 +8,7 @@ macro(PrintFinalReport) message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") endif() - message(STATUS "Compiler: ${CMAKE_CXX_COMPILER}") + message(STATUS "Compiler: ${CMAKE_CXX_COMPILER} (${CMAKE_CXX_COMPILER_VERSION})") message(STATUS "Flags: ${CMAKE_CXX_FLAGS}") # Qt5 needs/sets PYTHON_CONFIG_SUFFIX regarding Shiboken diff --git a/src/App/Path.cpp b/src/App/Path.cpp index ef8fe5d1d7..e821d95e8f 100644 --- a/src/App/Path.cpp +++ b/src/App/Path.cpp @@ -27,7 +27,7 @@ #endif #include "Path.h" -#define new DEBUG_CLIENTBLOCK + using namespace App; diff --git a/src/Gui/WidgetFactory.cpp b/src/Gui/WidgetFactory.cpp index 530dff650c..a032414674 100644 --- a/src/Gui/WidgetFactory.cpp +++ b/src/Gui/WidgetFactory.cpp @@ -51,9 +51,13 @@ # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wmismatched-tags" # pragma clang diagnostic ignored "-Wunused-parameter" +# if __clang_major__ > 3 +# pragma clang diagnostic ignored "-Wkeyword-macro" +# endif #elif defined (__GNUC__) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wunused-parameter" +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif #ifdef HAVE_SHIBOKEN diff --git a/src/Mod/Fem/App/CMakeLists.txt b/src/Mod/Fem/App/CMakeLists.txt index ea1a17de32..cb45f0ba19 100644 --- a/src/Mod/Fem/App/CMakeLists.txt +++ b/src/Mod/Fem/App/CMakeLists.txt @@ -1,9 +1,12 @@ # Many warnings caused by vtk if(CMAKE_COMPILER_IS_CLANGXX) - set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-pedantic") # needed for vtk headers + add_compile_options(-Wno-pedantic) # needed for vtk headers + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0) + add_compile_options(-Wno-inconsistent-missing-override) + endif() elseif(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-pedantic") # needed for vtk headers + add_compile_options(-Wno-pedantic) # needed for vtk headers endif() if(MSVC) diff --git a/src/Mod/Fem/Gui/CMakeLists.txt b/src/Mod/Fem/Gui/CMakeLists.txt index a4076527c7..a6686c9af0 100755 --- a/src/Mod/Fem/Gui/CMakeLists.txt +++ b/src/Mod/Fem/Gui/CMakeLists.txt @@ -1,9 +1,12 @@ # Many warnings caused by vtk if(CMAKE_COMPILER_IS_CLANGXX) - set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-pedantic") # needed for vtk headers + add_compile_options(-Wno-pedantic) # needed for vtk headers + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0) + add_compile_options(-Wno-inconsistent-missing-override) + endif() elseif(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-pedantic") # needed for vtk headers + add_compile_options(-Wno-pedantic) # needed for vtk headers endif() if(MSVC) diff --git a/src/Mod/Import/App/AppImportPy.cpp b/src/Mod/Import/App/AppImportPy.cpp index 45d6e1c041..aa1dcdc19a 100644 --- a/src/Mod/Import/App/AppImportPy.cpp +++ b/src/Mod/Import/App/AppImportPy.cpp @@ -28,6 +28,10 @@ #ifndef _PreComp_ # include # include +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wextra-semi" +#endif # include # include # include @@ -51,6 +55,9 @@ # include # include # include +#if defined(__clang__) +# pragma clang diagnostic pop +#endif #endif #include diff --git a/src/Mod/Import/App/ExportOCAF.cpp b/src/Mod/Import/App/ExportOCAF.cpp index 4f874d1d13..2baa95e2f4 100644 --- a/src/Mod/Import/App/ExportOCAF.cpp +++ b/src/Mod/Import/App/ExportOCAF.cpp @@ -60,7 +60,6 @@ # include # include # include -# include # include # include # include diff --git a/src/Mod/Import/App/ImportOCAF.cpp b/src/Mod/Import/App/ImportOCAF.cpp index aa4a962592..fded5f60f8 100644 --- a/src/Mod/Import/App/ImportOCAF.cpp +++ b/src/Mod/Import/App/ImportOCAF.cpp @@ -62,7 +62,6 @@ # include # include # include -# include # include # include # include diff --git a/src/Mod/Import/Gui/AppImportGuiPy.cpp b/src/Mod/Import/Gui/AppImportGuiPy.cpp index f9f2a57abe..c279dbb6b4 100644 --- a/src/Mod/Import/Gui/AppImportGuiPy.cpp +++ b/src/Mod/Import/Gui/AppImportGuiPy.cpp @@ -30,6 +30,10 @@ # include # include # include +#if defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wextra-semi" +#endif # include # include # include @@ -70,6 +74,9 @@ # else # include # endif +#if defined(__clang__) +# pragma clang diagnostic pop +#endif #endif #include @@ -121,11 +128,11 @@ #include #include #include -#include +#include + + +FC_LOG_LEVEL_INIT("Import", true, true) - -FC_LOG_LEVEL_INIT("Import", true, true) - class OCAFBrowser { public: @@ -299,57 +306,57 @@ public: } private: - virtual void applyFaceColors(Part::Feature* part, const std::vector& colors) override { - auto vp = dynamic_cast(Gui::Application::Instance->getViewProvider(part)); - if (!vp) return; - if(colors.empty()) { - // vp->MapFaceColor.setValue(true); - // vp->MapLineColor.setValue(true); - // vp->updateColors(0,true); - return; - } - // vp->MapFaceColor.setValue(false); - if(colors.size() == 1) - vp->ShapeColor.setValue(colors.front()); - else - vp->DiffuseColor.setValues(colors); - } - virtual void applyEdgeColors(Part::Feature* part, const std::vector& colors) override { - auto vp = dynamic_cast(Gui::Application::Instance->getViewProvider(part)); - if (!vp) return; - // vp->MapLineColor.setValue(false); - if(colors.size() == 1) - vp->LineColor.setValue(colors.front()); - else - vp->LineColorArray.setValues(colors); - } - virtual void applyLinkColor(App::DocumentObject *obj, int index, App::Color color) override { - auto vp = dynamic_cast(Gui::Application::Instance->getViewProvider(obj)); - if(!vp) - return; - if(index<0) { - vp->OverrideMaterial.setValue(true); - vp->ShapeMaterial.setDiffuseColor(color); - return; - } - if(vp->OverrideMaterialList.getSize()<=index) - vp->OverrideMaterialList.setSize(index+1); - vp->OverrideMaterialList.set1Value(index,true); - App::Material mat(App::Material::DEFAULT); - if(vp->MaterialList.getSize()<=index) - vp->MaterialList.setSize(index+1,mat); - mat.diffuseColor = color; - vp->MaterialList.set1Value(index,mat); - } - virtual void applyElementColors(App::DocumentObject *obj, - const std::map &colors) override - { - auto vp = Gui::Application::Instance->getViewProvider(obj); - if(!vp) - return; - (void)colors; - // vp->setElementColors(colors); - } + virtual void applyFaceColors(Part::Feature* part, const std::vector& colors) override { + auto vp = dynamic_cast(Gui::Application::Instance->getViewProvider(part)); + if (!vp) return; + if(colors.empty()) { + // vp->MapFaceColor.setValue(true); + // vp->MapLineColor.setValue(true); + // vp->updateColors(0,true); + return; + } + // vp->MapFaceColor.setValue(false); + if(colors.size() == 1) + vp->ShapeColor.setValue(colors.front()); + else + vp->DiffuseColor.setValues(colors); + } + virtual void applyEdgeColors(Part::Feature* part, const std::vector& colors) override { + auto vp = dynamic_cast(Gui::Application::Instance->getViewProvider(part)); + if (!vp) return; + // vp->MapLineColor.setValue(false); + if(colors.size() == 1) + vp->LineColor.setValue(colors.front()); + else + vp->LineColorArray.setValues(colors); + } + virtual void applyLinkColor(App::DocumentObject *obj, int index, App::Color color) override { + auto vp = dynamic_cast(Gui::Application::Instance->getViewProvider(obj)); + if(!vp) + return; + if(index<0) { + vp->OverrideMaterial.setValue(true); + vp->ShapeMaterial.setDiffuseColor(color); + return; + } + if(vp->OverrideMaterialList.getSize()<=index) + vp->OverrideMaterialList.setSize(index+1); + vp->OverrideMaterialList.set1Value(index,true); + App::Material mat(App::Material::DEFAULT); + if(vp->MaterialList.getSize()<=index) + vp->MaterialList.setSize(index+1,mat); + mat.diffuseColor = color; + vp->MaterialList.set1Value(index,mat); + } + virtual void applyElementColors(App::DocumentObject *obj, + const std::map &colors) override + { + auto vp = Gui::Application::Instance->getViewProvider(obj); + if(!vp) + return; + (void)colors; + // vp->setElementColors(colors); + } }; class ExportOCAFGui : public Import::ExportOCAF @@ -398,19 +405,19 @@ private: { char* Name; char* DocName=0; - PyObject *importHidden = Py_None; - PyObject *merge = Py_None; - PyObject *useLinkGroup = Py_None; - int mode = -1; - static char* kwd_list[] = {"name","docName","importHidden","merge","useLinkGroup","mode",0}; - if(!PyArg_ParseTupleAndKeywords(args.ptr(), kwds.ptr(), "et|sOOOi", - kwd_list,"utf-8",&Name,&DocName,&importHidden,&merge,&useLinkGroup,&mode)) + PyObject *importHidden = Py_None; + PyObject *merge = Py_None; + PyObject *useLinkGroup = Py_None; + int mode = -1; + static char* kwd_list[] = {"name","docName","importHidden","merge","useLinkGroup","mode",0}; + if(!PyArg_ParseTupleAndKeywords(args.ptr(), kwds.ptr(), "et|sOOOi", + kwd_list,"utf-8",&Name,&DocName,&importHidden,&merge,&useLinkGroup,&mode)) throw Py::Exception(); std::string Utf8Name = std::string(Name); PyMem_Free(Name); std::string name8bit = Part::encodeFilename(Utf8Name); - + try { //Base::Console().Log("Insert in Part with %s",Name); Base::FileInfo file(Utf8Name.c_str()); @@ -430,19 +437,19 @@ private: ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Import/hSTEP"); optionReadShapeCompoundMode = hGrp->GetBool("ReadShapeCompoundMode", optionReadShapeCompoundMode); ImportOCAFExt ocaf(hDoc, pcDoc, file.fileNamePure()); - FC_TIME_INIT(t); - FC_DURATION_DECL_INIT2(d1,d2); + FC_TIME_INIT(t); + FC_DURATION_DECL_INIT2(d1,d2); if (file.hasExtension("stp") || file.hasExtension("step")) { - - if(mode<0) - mode = ocaf.getMode(); - if(mode && !pcDoc->isSaved()) { - auto gdoc = Gui::Application::Instance->getDocument(pcDoc); - if(!gdoc->save()) - return Py::Object(); - } - + + if(mode<0) + mode = ocaf.getMode(); + if(mode && !pcDoc->isSaved()) { + auto gdoc = Gui::Application::Instance->getDocument(pcDoc); + if(!gdoc->save()) + return Py::Object(); + } + try { STEPCAFControl_Reader aReader; aReader.SetColorMode(true); @@ -506,30 +513,30 @@ private: throw Py::Exception(Base::BaseExceptionFreeCADError, "no supported file format"); } - FC_DURATION_PLUS(d1,t); - if(merge!=Py_None) - ocaf.setMerge(PyObject_IsTrue(merge)); - if(importHidden!=Py_None) - ocaf.setImportHiddenObject(PyObject_IsTrue(importHidden)); - if(useLinkGroup!=Py_None) - ocaf.setUseLinkGroup(PyObject_IsTrue(useLinkGroup)); - ocaf.setMode(mode); - auto ret = ocaf.loadShapes(); + FC_DURATION_PLUS(d1,t); + if(merge!=Py_None) + ocaf.setMerge(PyObject_IsTrue(merge)); + if(importHidden!=Py_None) + ocaf.setImportHiddenObject(PyObject_IsTrue(importHidden)); + if(useLinkGroup!=Py_None) + ocaf.setUseLinkGroup(PyObject_IsTrue(useLinkGroup)); + ocaf.setMode(mode); + auto ret = ocaf.loadShapes(); hApp->Close(hDoc); - FC_DURATION_PLUS(d2,t); - FC_DURATION_MSG(d1,"file read"); - FC_DURATION_MSG(d2,"import"); - FC_DURATION_MSG((d1+d2),"total"); - - if(ret) { - App::GetApplication().setActiveDocument(pcDoc); - auto gdoc = Gui::Application::Instance->getDocument(pcDoc); - if(gdoc) { - gdoc->setActiveView(); - Gui::Application::Instance->commandManager().runCommandByName("Std_ViewFitAll"); - } - return Py::asObject(ret->getPyObject()); - } + FC_DURATION_PLUS(d2,t); + FC_DURATION_MSG(d1,"file read"); + FC_DURATION_MSG(d2,"import"); + FC_DURATION_MSG((d1+d2),"total"); + + if(ret) { + App::GetApplication().setActiveDocument(pcDoc); + auto gdoc = Gui::Application::Instance->getDocument(pcDoc); + if(gdoc) { + gdoc->setActiveView(); + Gui::Application::Instance->commandManager().runCommandByName("Std_ViewFitAll"); + } + return Py::asObject(ret->getPyObject()); + } } catch (Standard_Failure& e) { throw Py::Exception(Base::BaseExceptionFreeCADError, e.GetMessageString()); @@ -541,23 +548,23 @@ private: return Py::None(); } - static std::map getShapeColors(App::DocumentObject *obj, const char *subname) { - auto vp = Gui::Application::Instance->getViewProvider(obj); - if(vp) - return vp->getElementColors(subname); - return std::map(); - } - + static std::map getShapeColors(App::DocumentObject *obj, const char *subname) { + auto vp = Gui::Application::Instance->getViewProvider(obj); + if(vp) + return vp->getElementColors(subname); + return std::map(); + } + Py::Object exporter(const Py::Tuple& args, const Py::Dict &kwds) { PyObject* object; char* Name; - PyObject *exportHidden = Py_None; - PyObject *legacy = Py_None; - PyObject *keepPlacement = Py_None; - static char* kwd_list[] = {"obj", "name", "exportHidden", "legacy", "keepPlacement",0}; - if(!PyArg_ParseTupleAndKeywords(args.ptr(), kwds.ptr(), "Oet|OOO", - kwd_list,&object,"utf-8",&Name,&exportHidden,&legacy,&keepPlacement)) + PyObject *exportHidden = Py_None; + PyObject *legacy = Py_None; + PyObject *keepPlacement = Py_None; + static char* kwd_list[] = {"obj", "name", "exportHidden", "legacy", "keepPlacement",0}; + if(!PyArg_ParseTupleAndKeywords(args.ptr(), kwds.ptr(), "Oet|OOO", + kwd_list,&object,"utf-8",&Name,&exportHidden,&legacy,&keepPlacement)) throw Py::Exception(); std::string Utf8Name = std::string(Name); @@ -570,27 +577,27 @@ private: Handle(TDocStd_Document) hDoc; hApp->NewDocument(TCollection_ExtendedString("MDTV-CAF"), hDoc); - std::vector objs; + std::vector objs; for (Py::Sequence::iterator it = list.begin(); it != list.end(); ++it) { PyObject* item = (*it).ptr(); - if (PyObject_TypeCheck(item, &(App::DocumentObjectPy::Type))) - objs.push_back(static_cast(item)->getDocumentObjectPtr()); - } - - if(legacy == Py_None) { - auto hGrp = App::GetApplication().GetParameterGroupByPath( - "User parameter:BaseApp/Preferences/Mod/Import"); - legacy = hGrp->GetBool("ExportLegacy",false)?Py_True:Py_False; - } - + if (PyObject_TypeCheck(item, &(App::DocumentObjectPy::Type))) + objs.push_back(static_cast(item)->getDocumentObjectPtr()); + } + + if(legacy == Py_None) { + auto hGrp = App::GetApplication().GetParameterGroupByPath( + "User parameter:BaseApp/Preferences/Mod/Import"); + legacy = hGrp->GetBool("ExportLegacy",false)?Py_True:Py_False; + } + Import::ExportOCAF2 ocaf(hDoc, &getShapeColors); - if(!PyObject_IsTrue(legacy) || !ocaf.canFallback(objs)) { - if(exportHidden!=Py_None) - ocaf.setExportHiddenObject(PyObject_IsTrue(exportHidden)); - if(keepPlacement!=Py_None) - ocaf.setKeepPlacement(PyObject_IsTrue(keepPlacement)); - ocaf.exportObjects(objs); - } else { + if(!PyObject_IsTrue(legacy) || !ocaf.canFallback(objs)) { + if(exportHidden!=Py_None) + ocaf.setExportHiddenObject(PyObject_IsTrue(exportHidden)); + if(keepPlacement!=Py_None) + ocaf.setKeepPlacement(PyObject_IsTrue(keepPlacement)); + ocaf.exportObjects(objs); + } else { bool keepExplicitPlacement = objs.size() > 1; keepExplicitPlacement = Standard_True; ExportOCAFGui ocaf(hDoc, keepExplicitPlacement); @@ -598,7 +605,7 @@ private: std::vector hierarchical_label; std::vector hierarchical_loc; std::vector hierarchical_part; - for(auto obj : objs) + for(auto obj : objs) ocaf.exportObject(obj,hierarchical_label, hierarchical_loc,hierarchical_part); // Free Shapes must have absolute placement and not explicit @@ -615,7 +622,7 @@ private: // Update is not performed automatically anymore: https://tracker.dev.opencascade.org/view.php?id=28055 XCAFDoc_DocumentTool::ShapeTool(hDoc->Main())->UpdateAssemblies(); #endif - } + } Base::FileInfo file(Utf8Name.c_str()); if (file.hasExtension("stp") || file.hasExtension("step")) { diff --git a/src/Mod/MeshPart/App/Mesher.cpp b/src/Mod/MeshPart/App/Mesher.cpp index c1132c41d5..b83d22d48b 100644 --- a/src/Mod/MeshPart/App/Mesher.cpp +++ b/src/Mod/MeshPart/App/Mesher.cpp @@ -39,6 +39,7 @@ #if defined(__clang__) # pragma clang diagnostic push # pragma clang diagnostic ignored "-Woverloaded-virtual" +# pragma clang diagnostic ignored "-Wextra-semi" #elif defined (__GNUC__) # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wpedantic"