CONFIG: add additional modules/ directory and Module namespace

- any code placed here should provide Allwmake and Allwclean scripts
  and normally have compilation targets into FOAM_APPBIN, FOAM_LIBBIN

  Since there is no standardize places for sources or applications,
  a simultaneous build of a module's doxygen documentation requires
  a minor bit of manual effort. Add (via symlink) the sources into
  the modules/doc/ directory to have them included in the normal
  OpenFOAM doxygen documentation generation.

  A makelink.example file is provided there as an example.
This commit is contained in:
Mark Olesen
2017-12-13 17:36:35 +01:00
parent bc8420e14f
commit ffc1c5aca0
9 changed files with 57 additions and 2 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "cfmesh"]
path = modules/cfmesh
url = https://develop.openfoam.com/Community/integration-cfmesh.git

View File

@ -43,6 +43,14 @@ echo "Compile OpenFOAM applications"
echo echo
applications/Allwmake $targetType $* applications/Allwmake $targetType $*
# Additional components/modules
if [ -d "$WM_PROJECT_DIR/modules" ]
then
(
cd $WM_PROJECT_DIR/modules 2>/dev/null && wmake -all
)
fi
# Some summary information # Some summary information
echo echo
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown" date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"

View File

@ -769,7 +769,8 @@ WARN_LOGFILE =
#INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global #INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global
INPUT = $(WM_PROJECT_DIR)/src \ INPUT = $(WM_PROJECT_DIR)/src \
$(WM_PROJECT_DIR)/applications/utilities \ $(WM_PROJECT_DIR)/applications/utilities \
$(WM_PROJECT_DIR)/applications/solvers $(WM_PROJECT_DIR)/applications/solvers \
$(WM_PROJECT_DIR)/modules/doc
#For testing only #For testing only
#INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global \ #INPUT = $(WM_PROJECT_DIR)/src/OpenFOAM/global \

15
modules/README.md Normal file
View File

@ -0,0 +1,15 @@
OpenFOAM Modules
================
This directory is a location to place additional OpenFOAM components
or tools and have them built as part of the normal OpenFOAM build
process. It is assumed that each subdirectory contain an appropriate
Allwmake file, and that they should in all likelihood also build into
`$FOAM_APPBIN` and `$FOAM_LIBBIN` instead of
`$FOAM_USER_APPBIN` and `$FOAM_USER_LIBBIN`.
These additional components may be added as git submodules, by script
or by hand.
To build the doxygen information for the components, it is also
necessary to link the directories to the doc/ subdirectory.

1
modules/cfmesh Submodule

Submodule modules/cfmesh added at 3b91ceb0bb

7
modules/doc/Allwclean Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# Dummy for "wclean -all"
# Returns true so it does look like an error
echo "skip wclean for modules doxygen directory"
#------------------------------------------------------------------------------

7
modules/doc/Allwmake Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# Dummy for "wmake -all"
# Returns true so it does look like an error
echo "skip wmake target for modules doxygen directory"
#------------------------------------------------------------------------------

11
modules/doc/makelink.example Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
cd ${0%/*} || exit 1
# Manually create doxygen links for module documentation
for dir in cfmesh/meshLibrary
do
[ -d "../$dir" ] && ln -svf ../$dir ${dir##*/}
done
#------------------------------------------------------------------------------

View File

@ -27,7 +27,6 @@ Namespace
Description Description
Namespace for OpenFOAM Namespace for OpenFOAM
Global Global
Foam::FOAMversion Foam::FOAMversion
@ -67,6 +66,9 @@ namespace Foam
extern const char* const FOAMversion; extern const char* const FOAMversion;
extern const char* const FOAMbuild; extern const char* const FOAMbuild;
extern const std::string FOAMbuildArch; extern const std::string FOAMbuildArch;
//- Additional OpenFOAM modules
namespace Module {}
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //