* cMake: Add base support for LibPack3
Minor changes to FreeCAD source code to support compiling with Qt 6.5 on MSVC,
and changes to cMake setup to support the new Libpack.
* NETGENPlugin: Fix compilation with MSVC and OCCT 7.8
* Material: Switch to Wrapped_ParseTupleAndKeywords for /fpermissive- on MSVC
* Base: Prevent accidental definition of MIN and MAX by MSVC
* cMake: Prevent accidentally finding an old LibPack
* Material: Wrap another ParseTuple call
* OCCT: Modify includes for 7.8.x
* Part: Change TNP code to use Wrapped_ParseTupleAndArgs
* Spreadsheet: Workaround for MSVC macro pollution
* Mesh: Workaround for MSVC macro pollution
* Base: Remove extra MSVC flag (moved to CMake)
* Tests: Fix compiling with /permissive-
* FEM: Fix Qt warnings about duplicate element names
* cMake: Ensure major version numbers are set
* Address review comments.
* cMake: Further tweaks for LibPack3
* cMake: Modify specification of compiler flags for MSVC
* Main: Remove QtQuick testing code
* cmake: Find Boost before SMESH (which uses it)
* Fixes for LibPack2
* cMake: Another try at importinhg VTK cleanly
* Removed unnecessary function
the "renamedDocumentObjet" function does nothing
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This patch substitutes by isAttachedToDocument() (almost) everywhere where
getNameInDocument() is used for this purpose.
The very few places not touched by this patch demand a (just a little) less trivial change.
When we change the returning type of getNameInDocument() to std::string,
those places will be easily found, because they shall generate a compiler error
(converting std::string to bool).
Rationale:
The fact that getNameInDocument() return nullptr to indicate
that the object is not attached to a document is responsible for lots of bugs
where the developer does not check for "nullptr".
The idea is to eliminate all those uses of getNameInDocument() and, in the near future,
make getNameInDocument() return always a valid std::string.
This undoes most of the Xerces related part of the commits listed below.
The issue resolved here is that the Xerces include dir *is* set in the
CMakeLists.txt of src/Base, but it got removed from various App and Gui
dirs in src/Mod. If those now include a header from src/Base, which
itself includes xercesc, the build fails using Apple clang version 11.0.0
(clang-1100.0.33.17) on Mojave, configured using cmake 3.22.1, with
errors like the following:
In file included from .../src/Mod/Part/App/FeaturePartBoolean.cpp:34:
In file included from .../src/App/Application.h:33:
.../src/Base/Parameter.h:54:10: fatal error: 'xercesc/util/XercesDefs.hpp' file not found
#include <xercesc/util/XercesDefs.hpp>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Finally, a full list of the commits that introduced this spurious include
dir optimization for reference:
- Drawing: commit 96ad045b91
- Image: commit dde71a21d5
- Import: commit c9d28b542f
- Inspection: commit d41f55f382
- Mesh: commit 19072b0538
- Part: commit fe213a48f0
- PartDesign: commit b037d8e240
- Path: commit f23fa31f42
- Points: commit bec723ba17
- Raytracing: commit 08d4ac63a3
- ReverseEnginering: commit 5ca787cb0e
- Robot: commit bad4809a1c
- Sketcher: commit 3c96daf105
- Spreadsheet: commit 66e8a2bef3
- Start: commit c9dee5e70a
- Surface: commit 6b04215be6
- TechDraw: commit 5e6699e48d
- Test: commit ea5b45b92c
- Web: commit ee6d631531