- the various make scripts now also search hierarchical sources,
which makes it easier to organize sources. The secondary
sub-directory is the lower-case value of the package stripped of
trailing non-alphabet characters.
For example, searching for ParaView-v5.9.1
sources/
|-- adios
| |-- ...
| |-- ADIOS2-2.7.1
| \-- adios-1.13.1
|-- cgal
| |-- CGAL-4.12.2
| \-- CGAL-4.14.2
| ...
|-- openmpi
| |-- openmpi-4.0.3
| \-- openmpi-4.1.1
|-- paraview
| |-- ParaView-v5.6.1
| \-- ParaView-v5.9.1
\-- scotch
...
- additional out-of-source build options
FOAM_THIRD_PARTY_BUILDROOT :
Replace WM_THIRD_PARTY_DIR as the root for build/ and platforms/
FOAM_THIRD_PARTY_SOURCES :
Alternative to WM_THIRD_PARTY_DIR/sources/
- rationalise internal package variable names for easier maintenance
- Use WM_LABEL_SIZE to explicitly define INTSIZE32 or INTSIZE64, which
ensures that SCOTCH_Num appears as (int32_t | int64_t) and avoids
any ambiguity that a plain 'int' may have.
- Provide library symlinks to the respective label-size.
Eg, libscotch.so -> libscotch-int32.so
This provides a unique library linkage name that avoids ambiguity
with system-installed libraries.
- Use IDXSIZE64 (memory addressing width Fortran)
NOTE
Unfortunately -DINT32 seems to fail if openmpi was built without Fortran!
The MPI_INT32_T is interpreted as MPI_INTEGER4 which does not exist
- needs more investigation
ENH: scotch - document Makefile.inc by copying into the source directory
ENH: update kahip build to use cmake for newer versions
- use MPI_ARCH_PATH to provide an MPI hint when making ParaView, VTK
and ADIOS.
This should align the detected MPI with what OpenFOAM itself is
using. Option -mpi-home to override.
- reduces ThirdParty inter-dependency.
Only useful for reading in graph files, which are not used
internally by OpenFOAM.
- Was already removed for Mingw compilation.
- only test in the packages that actually require it.
State as a requirement.
ENH: skip build of packages with known mingw issues
- primarily kahip and pt-scotch.
Others may also have issues, but for these we tend to use system
packages anyhow.
ENH: add '-force' option to various scripts
- overrides some _lazy_ build logic
- linkage errors for ptscotch not yet solved
CONFIG: add -I. for ThirdParty wmake Make/options
- some <headers> might otherwise be missed with the change to
'-iquote' for general wmake rules
- initialise some commonly used variables
- add library function for checking library existence that also
accounts for windows cross-compilation targets
- in 1906, we changed the handling of compiler flags to include the
exact values as used by OpenFOAM.
While this is needed for compiling some external programs -- see
https://develop.openfoam.com/Development/OpenFOAM-plus/issues/1256
for the discussion -- it appears to bring in flags that upset
some of the ParaView (and possibly VTK) compilation.
The culprits are likely to be found in the various '-W' switches,
but for now we simply extract a mininal set of compiler flags
that include -std=c++11 -m64 -fPIC, but no optimization flags,
additional warnings flags or OpenFOAM-specific defines.
- support use of wmake -show-xyz, as well as older WM_CC, WM_CFLAGS etc.
- add support for Makefile.inc for scotch
- add -toolset= option for making boost and use b2 instead of legacy
bjam for configuration
- add internal WM_SIZE_OPTIONS variable for reduced typing
- check for wmkdepend and wmkdep for wmake builds
- avoid egrep for getting processor count.
- some systems (eg, opensuse) use that since it has both qt4 and qt5
installed. ParaView now needs qt5 (preferrably 5.9).
STYLE: update version information for ParaView and Qt
- potential symbol conflicts and build errors if building from the git
version since it uses the last major number (eg, 5.4) but may have a
layout similar to the next release (eg, 5.5) and thus different
sizes for classes etc.
- only export the WM_* settings to their plain counterparts
(eg, export CC=$WM_CC)
when they actually point to an accessible program
This helps in particular when bootstrapping builds with third-party
compilers.