Reputation: 819
I have a huge code for which the documentation is generated with doxygen.
In my doxygen configuration file I have
INPUT = ../../src/Fibers \
../../src/SolveursContact/solverAC2
## plus some other path
RECURSIVE = YES
and the EXCLUDE
tag exclude some directories, but not those that matter for this question.
Then, when I run doxygen, I get the following warnings (not complete list)
path/to/src/Fibers/Rendering/Hair/Rendering/Scattering/model.h:4: warning: include file math.h not found, perhaps you forgot to add its directory to INCLUDE_PATH?
path/to/src/Fibers/Rendering/Hair/Rendering/Scattering/model.h:5: warning: include file iostream not found, perhaps you forgot to add its directory to INCLUDE_PATH?
path/to/src/Fibers/Simulation/Configuration.hpp:205: warning: include file ConfigurationParams.def.h not found, perhaps you forgot to add its directory to INCLUDE_PATH?
path/to/src/Fibers/Simulation/SolverManager.cpp:315: warning: include file AC2MecheSolvers.def.h not found, perhaps you forgot to add its directory to INCLUDE_PATH?
(My path are quite long but they are all correct.)
First point is I am obviously not expecting doxygen to include any documentation for math.h
or iostream
and some other files include iostream
without this warning. So why do I have this warning here?
Second point, my files ConfigurationParams.def.h
and AC2MecheSolvers.def.h
are actually found at some point by doxygen since I have checked the html documentation page for each of them. So why are they not linked here?
Path for my problem files are
path/to/src/SolveursContact/solverAC2/src/AC2MecheSolvers.def.h
path/to/src/Fibers/Parameters/ConfigurationParams.def.h
model.h
1 #ifndef MODEL_MECHE_H
2 #define MODEL_MECHE_H
3
4 #include <math.h>
5 #include <iostream>
Configuration.hpp
200 #define EXPAND_CONF_PRMWO(n, t, d) \
201 t n ;
202 #define EXPAND_CONF_PARAM(n, t, I, d) \
203 t n ;\
204 t n##SI ;
205 #include "ConfigurationParams.def.h"
SolverManager.cpp
310 #ifdef SOLVER_AC2
311 #define EXPAND_MECHE_SOLVER(n, g, l) \
312 case Configuration::SOLVER_FUNC_##g##_##l : \
313 res = ac2Solver->solve(g, (LocalSolver) l) ; \
314 break ;
315 #include "AC2MecheSolvers.def.h"
EDIT: Doxygen version is 1.8.11.
Upvotes: 0
Views: 2281
Reputation: 11405
I've had this problem (with doxygen 1.8.14) when the standard header was included from inside a namespace:
namespace ns {
#include <iostream>
// more stuff
}
This can also happen indirectly:
// header file
#include <iostream>
// implementation file
namespace ns {
#include "header.h"
// more stuff
}
The solution is then of course to include standard headers outside any namespaces.
Upvotes: 1