View Issue Details

IDProjectCategoryView StatusLast Update
0003070OpenFOAMBugpublic2018-09-14 00:05
Reporterguin Assigned Tohenry  
PrioritylowSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformGNU/LinuxOSUbuntuOS Version16.04
Summary0003070: Wrong linking being used by "-doc" & "-srcDoc" options
DescriptionRelated to the recent issue https://bugs.openfoam.org/view.php?id=3067 :

While commit 9668a8ca7bbc2426dbb3cc8555c3249bf05fe0c5 solves the versioning problem, commits a9be0f471a07b49f470b1b564abcdee223b52cb7 (v6) & 0dfcae6a26d992b18ec91a5347558bb20f62f955 (dev) only solved partially the clashing issue, namely just for the application "blockMesh".

However, "blockMesh" was not the only affected application. Indeed, after a quick research I have found following applications showing the same link-inconsistency:
 
Summary of Doxygen wrong-linked applications found at /opt/openfoam6/applications/:
    /opt/openfoam6/applications/utilities/mesh/advanced/removeFaces/removeFaces.C
    /opt/openfoam6/applications/utilities/mesh/manipulation/topoSet/topoSet.C
    /opt/openfoam6/applications/utilities/mesh/manipulation/polyDualMesh/polyDualMesh.C
    /opt/openfoam6/applications/utilities/mesh/generation/blockMesh/blockMesh.C
    /opt/openfoam6/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
    /opt/openfoam6/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
    /opt/openfoam6/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
    /opt/openfoam6/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
    /opt/openfoam6/applications/utilities/preProcessing/foamSetupCHT/foamSetupCHT.C

From them, I guess that removeFaces, topoSet & polyDualMesh can be repaired in the same way as recently done for blockMesh. Namely adding to the EXCLUDE list at Doxyfile:
$(WM_PROJECT_DIR)/src/dynamicMesh/polyTopoChange/polyTopoChange/removeFaces.C
$(WM_PROJECT_DIR)/src/meshTools/sets/topoSets/topoSet.C
$(WM_PROJECT_DIR)/src/conversion/polyDualMesh/polyDualMesh.C

I don't know what to suggest regarding the *.L files. To be honest, I don't even know what they are, though they share the header stating "C++".
They show no matches, even for a manual search, at https://cpp.openfoam.org/dev/ and I am not sure that Doxygen would be able to generate any useful documentation from them (please, correct me otherwise!)

foamSetupCHT does not show any match either from at https://cpp.openfoam.org/dev/ which is strange. In principle I see no reason why foamSetupCHT cannot get processed by Doxygen similarly as the other applications...
Steps To Reproduce<application> -doc
OR
<application> -srcDoc

try it by taking any application from list above:
Additional InformationI attach the script used to obtain the list above. In case anyone wants to repeat the steps:

Important: I temporarily replaced the default browser by linkchecker (apt install linkchecker) in order to automate the link check process.

1. Edit the $HOME/.OpenFOAM/controlDict to contain:
Documentation
{
    docBrowser linkchecker --check-extern --recursion-level=0;
}

2. Make appropriate changes in WM_PROJECT_DIR & DIRECTORY (if needed)

3. ~$ ./chekDoxyLinks.sh > log.txt
TagsNo tags attached.

Activities

guin

2018-09-06 16:19

reporter  

checkDoxyLinks.sh (2,885 bytes)   
#!/bin/bash

# Find and check links to Doxygen pages for all applications within a given directory

WM_PROJECT_DIR="/opt/openfoam6"

source "$WM_PROJECT_DIR/etc/bashrc"


# Temporary replace the default browser to avoid overloading the system
#     CONTROLDICT=$HOME/.OpenFOAM/controlDict
#
#     BROWSER=""
#
#     # TODO: Strings containing double-dashes seem not really welcome in Bash...
#     if [ -f $CONTROLDICT ]; then
#         BROWSER=$(foamDictionary -entry "Documentation.docBrowser" -value $CONTROLDICT)
#         foamDictionary -entry "Documentation.docBrowser" -set "linkchecker --check-extern --recursion-level=0" $CONTROLDICT
#
#     else
#         echo "Documentation{docBrowser linkchecker --check-extern --recursion-level=0;}" >> $CONTROLDICT
#     fi
#

DIRECTORY=$WM_PROJECT_DIR/applications/

REGEXP="EXE = \$(FOAM_APPBIN)/"

REGEXP_URL="Real URL"

FILELIST=$(find $DIRECTORY -name "files")
declare -p FILELIST > /dev/null 2>&1

APPLIST=()

E404LIST=()

for FILE in ${FILELIST[@]}; do
    APPLIST+=($(grep "$REGEXP" $FILE | sed "s|$REGEXP||"))
done

declare -p APPLIST > /dev/null 2>&1

echo "Found applications at $DIRECTORY:"
for APPLICATION in ${APPLIST[@]}; do

    # NOTE: Following applications are not compiled
    if [ $APPLICATION == "foamyHexMeshBackgroundMesh" ]; then
        continue;
    elif [ $APPLICATION == "foamyHexMeshSurfaceSimplify" ]; then
        continue;
    elif [ $APPLICATION == "cellSizeAndAlignmentGrid" ]; then
        continue;
    elif [ $APPLICATION == "ccm26ToFoam" ]; then
        continue;
    elif [ $APPLICATION == "foamToTecplot360" ]; then
        continue;
    fi

    echo "  $APPLICATION:"
    ERROR=0

    # Check for failures with "-doc" option
    DOC_MESSAGE=$($APPLICATION -doc | grep "Result")
    DOC_URL=$($APPLICATION -doc | grep "$REGEXP_URL")

    if [[ $DOC_MESSAGE = *"404"* ]]; then
        ERROR=1
        echo "    ERROR: doc-page address not found for application $APPLICATION at $DOC_URL"
     else
         echo "    -doc OK"
    fi

    # Check for failures with "-srcDoc" option
    SRCDOC_MESSAGE=$($APPLICATION -srcDoc | grep "Result")
    SRCDOC_URL=$($APPLICATION -srcDoc | grep "$REGEXP_URL")

    if [[ $SRCDOC_MESSAGE = *"404"* ]]; then
        ERROR=1
        echo "    ERROR: srcDoc-page address not found for application $APPLICATION at $SRCDOC_URL"
     else
         echo "    -srcDoc OK"
    fi

    if [ $ERROR != 0 ]; then
        E404LIST+=($(find $DIRECTORY -type f -name "$APPLICATION.*"))
    fi

done

declare -p E404LIST > /dev/null 2>&1

echo "Summary of Doxygen wrong-linked applications:"
for DOXYFAIL in ${E404LIST[@]}; do
    echo "    $DOXYFAIL"
done

# Restore default browser
# if [ "$BROWSER" != "" ]; then
#     foamDictionary -entry "Documentation.docBrowser" -set "$BROWSER" $CONTROLDICT
# else
#     foamDictionary -entry Documentation -remove $CONTROLDICT
# fi
checkDoxyLinks.sh (2,885 bytes)   

guin

2018-09-06 16:20

reporter   ~0010044

Sorry for repeating the text in the title.

guin

2018-09-06 16:27

reporter   ~0010046

TYPO CORRECTION:
 (note the double quotes)

Documentation
{
    docBrowser "linkchecker --check-extern --recursion-level=0";
}

guin

2018-09-06 16:35

reporter   ~0010047

The extended search results (in case anyone is interested)
log.txt (13,266 bytes)   
Found applications at /opt/openfoam6/applications/:
  financialFoam:
    -doc OK
    -srcDoc OK
  scalarTransportFoam:
    -doc OK
    -srcDoc OK
  potentialFoam:
    -doc OK
    -srcDoc OK
  laplacianFoam:
    -doc OK
    -srcDoc OK
  shallowWaterFoam:
    -doc OK
    -srcDoc OK
  SRFPimpleFoam:
    -doc OK
    -srcDoc OK
  pimpleFoam:
    -doc OK
    -srcDoc OK
  porousSimpleFoam:
    -doc OK
    -srcDoc OK
  simpleFoam:
    -doc OK
    -srcDoc OK
  SRFSimpleFoam:
    -doc OK
    -srcDoc OK
  adjointShapeOptimizationFoam:
    -doc OK
    -srcDoc OK
  pisoFoam:
    -doc OK
    -srcDoc OK
  nonNewtonianIcoFoam:
    -doc OK
    -srcDoc OK
  icoFoam:
    -doc OK
    -srcDoc OK
  boundaryFoam:
    -doc OK
    -srcDoc OK
  fireFoam:
    -doc OK
    -srcDoc OK
  XiFoam:
    -doc OK
    -srcDoc OK
  XiEngineFoam:
    -doc OK
    -srcDoc OK
  chemFoam:
    -doc OK
    -srcDoc OK
  rhoReactingFoam:
    -doc OK
    -srcDoc OK
  rhoReactingBuoyantFoam:
    -doc OK
    -srcDoc OK
  reactingFoam:
    -doc OK
    -srcDoc OK
  coldEngineFoam:
    -doc OK
    -srcDoc OK
  PDRFoam:
    -doc OK
    -srcDoc OK
  rhoCentralDyMFoam:
    -doc OK
    -srcDoc OK
  rhoCentralFoam:
    -doc OK
    -srcDoc OK
  rhoSimpleFoam:
    -doc OK
    -srcDoc OK
  rhoPorousSimpleFoam:
    -doc OK
    -srcDoc OK
  sonicDyMFoam:
    -doc OK
    -srcDoc OK
  sonicLiquidFoam:
    -doc OK
    -srcDoc OK
  sonicFoam:
    -doc OK
    -srcDoc OK
  rhoPimpleFoam:
    -doc OK
    -srcDoc OK
  dnsFoam:
    -doc OK
    -srcDoc OK
  buoyantBoussinesqPimpleFoam:
    -doc OK
    -srcDoc OK
  thermoFoam:
    -doc OK
    -srcDoc OK
  buoyantSimpleFoam:
    -doc OK
    -srcDoc OK
  chtMultiRegionFoam:
    -doc OK
    -srcDoc OK
  buoyantPimpleFoam:
    -doc OK
    -srcDoc OK
  buoyantBoussinesqSimpleFoam:
    -doc OK
    -srcDoc OK
  cavitatingFoam:
    -doc OK
    -srcDoc OK
  cavitatingDyMFoam:
    -doc OK
    -srcDoc OK
  compressibleMultiphaseInterFoam:
    -doc OK
    -srcDoc OK
  driftFluxFoam:
    -doc OK
    -srcDoc OK
  twoPhaseEulerFoam:
    -doc OK
    -srcDoc OK
  interMixingFoam:
    -doc OK
    -srcDoc OK
  interFoam:
    -doc OK
    -srcDoc OK
  interPhaseChangeDyMFoam:
    -doc OK
    -srcDoc OK
  interPhaseChangeFoam:
    -doc OK
    -srcDoc OK
  compressibleInterFilmFoam:
    -doc OK
    -srcDoc OK
  compressibleInterFoam:
    -doc OK
    -srcDoc OK
  compressibleInterDyMFoam:
    -doc OK
    -srcDoc OK
  multiphaseInterFoam:
    -doc OK
    -srcDoc OK
  twoLiquidMixingFoam:
    -doc OK
    -srcDoc OK
  potentialFreeSurfaceFoam:
    -doc OK
    -srcDoc OK
  potentialFreeSurfaceDyMFoam:
    -doc OK
    -srcDoc OK
  reactingTwoPhaseEulerFoam:
    -doc OK
    -srcDoc OK
  reactingMultiphaseEulerFoam:
    -doc OK
    -srcDoc OK
  multiphaseEulerFoam:
    -doc OK
    -srcDoc OK
  MPPICFoam:
    -doc OK
    -srcDoc OK
  DPMFoam:
    -doc OK
    -srcDoc OK
  MPPICDyMFoam:
    -doc OK
    -srcDoc OK
  DPMDyMFoam:
    -doc OK
    -srcDoc OK
  sprayDyMFoam:
    -doc OK
    -srcDoc OK
  engineFoam:
    -doc OK
    -srcDoc OK
  sprayFoam:
    -doc OK
    -srcDoc OK
  uncoupledKinematicParcelDyMFoam:
    -doc OK
    -srcDoc OK
  uncoupledKinematicParcelFoam:
    -doc OK
    -srcDoc OK
  coalChemistryFoam:
    -doc OK
    -srcDoc OK
  simpleReactingParcelFoam:
    -doc OK
    -srcDoc OK
  reactingParcelFoam:
    -doc OK
    -srcDoc OK
  icoUncoupledKinematicParcelDyMFoam:
    -doc OK
    -srcDoc OK
  icoUncoupledKinematicParcelFoam:
    -doc OK
    -srcDoc OK
  mhdFoam:
    -doc OK
    -srcDoc OK
  magneticFoam:
    -doc OK
    -srcDoc OK
  electrostaticFoam:
    -doc OK
    -srcDoc OK
  solidDisplacementFoam:
    -doc OK
    -srcDoc OK
  solidEquilibriumDisplacementFoam:
    -doc OK
    -srcDoc OK
  dsmcFoam:
    -doc OK
    -srcDoc OK
  mdFoam:
    -doc OK
    -srcDoc OK
  mdEquilibrationFoam:
    -doc OK
    -srcDoc OK
  surfaceOrient:
    -doc OK
    -srcDoc OK
  surfaceSplitByTopology:
    -doc OK
    -srcDoc OK
  surfaceSubset:
    -doc OK
    -srcDoc OK
  surfaceSplitByPatch:
    -doc OK
    -srcDoc OK
  surfaceLambdaMuSmooth:
    -doc OK
    -srcDoc OK
  surfaceToPatch:
    -doc OK
    -srcDoc OK
  surfaceAdd:
    -doc OK
    -srcDoc OK
  surfacePointMerge:
    -doc OK
    -srcDoc OK
  surfaceMeshConvertTesting:
    -doc OK
    -srcDoc OK
  surfaceRefineRedGreen:
    -doc OK
    -srcDoc OK
  surfaceFeatures:
    -doc OK
    -srcDoc OK
  surfaceCheck:
    -doc OK
    -srcDoc OK
  surfaceAutoPatch:
    -doc OK
    -srcDoc OK
  surfaceFeatureExtract:
    -doc OK
    -srcDoc OK
  surfaceBooleanFeatures:
    -doc OK
    -srcDoc OK
  surfaceSplitNonManifolds:
    -doc OK
    -srcDoc OK
  surfaceMeshTriangulate:
    -doc OK
    -srcDoc OK
  surfaceMeshConvert:
    -doc OK
    -srcDoc OK
  surfaceRedistributePar:
    -doc OK
    -srcDoc OK
  surfaceFeatureConvert:
    -doc OK
    -srcDoc OK
  surfaceConvert:
    -doc OK
    -srcDoc OK
  surfaceMeshInfo:
    -doc OK
    -srcDoc OK
  surfaceInertia:
    -doc OK
    -srcDoc OK
  surfaceFind:
    -doc OK
    -srcDoc OK
  surfaceHookUp:
    -doc OK
    -srcDoc OK
  surfaceMeshExport:
    -doc OK
    -srcDoc OK
  surfaceCoarsen:
    -doc OK
    -srcDoc OK
  surfaceMeshImport:
    -doc OK
    -srcDoc OK
  surfaceClean:
    -doc OK
    -srcDoc OK
  surfaceTransformPoints:
    -doc OK
    -srcDoc OK
  foamDictionary:
    -doc OK
    -srcDoc OK
  patchSummary:
    -doc OK
    -srcDoc OK
  foamListTimes:
    -doc OK
    -srcDoc OK
  foamFormatConvert:
    -doc OK
    -srcDoc OK
  PDRMesh:
    -doc OK
    -srcDoc OK
  selectCells:
    -doc OK
    -srcDoc OK
  refineHexMesh:
    -doc OK
    -srcDoc OK
  splitCells:
    -doc OK
    -srcDoc OK
  refineWallLayer:
    -doc OK
    -srcDoc OK
  collapseEdges:
    -doc OK
    -srcDoc OK
  refinementLevel:
    -doc OK
    -srcDoc OK
  autoRefineMesh:
    -doc OK
    -srcDoc OK
  removeFaces:
    ERROR: doc-page address not found for application removeFaces at Real URL   https://cpp.openfoam.org/dev/removeFaces_8C.html
    ERROR: srcDoc-page address not found for application removeFaces at Real URL   https://cpp.openfoam.org/dev/removeFaces_8C_source.html
  combinePatchFaces:
    -doc OK
    -srcDoc OK
  modifyMesh:
    -doc OK
    -srcDoc OK
  mergeMeshes:
    -doc OK
    -srcDoc OK
  refineMesh:
    -doc OK
    -srcDoc OK
  renumberMesh:
    -doc OK
    -srcDoc OK
  orientFaceZone:
    -doc OK
    -srcDoc OK
  subsetMesh:
    -doc OK
    -srcDoc OK
  checkMesh:
    -doc OK
    -srcDoc OK
  setsToZones:
    -doc OK
    -srcDoc OK
  deformedGeom:
    -doc OK
    -srcDoc OK
  topoSet:
    ERROR: doc-page address not found for application topoSet at Real URL   https://cpp.openfoam.org/dev/topoSet_8C.html
    ERROR: srcDoc-page address not found for application topoSet at Real URL   https://cpp.openfoam.org/dev/topoSet_8C_source.html
  autoPatch:
    -doc OK
    -srcDoc OK
  attachMesh:
    -doc OK
    -srcDoc OK
  createBaffles:
    -doc OK
    -srcDoc OK
  zipUpMesh:
    -doc OK
    -srcDoc OK
  mirrorMesh:
    -doc OK
    -srcDoc OK
  singleCellMesh:
    -doc OK
    -srcDoc OK
  moveDynamicMesh:
    -doc OK
    -srcDoc OK
  objToVTK:
    -doc OK
    -srcDoc OK
  splitMesh:
    -doc OK
    -srcDoc OK
  flattenMesh:
    -doc OK
    -srcDoc OK
  stitchMesh:
    -doc OK
    -srcDoc OK
  moveEngineMesh:
    -doc OK
    -srcDoc OK
  splitMeshRegions:
    -doc OK
    -srcDoc OK
  polyDualMesh:
    ERROR: doc-page address not found for application polyDualMesh at Real URL   https://cpp.openfoam.org/dev/polyDualMesh_8C.html
    ERROR: srcDoc-page address not found for application polyDualMesh at Real URL   https://cpp.openfoam.org/dev/polyDualMesh_8C_source.html
  createPatch:
    -doc OK
    -srcDoc OK
  moveMesh:
    -doc OK
    -srcDoc OK
  setSet:
    -doc OK
    -srcDoc OK
  transformPoints:
    -doc OK
    -srcDoc OK
  rotateMesh:
    -doc OK
    -srcDoc OK
  insideCells:
    -doc OK
    -srcDoc OK
  mergeOrSplitBaffles:
    -doc OK
    -srcDoc OK
  snappyHexMesh:
    -doc OK
    -srcDoc OK
  extrudeToRegionMesh:
    -doc OK
    -srcDoc OK
  extrudeMesh:
    -doc OK
    -srcDoc OK
  extrude2DMesh:
    -doc OK
    -srcDoc OK
  foamyHexMesh:
    -doc OK
    -srcDoc OK
  foamyQuadMesh:
    -doc OK
    -srcDoc OK
  blockMesh:
    ERROR: doc-page address not found for application blockMesh at Real URL   https://cpp.openfoam.org/dev/blockMesh_8C.html
    ERROR: srcDoc-page address not found for application blockMesh at Real URL   https://cpp.openfoam.org/dev/blockMesh_8C_source.html
  foamToStarMesh:
    -doc OK
    -srcDoc OK
  netgenNeutralToFoam:
    -doc OK
    -srcDoc OK
  foamToSurface:
    -doc OK
    -srcDoc OK
  sammToFoam:
    -doc OK
    -srcDoc OK
  datToFoam:
    -doc OK
    -srcDoc OK
  plot3dToFoam:
    -doc OK
    -srcDoc OK
  kivaToFoam:
    -doc OK
    -srcDoc OK
  gambitToFoam:
    ERROR: doc-page address not found for application gambitToFoam at Real URL   https://cpp.openfoam.org/dev/gambitToFoam_8C.html
    ERROR: srcDoc-page address not found for application gambitToFoam at Real URL   https://cpp.openfoam.org/dev/gambitToFoam_8C_source.html
  star3ToFoam:
    -doc OK
    -srcDoc OK
  foamMeshToFluent:
    -doc OK
    -srcDoc OK
  cfx4ToFoam:
    -doc OK
    -srcDoc OK
  fluentMeshToFoam:
    ERROR: doc-page address not found for application fluentMeshToFoam at Real URL   https://cpp.openfoam.org/dev/fluentMeshToFoam_8C.html
    ERROR: srcDoc-page address not found for application fluentMeshToFoam at Real URL   https://cpp.openfoam.org/dev/fluentMeshToFoam_8C_source.html
  ideasUnvToFoam:
    -doc OK
    -srcDoc OK
  ansysToFoam:
    ERROR: doc-page address not found for application ansysToFoam at Real URL   https://cpp.openfoam.org/dev/ansysToFoam_8C.html
    ERROR: srcDoc-page address not found for application ansysToFoam at Real URL   https://cpp.openfoam.org/dev/ansysToFoam_8C_source.html
  star4ToFoam:
    -doc OK
    -srcDoc OK
  vtkUnstructuredToFoam:
    -doc OK
    -srcDoc OK
  mshToFoam:
    -doc OK
    -srcDoc OK
  writeMeshObj:
    -doc OK
    -srcDoc OK
  fluent3DMeshToFoam:
    ERROR: doc-page address not found for application fluent3DMeshToFoam at Real URL   https://cpp.openfoam.org/dev/fluent3DMeshToFoam_8C.html
    ERROR: srcDoc-page address not found for application fluent3DMeshToFoam at Real URL   https://cpp.openfoam.org/dev/fluent3DMeshToFoam_8C_source.html
  tetgenToFoam:
    -doc OK
    -srcDoc OK
  gmshToFoam:
    -doc OK
    -srcDoc OK
  reconstructParMesh:
    -doc OK
    -srcDoc OK
  reconstructPar:
    -doc OK
    -srcDoc OK
  decomposePar:
    -doc OK
    -srcDoc OK
  redistributePar:
    -doc OK
    -srcDoc OK
  wallFunctionTable:
    -doc OK
    -srcDoc OK
  foamSetupCHT:
    ERROR: doc-page address not found for application foamSetupCHT at Real URL   https://cpp.openfoam.org/dev/foamSetupCHT_8C.html
    ERROR: srcDoc-page address not found for application foamSetupCHT at Real URL   https://cpp.openfoam.org/dev/foamSetupCHT_8C_source.html
  mdInitialise:
    -doc OK
    -srcDoc OK
  mapFields:
    -doc OK
    -srcDoc OK
  applyBoundaryLayer:
    -doc OK
    -srcDoc OK
  viewFactorsGen:
    -doc OK
    -srcDoc OK
  changeDictionary:
    -doc OK
    -srcDoc OK
  faceAgglomerate:
    -doc OK
    -srcDoc OK
  boxTurb:
    -doc OK
    -srcDoc OK
  setFields:
    -doc OK
    -srcDoc OK
  mapFieldsPar:
    -doc OK
    -srcDoc OK
  setWaves:
    -doc OK
    -srcDoc OK
  dsmcInitialise:
    -doc OK
    -srcDoc OK
  engineSwirl:
    -doc OK
    -srcDoc OK
  createExternalCoupledPatchGeometry:
    -doc OK
    -srcDoc OK
  foamUpgradeCyclics:
    -doc OK
    -srcDoc OK
  equilibriumCO:
    -doc OK
    -srcDoc OK
  mixtureAdiabaticFlameT:
    -doc OK
    -srcDoc OK
  adiabaticFlameT:
    -doc OK
    -srcDoc OK
  chemkinToFoam:
    -doc OK
    -srcDoc OK
  equilibriumFlameT:
    -doc OK
    -srcDoc OK
  pdfPlot:
    -doc OK
    -srcDoc OK
  postChannel:
    -doc OK
    -srcDoc OK
  engineCompRatio:
    -doc OK
    -srcDoc OK
  temporalInterpolate:
    -doc OK
    -srcDoc OK
  postProcess:
    -doc OK
    -srcDoc OK
  noise:
    -doc OK
    -srcDoc OK
  steadyParticleTracks:
    -doc OK
    -srcDoc OK
  particleTracks:
    -doc OK
    -srcDoc OK
  foamToEnsight:
    -doc OK
    -srcDoc OK
  foamToGMV:
    -doc OK
    -srcDoc OK
  smapToFoam:
    -doc OK
    -srcDoc OK
  foamToEnsightParts:
    -doc OK
    -srcDoc OK
  foamToVTK:
    -doc OK
    -srcDoc OK
  foamDataToFluent:
    -doc OK
    -srcDoc OK
  foamToTetDualMesh:
    -doc OK
    -srcDoc OK
Summary of Doxygen wrong-linked applications:
    /opt/openfoam6/applications/utilities/mesh/advanced/removeFaces/removeFaces.C
    /opt/openfoam6/applications/utilities/mesh/manipulation/topoSet/topoSet.C
    /opt/openfoam6/applications/utilities/mesh/manipulation/polyDualMesh/polyDualMesh.C
    /opt/openfoam6/applications/utilities/mesh/generation/blockMesh/blockMesh.C
    /opt/openfoam6/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
    /opt/openfoam6/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
    /opt/openfoam6/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
    /opt/openfoam6/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
    /opt/openfoam6/applications/utilities/preProcessing/foamSetupCHT/foamSetupCHT.C
log.txt (13,266 bytes)   

henry

2018-09-06 16:46

manager   ~0010048

I am adding

$(WM_PROJECT_DIR)/src/dynamicMesh/polyTopoChange/polyTopoChange/removeFaces.C
$(WM_PROJECT_DIR)/src/meshTools/sets/topoSets/topoSet.C
$(WM_PROJECT_DIR)/src/conversion/polyDualMesh/polyDualMesh.C

to the exclude list know but it is not clear what other changes you would like made.

guin

2018-09-06 17:01

reporter   ~0010050

Let me first compile a local installation. I need to play a bit with Doxygen to figure out how it deals with the *.L files and why foamSetupCHT is not documented.
In the meantime you can close this issue after making the relevant commits for removeFaces, topoSet & polyDualMesh if you want (but not as solved, please).

henry

2018-09-06 17:22

manager   ~0010051

foamSetupCHT -doc works fine for me (at least in OpenFOAM-dev), what do you get?

henry

2018-09-06 17:26

manager   ~0010052

To process the .L files I am trying

FILE_PATTERNS = *.H \
                         *.C \
                         *.L

guin

2018-09-06 17:42

reporter   ~0010053

Either from OpenFOAM-6 or from OpenFOAM-dev I get:
foamSetupCHT -doc tries to open https://cpp.openfoam.org/dev/foamSetupCHT_8C.html (at the time of writing this it is a broken link)

~$ apt install -s openfoam6
[...]
openfoam6 is already the newest version (20180805).

~$ apt install -s openfoam-dev
[...]
openfoam-dev is already the newest version (20180902).

henry

2018-09-06 17:53

manager   ~0010054

You will need to generate the Doxygen files locally to test these changes.

henry

2018-09-06 18:30

manager   ~0010055

Resolved in OpenFOAM-dev by commit 490a29719073e7248d57a9542fc64f7cf63946ef
Resolved in OpenFOAM-6 by commit 199f87f32769a831839878c3e4b749f93ddc28d0

guin

2018-09-07 13:56

reporter   ~0010057

I can confirm that last patches solved the clash conflicts and allow Doxygen to process the files with *.L extension. Furthermore, the documentation of "foamSetupCHT" has been correclty generated (locally).

I don't know how often the documentation at https://cpp.openfoam.org/dev/ gets updated, but I presume that https://cpp.openfoam.org/dev/foamSetupCHT_8C.html will be accessible from the next rebuild.

However, the handling of the files with the *.L extension keeps showing problems. Let's take "gambitToFoam" for the example (although the same it applicable to the other ones):

Doxygen processed these files and finally generated their corresponding html-pages $WM_PROJECT_DIR/doc/Doxygen/html/gambitToFoam_8L.html & $WM_PROJECT_DIR/doc/Doxygen/html/gambitToFoam_8L_source.html (note the string "8L" within their names).

The 1st file is an undocumented Doxygen page offering a link to the source code and the 2nd one, while containing the source code, does not allow any kind of interaction with it (plain text). I guess that Doxygen doesn't know how to deal with this kind of files...(?)

When calling gambitToFoam witht the -doc of the -srcDoc flags the browser tries to open similar links but containing the string "8C" in the place of "8L". This is nothing surprising, because we are passing such name extension hardcoded in the Documentation dictionary (see https://github.com/OpenFOAM/OpenFOAM-dev/blob/490a29719073e7248d57a9542fc64f7cf63946ef/etc/controlDict#L29).

At this point a decission is needed:

OPTION A) Repairing their documentation-linking. I think that this would require EITHER changes in argList class (which is used by practically every executable) OR making an specialized variant of it (just for these 4 applications). In any case, the less invasive option for the rest of the code I've found consists on adding a dummy option to these applications, so that argList class can become aware of it. I am attaching here the changes, although it would be an unmaintainable option.

OPTION B) Why not simply disabling the -doc / -srcDoc functionality for these 4 applications? I would go for this, but unfortunately neither argList::removeOption("doc") nor argList::removeOption("srcDoc") seem to have any effect...

Any other funded idea?
patch.txt (3,153 bytes)   
diff --git a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
index 427e328..e417767 100644
--- a/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
+++ b/applications/utilities/mesh/conversion/ansysToFoam/ansysToFoam.L
@@ -295,6 +295,7 @@ label findFace(const polyMesh& mesh, const face& f)

 int main(int argc, char *argv[])
 {
+    argList::addBoolOption("LFileExt","dummy option to allow showing Doxygen documentation");
     argList::noParallel();
     argList::validArgs.append("ANSYS input file");
     argList::addOption
diff --git a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
index 8b10f8c..2403c7b 100644
--- a/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
+++ b/applications/utilities/mesh/conversion/fluent3DMeshToFoam/fluent3DMeshToFoam.L
@@ -766,6 +766,7 @@ endOfSection               {space}")"{space}

 int main(int argc, char *argv[])
 {
+    argList::addBoolOption("LFileExt","dummy option to allow showing Doxygen documentation");
     argList::noParallel();
     argList::validArgs.append("Fluent mesh file");
     argList::addOption
diff --git a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
index 43252ac..0151b5d 100644
--- a/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
+++ b/applications/utilities/mesh/conversion/fluentMeshToFoam/fluentMeshToFoam.L
@@ -863,6 +863,7 @@ label findFace(const primitiveMesh& mesh, const face& f)

 int main(int argc, char *argv[])
 {
+    argList::addBoolOption("LFileExt","dummy option to allow showing Doxygen documentation");
     argList::noParallel();
     argList::validArgs.append("Fluent mesh file");
     argList::addOption
diff --git a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
index 2f28d16..cd3f890 100644
--- a/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
+++ b/applications/utilities/mesh/conversion/gambitToFoam/gambitToFoam.L
@@ -623,6 +623,7 @@ using std::ifstream;

 int main(int argc, char *argv[])
 {
+    argList::addBoolOption("LFileExt","dummy option to allow showing Doxygen documentation");
     argList::noParallel();
     argList::validArgs.append("GAMBIT file");
     argList::addOption
diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C
index c8028b1..82fad40 100644
--- a/src/OpenFOAM/global/argList/argList.C
+++ b/src/OpenFOAM/global/argList/argList.C
@@ -1270,6 +1270,11 @@ void Foam::argList::displayDoc(bool source) const
     List<fileName> docDirs(docDict.lookup("doxyDocDirs"));
     fileName docExt(docDict.lookup("doxySourceFileExt"));

+    if (validOptions.found("LFileExt"))
+    {
+        docExt.replace("C","L");
+    }
+
     // For source code: change foo_8C.html to foo_8C_source.html
     if (source)
     {
patch.txt (3,153 bytes)   

guin

2018-09-07 13:59

reporter   ~0010058

For the 2nd option I would also suggest to remove back the "*.L" from the FILE_PATTERNS recently added to Doxyfile.

henry

2018-09-07 15:18

manager   ~0010059

Resolved in OpenFOAM-6 by commit d2c4174c4c5f45649d422056c56976a649607006
Resolved in OpenFOAM-dev by commit 26478060e0498cf98dd9080da3c4fe9dc3ac4912

Issue History

Date Modified Username Field Change
2018-09-06 16:19 guin New Issue
2018-09-06 16:19 guin File Added: checkDoxyLinks.sh
2018-09-06 16:20 guin Note Added: 0010044
2018-09-06 16:27 guin Note Added: 0010046
2018-09-06 16:35 guin File Added: log.txt
2018-09-06 16:35 guin Note Added: 0010047
2018-09-06 16:46 henry Note Added: 0010048
2018-09-06 17:01 guin Note Added: 0010050
2018-09-06 17:22 henry Note Added: 0010051
2018-09-06 17:26 henry Note Added: 0010052
2018-09-06 17:42 guin Note Added: 0010053
2018-09-06 17:53 henry Note Added: 0010054
2018-09-06 18:30 henry Note Added: 0010055
2018-09-07 13:56 guin File Added: patch.txt
2018-09-07 13:56 guin Note Added: 0010057
2018-09-07 13:59 guin Note Added: 0010058
2018-09-07 15:18 henry Note Added: 0010059
2018-09-14 00:05 henry Assigned To => henry
2018-09-14 00:05 henry Status new => resolved
2018-09-14 00:05 henry Resolution open => fixed
2018-09-14 00:05 henry Fixed in Version => 6