A default-constructed (or just empty) ngarray will have 'ownmem' set
despite not having an allocated data array. Destructor would then
trigger an abort.
Hardened toolchains (eg, mainline Fedora) no longer tolerate null
derefs that were silently trapped/ignored in earlier versions. This
eliminates a nullptr deref in archive.hpp that was failing several
unit tests (and causing crashes) when trying to manipulate
default-constructed archive objects.
Adjust path setup of the python modules in __init__ such that it's
possible to run pytests from a mock root during package build/test.
Also add checks to pytest/CMakelists.txt to make sure pytest abd check
are present instead of failing with an inscrutible traceback if
they're not installed or usable.
The name of the 'netgen' executable collides with an older UNIX pcb
trace routing application also named 'netgen'. Fedora, for this
reason, renames this mesher package to 'netgen-mesher' and the
executable, likewise, to 'netgen-mesher'. I propose the same change
here.
Ironically though, the current python module is already named
'netgen-mesher', which complicates loading of the module as 'netgen',
often resulting in it being unfindable. For this reason, I similarly
reverse the usage, renaming the python module from 'netgen-mesher' to
'netgen'.
Add explicit defaults where missing for clarity.
Support passing in NETGEN_GIT_VERSION for use when building, eg, RPM
packages using rpkg, which requires building from an untagged source
bundle, that is, not directly from a git checkout.
Add option to choose build against internal or external Pybind11; add
cmake module to find and configure against system Pybind.
re-add versioning of shared library files.
Add section for GCC-specific options setting (right now, to turn off
harmless warnings).
Warn if pybind11_stubgen is not found.
Adjust stubgen paths to work when build is not in-place in the source tree.
Having version.hpp throw an exception when built against a malformed
version number (due to, eg, not having the git tag available in an
automated package build from source bundle) results in _init_ failing
during an otherwise apparently successful dlopen(), as well as the
netgen-mesher executable crashing before hitting main().
This patch both forces an abort and prints a helpful message alerting
the builder/user that something went wrong instead of handing over
either a coredump or a weirdly malfunctioning library with no apparent
cause. Hopefully this will avoid a repeat of automated Fedora builds
shipping nonfunctional Netgen RPMs for several years!
move fieldlines code to meshing dir
move visualization function pointers to meshing directory
DLL_HEADER -> NGGUI_API in visualization lib
move soldata.hpp to meshing
update occ, no freetype necessary anymore