2350{
2351
2352
2353
2354
2355
2356
2357
2358
2360 Dir xmlDir(outputDirectory.
str());
2362
2365
2366 DString fileName=outputDirectory+
"/compound.xsd";
2368 if (!f.is_open())
2369 {
2370 err(
"Cannot open file {} for writing!\n",fileName);
2371 return;
2372 }
2373 {
2375
2376
2378 const char *startLine = compound_xsd.
data();
2379 while (*startLine)
2380 {
2381
2382 const char *endLine = startLine+1;
2383 while (*endLine && *(endLine-1)!='\n') endLine++;
2384 int len=static_cast<int>(endLine-startLine);
2385 if (len>0)
2386 {
2388 if (s.find(
"<!-- Automatically insert here the HTML entities -->")!=
DString::npos)
2389 {
2391 }
2392 else
2393 {
2394 t.write(startLine,len);
2395 }
2396 }
2397 startLine=endLine;
2398 }
2399 }
2400 f.close();
2401
2402 fileName=outputDirectory+"/doxyfile.xsd";
2404 if (!f.is_open())
2405 {
2406 err(
"Cannot open file {} for writing!\n",fileName);
2407 return;
2408 }
2409 {
2411
2412
2414 const char *startLine = doxyfile_xsd.
data();
2415 while (*startLine)
2416 {
2417
2418 const char *endLine = startLine+1;
2419 while (*endLine && *(endLine-1)!='\n') endLine++;
2420 int len=static_cast<int>(endLine-startLine);
2421 if (len>0)
2422 {
2424 if (s.find(
"<!-- Automatically insert here the configuration settings -->")!=
DString::npos)
2425 {
2427 }
2428 else
2429 {
2430 t.write(startLine,len);
2431 }
2432 }
2433 startLine=endLine;
2434 }
2435 }
2436 f.close();
2437
2438 fileName=outputDirectory+"/Doxyfile.xml";
2440 if (!f.is_open())
2441 {
2442 err(
"Cannot open file {} for writing\n",fileName);
2443 return;
2444 }
2445 else
2446 {
2449 }
2450 f.close();
2451
2452 fileName=outputDirectory+"/index.xml";
2454 if (!f.is_open())
2455 {
2456 err(
"Cannot open file {} for writing!\n",fileName);
2457 return;
2458 }
2459 else
2460 {
2462
2463
2464 t << "<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n";
2465 t << "<doxygenindex xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
2466 t << "xsi:noNamespaceSchemaLocation=\"index.xsd\" ";
2467 t << "version=\"" << getDoxygenVersion() << "\" ";
2469 t << ">\n";
2470
2472 {
2474 }
2476 {
2477 msg(
"Generating XML output for concept {}\n",cd->displayName());
2479 }
2481 {
2482 msg(
"Generating XML output for namespace {}\n",nd->displayName());
2484 }
2486 {
2487 for (const auto &fd : *fn)
2488 {
2489 msg(
"Generating XML output for file {}\n",fd->name());
2491 }
2492 }
2494 {
2495 msg(
"Generating XML output for group {}\n",gd->name());
2497 }
2499 {
2500 msg(
"Generating XML output for page {}\n",pd->name());
2502 }
2504 {
2505 if (req->getTagFile().empty())
2506 {
2507 msg(
"Generating XML output for requirement {}\n", req->id());
2509 }
2510 }
2512 {
2513 msg(
"Generate XML output for dir {}\n",dd->name());
2515 }
2517 {
2518 msg(
"Generating XML output for module {}\n",mod->name());
2520 }
2522 {
2523 msg(
"Generating XML output for example {}\n",pd->name());
2525 }
2527 {
2528 msg(
"Generating XML output for the main page\n");
2530 }
2531
2532
2533 t << "</doxygenindex>\n";
2534 }
2535
2538}
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
const std::string & str() const
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
Class representing a directory in the file system.
static NamespaceLinkedMap * namespaceLinkedMap
static ConceptLinkedMap * conceptLinkedMap
static std::unique_ptr< PageDef > mainPage
static FileNameLinkedMap * inputNameLinkedMap
static ClassLinkedMap * classLinkedMap
static PageLinkedMap * exampleLinkedMap
static PageLinkedMap * pageLinkedMap
static DirLinkedMap * dirLinkedMap
static GroupLinkedMap * groupLinkedMap
void writeXMLSchema(TextStream &t)
static HtmlEntityMapper & instance()
Returns the one and only instance of the HTML entity mapper.
static ModuleManager & instance()
static RequirementManager & instance()
static ResourceMgr & instance()
Returns the one and only instance of this class.
bool copyResource(const DString &name, const DString &targetDir) const
Copies a registered resource to a given target directory.
DString getAsString(const DString &name) const
Gets the resource data as a C string.
Text streaming class that buffers data.
virtual DString trISOLang()=0
#define Config_getString(name)
Translator * theTranslator
void writeXMLDoxyfile(TextStream &t)
void writeXSDDoxyfile(TextStream &t)
std::ofstream openOutputStream(const DString &name, bool append=false)
void clearSubDirs(const Dir &d)
void createSubDirs(const Dir &d)
static void generateXMLForGroup(const GroupDef *gd, TextStream &ti)
static void generateXMLForClass(const ClassDef *cd, TextStream &ti)
static void generateXMLForFile(FileDef *fd, TextStream &ti)
static void generateXMLForNamespace(const NamespaceDef *nd, TextStream &ti)
static void generateXMLForRequirement(const RequirementIntf *req, TextStream &ti)
static void generateXMLForModule(const ModuleDef *mod, TextStream &ti)
static void generateXMLForConcept(const ConceptDef *cd, TextStream &ti)
static void generateXMLForDir(DirDef *dd, TextStream &ti)
static void generateXMLForPage(PageDef *pd, TextStream &ti, bool isExample)
static void writeCombineScript()