SUBMODULE: update all the submodules

This commit is contained in:
Kutalmis Bercin
2023-12-18 11:39:20 +00:00
parent 88b3fb7c2d
commit 80d7227c3a
8 changed files with 65 additions and 57 deletions

View File

@ -7,6 +7,64 @@ tools to placed and have them built as part of the normal OpenFOAM
build process. It is assumed that each subdirectory contain an
appropriate `Allwmake` (or `Allwmake.override`) file.
### How to use
On the first use, you need to register the submodules, and then update them.
You can execute both steps for all the available submodules (including the
nested ones) as follows while you are at `$WM_PROJECT_DIR`:
```bash
cd $WM_PROJECT_DIR
git submodule update --init --recursive
```
Executing this single-line command clones all the submodules from their
respective repositories and prepares them for compilation. Note that you can
also make only a certain group of submodules ready by explicitly specifying the
requested submodules' names at the end of the command above. For example, if
you would like to use only the `turbulence-community` submodule, you specify:
```bash
git submodule update --init --recursive modules/turbulence-community
```
You can display information about the status of submodules as follows:
```bash
git submodule status --recursive
```
An easy way to see which submodules are actually in use:
```bash
cat .gitmodules
```
Which will reveal content resembling the following:
```
[submodule "avalanche"]
path = modules/avalanche
url = https://develop.openfoam.com/Community/avalanche.git
[submodule "cfmesh"]
path = modules/cfmesh
url = https://develop.openfoam.com/Community/integration-cfmesh.git
...
```
If you need to remove a specific submodule or wish to restart the process,
you can simply carry out the task as follows:
```bash
git submodule deinit modules/turbulence-community
```
This command deregisters the specified submodule and clears the
`modules/turbulence-community` directory.
A quick overview of `git submodules` can be found in this
[*blog*][blog git-submodule] with full details in the
[*manpage*][man git-submodule].
### Build locations
@ -27,62 +85,12 @@ command.
| ./Allwmake -prefix=openfoam | `$FOAM_APPBIN`, `$FOAM_LIBBIN` |
| ./Allwmake -prefix=/some/pathname | `/some/pathname/bin`, `/some/pathname/lib` |
### Adding additional components
These additional components may be added as [git submodules][man git-submodule],
by script or by hand.
#### git
On the first use, it will be necessary to register the submodules:
```
git submodule init
```
This will clone the relevant submodules from their respective
repositories.
The following will indicate the current state:
```
git submodule status
```
On the first use, or after merging upstream changes in the OpenFOAM
repository, it will be necessary to update the submodules:
```
git submodule update
```
A quick overview of `git submodule` can be in this
[*blog*][blog git-submodule] with full details in the
[*manpage*][man git-submodule].
An easy way to see which submodules are actually in use:
```
cat .gitmodules
```
Which will reveal content resembling the following:
```
[submodule "avalanche"]
path = modules/avalanche
url = https://develop.openfoam.com/Community/avalanche.git
[submodule "cfmesh"]
path = modules/cfmesh
url = https://develop.openfoam.com/Community/integration-cfmesh.git
...
```
### Documentation (doxygen)
To build the doxygen information for the components, it is also
necessary to link the directories to the doc/ subdirectory.
This is a purely manual operation.
### Developer Information
#### Build locations