|
16 | 16 | # |
17 | 17 | #------------------------------------------------------------------------------- |
18 | 18 | unset api patch |
| 19 | +unset major minor isComValue openfoamCom |
19 | 20 |
|
20 | | -[ -d "${WM_PROJECT_DIR:-/dev/null}" ] || { |
21 | | - echo "Invalid WM_PROJECT_DIR ${WM_PROJECT_DIR:-[]}" 1>&2 |
22 | | - exit 2 |
23 | | -} |
24 | | - |
25 | | -if [ -d "$WM_PROJECT_DIR/META-INFO" ] |
26 | | -then |
27 | | - # openfoam.com |
28 | | - # - simply use foamEtcFile to extract api,patch information |
29 | | - |
30 | | - api="$("$WM_PROJECT_DIR"/bin/foamEtcFile -show-api)" |
31 | | - patch="$("$WM_PROJECT_DIR"/bin/foamEtcFile -show-patch)" |
32 | | - |
33 | | - echo "OpenFOAM (com) - api=$api patch=$patch" 1>&2 |
34 | | - |
| 21 | +emit_header() |
| 22 | +{ |
35 | 23 | cat << VERSION_HEADER |
36 | 24 | // OpenFOAM versions information |
37 | 25 | // generated by the Allwmake-script of the libWallModelledLES-distro |
38 | 26 | #ifndef foamVersion4wmles_H |
39 | 27 | #define foamVersion4wmles_H |
40 | 28 |
|
41 | 29 | #define FOAM_VERSION4WMLES_FORK com /* unused */ |
42 | | -#define FOAM_VERSION4WMLES_MAJOR $api |
43 | | -#define FOAM_VERSION4WMLES_MINOR 0 |
| 30 | +#define FOAM_VERSION4WMLES_MAJOR $major |
| 31 | +#define FOAM_VERSION4WMLES_MINOR $minor |
44 | 32 | #define FOAM_VERSION4WMLES_PATCH 0 |
45 | 33 | #define FOAM_VERSION4WMLES_PATCH_NUM 0 |
46 | 34 |
|
47 | | -#define FOAM_VERSION4WMLES_IS_COM $api |
| 35 | +#define FOAM_VERSION4WMLES_IS_COM $isComValue |
48 | 36 | #undef FOAM_VERSION4WMLES_IS_ORG |
49 | 37 | #undef FOAM_VERSION4WMLES_IS_EXTEND |
50 | 38 |
|
51 | 39 | // OPENFOAM_COM is the release date (YYMM) as an integer |
52 | 40 | #ifndef OPENFOAM_COM |
53 | | -# define OPENFOAM_COM $api |
| 41 | +# define OPENFOAM_COM $openfoamCom |
54 | 42 | #endif |
55 | 43 |
|
56 | 44 | #endif /* foamVersion4wmles_H */ |
57 | 45 | VERSION_HEADER |
| 46 | +} |
| 47 | + |
| 48 | +[ -d "${WM_PROJECT_DIR:-/dev/null}" ] || { |
| 49 | + echo "Invalid WM_PROJECT_DIR ${WM_PROJECT_DIR:-[]}" 1>&2 |
| 50 | + exit 2 |
| 51 | +} |
| 52 | + |
| 53 | +if [ -d "$WM_PROJECT_DIR/META-INFO" ] |
| 54 | +then |
| 55 | + # openfoam.com |
| 56 | + # - simply use foamEtcFile to extract api,patch information |
| 57 | + |
| 58 | + api="$("$WM_PROJECT_DIR"/bin/foamEtcFile -show-api)" |
| 59 | + patch="$("$WM_PROJECT_DIR"/bin/foamEtcFile -show-patch)" |
| 60 | + |
| 61 | + echo "OpenFOAM (com) - api=$api patch=$patch" 1>&2 |
| 62 | + major="$api" |
| 63 | + minor=0 |
| 64 | + isComValue="$api" |
| 65 | + openfoamCom="$api" |
| 66 | + emit_header |
58 | 67 |
|
59 | 68 | else |
60 | | - echo "Not an OpenFOAM.com version - revert to parsing version number" 1>&2 |
61 | | - exit 1 |
| 69 | + # Python-free fallback for installations where META-INFO is unavailable. |
| 70 | + # Assume an OpenCFD version using the vYYMM naming convention and |
| 71 | + # infer enough information from WM_PROJECT_VERSION for the library rules. |
| 72 | + case "${WM_PROJECT_VERSION:-}" in |
| 73 | + v[0-9][0-9][0-9][0-9]) |
| 74 | + api="${WM_PROJECT_VERSION#v}" |
| 75 | + major="$api" |
| 76 | + minor=0 |
| 77 | + isComValue="$api" |
| 78 | + openfoamCom="$api" |
| 79 | + ;; |
| 80 | + *) |
| 81 | + echo "Unable to infer OpenFOAM.com version from WM_PROJECT_VERSION='${WM_PROJECT_VERSION:-}'" 1>&2 |
| 82 | + echo "Expected an ESI/OpenCFD version in the form vYYMM, for example v2512." 1>&2 |
| 83 | + exit 1 |
| 84 | + ;; |
| 85 | + esac |
| 86 | + |
| 87 | + echo "OpenFOAM (com) - inferred from WM_PROJECT_VERSION=${WM_PROJECT_VERSION:-[]} as OPENFOAM_COM=$openfoamCom" 1>&2 |
| 88 | + emit_header |
62 | 89 | fi |
63 | 90 |
|
64 | 91 | exit 0 |
|
0 commit comments