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
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
echo
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 \
$(WM_PROJECT_DIR)/applications/utilities \
$(WM_PROJECT_DIR)/applications/solvers
$(WM_PROJECT_DIR)/applications/solvers \
$(WM_PROJECT_DIR)/modules/doc
#For testing only
#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

@ -0,0 +1 @@
Subproject commit 3b91ceb0bb65ceb23b2735fe52305336be7e0aac

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