OpenFOAM® v1706: New and updated build system
Updated wmake build tool
This version includes refinements to the wmake build system.
Intermediate targets are now built into a separate build/ directory instead of bundled into the platforms/ directory. This eases the task of, e.g. packaging various binary platforms, or building packages for installation via modules etc.. i]Intermediate build targets can be removed with a simple rm command or by using the wcleanBuild script.
In addition, it is now possible to use wmake and wclean using a file name as a target. This convenience means that
will behave similarly to
The default action for the wcleanBuild and wcleanPlatform scripts is to ‘do nothing’ rather than removing the currently active platform. This helps to avoid removing files accidentally. Both of these scripts can also be executed from the top-level ThirdParty directory.
Spack
OpenCFD has added support for building OpenFOAM with the spack system — an open source tool that provides a simple interface to manage different versions and dependencies in a robust manner.
Spack resembles a Linux package manager except that it has been designed to manage different combinations of package variants and versions. More detailed reading and source code is available from:
Once installed, it is straightforward to query which versions and variants are available for a particular software package, e.g.:
And then just install it using:
To see how spack resolves dependencies and which optional packages need to be installed, use one of these commands:
spack spec openfoam-com@1706
spack spec -I openfoam-com@develop
Variants can be selected with a + or deselected with a ~. It is also possible to specify which version of dependencies should be used, e.g.
Would build and install OpenFOAM with 64-bit labels, without ParaView plugins, without the OpenFOAM source code and use openmpi 1.10.6.
Once OpenFOAM has been installed, the spack find command can be used to locate it:
==> 3 installed packages.
-- linux-opensuse13-x86_64 / gcc@4.8 ----------------------------
openfoam-com@1612
openfoam-com@1706
openfoam-com@develop
$ spack find -v openfoam-com@develop
==> 1 installed packages.
-- linux-opensuse13-x86_64 / gcc@4.8 ----------------------------
openfoam-com@develop~float32~int64~knl~metis~mgridgen~paraview+scotch~source~zoltan
The spack modules support for OpenFOAM is in early development, and will be enhanced in the future. Currently it is possible to locate the OpenFOAM package and source as usual:
Miscellaneous
VTK, ParaView versioning
Versioning has been added to VTK and ParaView libraries to allow better switching between versions without library symbol conflicts. This results in a build process that is now more robust to changes in the location of the ThirdParty directory.
Library paths
Improvements for the handling of lib/ vs lib64/ in more places.
Modules
The new foamCreateModuleInclude script in the feature-scripts community repository assists when creating a module for OpenFOAM.