24 Lox_Info(
"Reading doxygen ini file: ", filePath )
26 std::ifstream ifstream;
29 if ( !ifstream.is_open() || errno ) {
52 bool tmpCreateSubDirs=
false;
54 auto finalizeLogicalLine = [&](
Substring logical) {
56 bool inQuotes =
false;
58 for (
int i = 0; i < logical.Length(); ++i) {
59 nchar c = logical.CharAt(i);
60 if (c ==
'"') inQuotes = !inQuotes;
61 if (c ==
'#' && !inQuotes) { cutPos = i;
break; }
64 logical = logical.Substring(0, cutPos);
66 if (logical.IsEmpty())
70 integer eqPos = logical.IndexOf(
'=');
71 if (eqPos < 0)
return;
78 if (s.Length() >= 2 && s.CharAtStart() ==
'"' && s.CharAtEnd() ==
'"') {
81 s = s.Substring(0, s.Length()-1);
85 auto addListTokensStr = [&](
Substring src,
124 if (key.
Equals(
"OUTPUT_DIRECTORY")) {
126 tmpOutputDirectory = val;
128 else if (key.
Equals(
"HTML_OUTPUT")) {
134 else if (key.
Equals(
"CREATE_SUBDIRS")) { tmpCreateSubDirs = val.
Equals<
CHK,lang::Case::Ignore>(
"YES"); }
141 else if (key.
Equals(
"FILE_PATTERNS")) {
149 else if (key.
Equals(
"TAGFILES")) {
188 else if (key.
Equals(
"GENERATE_TAGFILE")) {
195 while( !reader.
IsEOF() ) {
196 reader.
Read(lineBuf);
215 finalizeLogicalLine(logical);
219 if (tmpTagFilePath.
IsEmpty()) {
239 if (!tmpCreateSubDirs)
245 p->Add(
"Dumping contents of doxyfile");
253 p->Add(
"{} {!ATab} {}\n", it.TagFilePath,
"->", it.BaseURL);
257 p->Add(
"InputPaths:");
265 p->Add(
"FilePatterns: " );
270 p->Add(
"ExcludePaths:");
278 p->Add(
"ExcludePatterns:");
#define ALIB_CALLER_NULLED
#define Lox_SetDomain(...)
constexpr const TChar * Terminate() const
void DbgDisableBufferReplacementWarning()
void SetLength(integer newLength)
constexpr integer Length() const
constexpr bool IsEmpty() const
TChar CharAtStart() const
constexpr bool IsNotNull() const
constexpr bool IsNotEmpty() const
integer IndexOf(const TString &needle, integer startIdx=0, integer endIdx=strings::MAX_LEN) const
TString< TChar > Substring(integer regionStart, integer regionLength=MAX_LEN) const
bool Equals(const TString< TChar > &rhs) const
TSubstring & TrimStart(const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces())
integer ConsumeChars(integer regionLength, TAString< TChar, TAllocator > &target, integer separatorWidth=0)
bool ConsumeDec(std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr)
TSubstring & Trim(const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces())
TString< TChar > ConsumeToken(TChar separator=',', lang::Inclusion includeSeparator=lang::Inclusion::Include)
TSubstring & TrimEnd(const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces())
void Read(NAString &target)
void SetStream(::std::istream *is)
static bool IsAbsolute(const PathString &path)
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
strings::compatibility::std::IStreamReader IStreamReader
containers::List< T, MonoAllocator, TRecycling > ListMA
LocalString< 4096 > String4K
strings::TString< character > String
strings::TSubstring< character > Substring
strings::TString< PathCharType > PathString
exceptions::Exception Exception
constexpr PathCharType DIRECTORY_SEPARATOR
LocalString< 512 > String512
@ CantOpenDoxyfile
Doxygen INI-file (usually Doxyfile) not found.
@ NoTagfileGeneratedByDoxyfile
alib::PathString TagFilePath
Path to the tag-file.
alib::String HtmlFileExtension
alib::String FilePatterns
alib::ListMA< TagFileInfo > TagFiles
alib::PathString HTMLFilePath
unsigned HtmlSubfolderDepth
alib::ListMA< alib::String > ExcludePatterns
alib::ListMA< alib::PathString > InputPaths
void Load(const alib::system::Path &filePath)
void Dump() const
Writes the contents of this file to the console.
alib::ListMA< alib::PathString > ExcludePaths