Skip to content

Commit a93ec72

Browse files
author
Dimitri van Heesch
committed
Changed configuration mechanism to directly access options in order to improve performance
1 parent 4dfc588 commit a93ec72

File tree

119 files changed

+2894
-2648
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+2894
-2648
lines changed

src/CMakeLists.txt

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,21 @@ file(GENERATE OUTPUT ${GENERATED_SRC}/version.cpp
3636
)
3737
set_source_files_properties(${GENERATED_SRC}/version.cpp PROPERTIES GENERATED 1)
3838

39+
# configvalues.h
40+
add_custom_command(
41+
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maph ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.h
42+
DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
43+
OUTPUT ${GENERATED_SRC}/configvalues.h
44+
)
45+
set_source_files_properties(${GENERATED_SRC}/configvalues.h PROPERTIES GENERATED 1)
46+
47+
# configvalues.cpp
48+
add_custom_command(
49+
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/configgen.py -maps ${CMAKE_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC}/configvalues.cpp
50+
DEPENDS ${CMAKE_SOURCE_DIR}/src/config.xml ${CMAKE_SOURCE_DIR}/src/configgen.py
51+
OUTPUT ${GENERATED_SRC}/configvalues.cpp
52+
)
53+
set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERATED 1)
3954

4055
# configoptions.cpp
4156
add_custom_command(
@@ -85,31 +100,32 @@ add_custom_command(
85100
set_source_files_properties(${GENERATED_SRC}/layout_default.xml.h PROPERTIES GENERATED 1)
86101

87102
# Targets for flex/bison generated files
88-
FLEX_TARGET(scanner scanner.l ${GENERATED_SRC}/scanner.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PscannerYY")
89-
FLEX_TARGET(code code.l ${GENERATED_SRC}/code.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PcodeYY")
90-
FLEX_TARGET(pyscanner pyscanner.l ${GENERATED_SRC}/pyscanner.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PpyscannerYY")
91-
FLEX_TARGET(pycode pycode.l ${GENERATED_SRC}/pycode.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PpycodeYY")
92-
FLEX_TARGET(fortranscanner fortranscanner.l ${GENERATED_SRC}/fortranscanner.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PfortranscannerYY -i")
93-
FLEX_TARGET(fortrancode fortrancode.l ${GENERATED_SRC}/fortrancode.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PfortrancodeYY -i")
94-
FLEX_TARGET(vhdlcode vhdlcode.l ${GENERATED_SRC}/vhdlcode.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PvhdlcodeYY -i")
95-
FLEX_TARGET(tclscanner tclscanner.l ${GENERATED_SRC}/tclscanner.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PtclscannerYY -i")
96-
FLEX_TARGET(pre pre.l ${GENERATED_SRC}/pre.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PpreYY")
97-
FLEX_TARGET(declinfo declinfo.l ${GENERATED_SRC}/declinfo.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PdeclinfoYY")
98-
FLEX_TARGET(defargs defargs.l ${GENERATED_SRC}/defargs.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PdefargsYY")
99-
FLEX_TARGET(doctokenizer doctokenizer.l ${GENERATED_SRC}/doctokenizer.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PdoctokenizerYY")
100-
FLEX_TARGET(commentcnv commentcnv.l ${GENERATED_SRC}/commentcnv.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PcommentcnvYY")
101-
FLEX_TARGET(commentscan commentscan.l ${GENERATED_SRC}/commentscan.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PcommentscanYY")
102-
FLEX_TARGET(constexp constexp.l ${GENERATED_SRC}/constexp.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PconstexpYY")
103-
FLEX_TARGET(xmlcode xmlcode.l ${GENERATED_SRC}/xmlcode.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PxmlcodeYY")
104-
FLEX_TARGET(config config.l ${GENERATED_SRC}/config.cpp COMPILE_FLAGS "$(LEX_FLAGS) -PconfigYY")
105-
106-
BISON_TARGET(vhdlparser vhdlparser.y ${GENERATED_SRC}/vhdlparser.cpp COMPILE_FLAGS "$(YACC_FLAGS) -l -p vhdlscannerYY")
107-
BISON_TARGET(constexp constexp.y ${GENERATED_SRC}/ce_parse.cpp COMPILE_FLAGS "$(YACC_FLAGS) -l -p constexpYY")
103+
FLEX_TARGET(scanner scanner.l ${GENERATED_SRC}/scanner.cpp COMPILE_FLAGS "${LEX_FLAGS} -PscannerYY")
104+
FLEX_TARGET(code code.l ${GENERATED_SRC}/code.cpp COMPILE_FLAGS "${LEX_FLAGS} -PcodeYY")
105+
FLEX_TARGET(pyscanner pyscanner.l ${GENERATED_SRC}/pyscanner.cpp COMPILE_FLAGS "${LEX_FLAGS} -PpyscannerYY")
106+
FLEX_TARGET(pycode pycode.l ${GENERATED_SRC}/pycode.cpp COMPILE_FLAGS "${LEX_FLAGS} -PpycodeYY")
107+
FLEX_TARGET(fortranscanner fortranscanner.l ${GENERATED_SRC}/fortranscanner.cpp COMPILE_FLAGS "${LEX_FLAGS} -PfortranscannerYY -i")
108+
FLEX_TARGET(fortrancode fortrancode.l ${GENERATED_SRC}/fortrancode.cpp COMPILE_FLAGS "${LEX_FLAGS} -PfortrancodeYY -i")
109+
FLEX_TARGET(vhdlcode vhdlcode.l ${GENERATED_SRC}/vhdlcode.cpp COMPILE_FLAGS "${LEX_FLAGS} -PvhdlcodeYY -i")
110+
FLEX_TARGET(tclscanner tclscanner.l ${GENERATED_SRC}/tclscanner.cpp COMPILE_FLAGS "${LEX_FLAGS} -PtclscannerYY -i")
111+
FLEX_TARGET(pre pre.l ${GENERATED_SRC}/pre.cpp COMPILE_FLAGS "${LEX_FLAGS} -PpreYY")
112+
FLEX_TARGET(declinfo declinfo.l ${GENERATED_SRC}/declinfo.cpp COMPILE_FLAGS "${LEX_FLAGS} -PdeclinfoYY")
113+
FLEX_TARGET(defargs defargs.l ${GENERATED_SRC}/defargs.cpp COMPILE_FLAGS "${LEX_FLAGS} -PdefargsYY")
114+
FLEX_TARGET(doctokenizer doctokenizer.l ${GENERATED_SRC}/doctokenizer.cpp COMPILE_FLAGS "${LEX_FLAGS} -PdoctokenizerYY")
115+
FLEX_TARGET(commentcnv commentcnv.l ${GENERATED_SRC}/commentcnv.cpp COMPILE_FLAGS "${LEX_FLAGS} -PcommentcnvYY")
116+
FLEX_TARGET(commentscan commentscan.l ${GENERATED_SRC}/commentscan.cpp COMPILE_FLAGS "${LEX_FLAGS} -PcommentscanYY")
117+
FLEX_TARGET(constexp constexp.l ${GENERATED_SRC}/constexp.cpp COMPILE_FLAGS "${LEX_FLAGS} -PconstexpYY")
118+
FLEX_TARGET(xmlcode xmlcode.l ${GENERATED_SRC}/xmlcode.cpp COMPILE_FLAGS "${LEX_FLAGS} -PxmlcodeYY")
119+
FLEX_TARGET(configimpl configimpl.l ${GENERATED_SRC}/configimpl.cpp COMPILE_FLAGS "${LEX_FLAGS} -PconfigimplYY")
120+
121+
BISON_TARGET(vhdlparser vhdlparser.y ${GENERATED_SRC}/vhdlparser.cpp COMPILE_FLAGS "${YACC_FLAGS} -l -p vhdlscannerYY")
122+
BISON_TARGET(constexp constexp.y ${GENERATED_SRC}/ce_parse.cpp COMPILE_FLAGS "${YACC_FLAGS} -l -p constexpYY")
108123

109124
add_library(doxycfg STATIC
110125
${GENERATED_SRC}/lang_cfg.h
111-
${GENERATED_SRC}/config.cpp
126+
${GENERATED_SRC}/configimpl.cpp
112127
${GENERATED_SRC}/configoptions.cpp
128+
${GENERATED_SRC}/configvalues.cpp
113129
portable.cpp
114130
portable_c.c
115131
)
@@ -121,6 +137,7 @@ add_library(_doxygen STATIC
121137
${GENERATED_SRC}/layout_default.xml.h
122138
${GENERATED_SRC}/version.cpp
123139
${GENERATED_SRC}/ce_parse.h
140+
${GENERATED_SRC}/configvalues.h
124141
${GENERATED_SRC}/resources.cpp
125142
# generated by flex/bison
126143
${GENERATED_SRC}/scanner.cpp

src/cite.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,26 @@ void CiteDict::writeLatexBibliography(FTextStream &t)
4343
if (m_entries.isEmpty())
4444
return;
4545

46-
QCString style = Config_getString("LATEX_BIB_STYLE");
46+
QCString style = Config_getString(LATEX_BIB_STYLE);
4747
if (style.isEmpty())
4848
style="plain";
4949
QCString unit;
50-
if (Config_getBool("COMPACT_LATEX"))
50+
if (Config_getBool(COMPACT_LATEX))
5151
unit = "section";
5252
else
5353
unit = "chapter";
5454
t << "% Bibliography\n"
5555
"\\newpage\n"
5656
"\\phantomsection\n";
57-
bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS");
57+
bool pdfHyperlinks = Config_getBool(PDF_HYPERLINKS);
5858
if (!pdfHyperlinks)
5959
{
6060
t << "\\clearemptydoublepage\n";
6161
t << "\\addcontentsline{toc}{" << unit << "}{" << theTranslator->trCiteReferences() << "}\n";
6262
}
6363
t << "\\bibliographystyle{" << style << "}\n"
6464
"\\bibliography{";
65-
QStrList &citeDataList = Config_getList("CITE_BIB_FILES");
65+
QStrList &citeDataList = Config_getList(CITE_BIB_FILES);
6666
int i = 0;
6767
const char *bibdata = citeDataList.first();
6868
while (bibdata)
@@ -107,7 +107,7 @@ void CiteDict::clear()
107107

108108
bool CiteDict::isEmpty() const
109109
{
110-
QStrList &citeBibFiles = Config_getList("CITE_BIB_FILES");
110+
QStrList &citeBibFiles = Config_getList(CITE_BIB_FILES);
111111
return (citeBibFiles.count()==0 || m_entries.isEmpty());
112112
}
113113

@@ -120,7 +120,7 @@ void CiteDict::generatePage() const
120120

121121
// 1. generate file with markers and citations to OUTPUT_DIRECTORY
122122
QFile f;
123-
QCString outputDir = Config_getString("OUTPUT_DIRECTORY");
123+
QCString outputDir = Config_getString(OUTPUT_DIRECTORY);
124124
QCString citeListFile = outputDir+"/citelist.doc";
125125
f.setName(citeListFile);
126126
if (!f.open(IO_WriteOnly))
@@ -154,7 +154,7 @@ void CiteDict::generatePage() const
154154
// so bibtex can find them without path (bibtex doesn't support paths or
155155
// filenames with spaces!)
156156
// Strictly not required when only latex is generated
157-
QStrList &citeDataList = Config_getList("CITE_BIB_FILES");
157+
QStrList &citeDataList = Config_getList(CITE_BIB_FILES);
158158
QCString bibOutputDir = outputDir+"/"+bibTmpDir;
159159
QCString bibOutputFiles = "";
160160
QDir thisDir;
@@ -251,11 +251,11 @@ void CiteDict::generatePage() const
251251

252252
// 8. for latex we just copy the bib files to the output and let
253253
// latex do this work.
254-
if (Config_getBool("GENERATE_LATEX"))
254+
if (Config_getBool(GENERATE_LATEX))
255255
{
256256
// copy bib files to the latex output dir
257-
QStrList &citeDataList = Config_getList("CITE_BIB_FILES");
258-
QCString latexOutputDir = Config_getString("LATEX_OUTPUT")+"/";
257+
QStrList &citeDataList = Config_getList(CITE_BIB_FILES);
258+
QCString latexOutputDir = Config_getString(LATEX_OUTPUT)+"/";
259259
int i = 0;
260260
const char *bibdata = citeDataList.first();
261261
while (bibdata)

src/clangparser.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class ClangParser::Private
6464

6565
static QCString detab(const QCString &s)
6666
{
67-
static int tabSize = Config_getInt("TAB_SIZE");
67+
static int tabSize = Config_getInt(TAB_SIZE);
6868
GrowBuf out;
6969
int size = s.length();
7070
const char *data = s.data();
@@ -157,9 +157,9 @@ void ClangParser::determineInputFilesInSameTu(QStrList &files)
157157

158158
void ClangParser::start(const char *fileName,QStrList &filesInTranslationUnit)
159159
{
160-
static bool clangAssistedParsing = Config_getBool("CLANG_ASSISTED_PARSING");
161-
static QStrList &includePath = Config_getList("INCLUDE_PATH");
162-
static QStrList clangOptions = Config_getList("CLANG_OPTIONS");
160+
static bool clangAssistedParsing = Config_getBool(CLANG_ASSISTED_PARSING);
161+
static QStrList &includePath = Config_getList(INCLUDE_PATH);
162+
static QStrList clangOptions = Config_getList(CLANG_OPTIONS);
163163
if (!clangAssistedParsing) return;
164164
//printf("ClangParser::start(%s)\n",fileName);
165165
p->fileName = fileName;
@@ -230,7 +230,7 @@ void ClangParser::start(const char *fileName,QStrList &filesInTranslationUnit)
230230
// provide the input and and its dependencies as unsaved files so we can
231231
// pass the filtered versions
232232
argv[argc++]=strdup(fileName);
233-
static bool filterSourceFiles = Config_getBool("FILTER_SOURCE_FILES");
233+
static bool filterSourceFiles = Config_getBool(FILTER_SOURCE_FILES);
234234
//printf("source %s ----------\n%s\n-------------\n\n",
235235
// fileName,p->source.data());
236236
uint numUnsavedFiles = filesInTranslationUnit.count()+1;
@@ -339,7 +339,7 @@ void ClangParser::switchToFile(const char *fileName)
339339

340340
void ClangParser::finish()
341341
{
342-
static bool clangAssistedParsing = Config_getBool("CLANG_ASSISTED_PARSING");
342+
static bool clangAssistedParsing = Config_getBool(CLANG_ASSISTED_PARSING);
343343
if (!clangAssistedParsing) return;
344344
if (p->tu)
345345
{
@@ -381,7 +381,7 @@ QCString ClangParser::lookup(uint line,const char *symbol)
381381
//printf("ClangParser::lookup(%d,%s)\n",line,symbol);
382382
QCString result;
383383
if (symbol==0) return result;
384-
static bool clangAssistedParsing = Config_getBool("CLANG_ASSISTED_PARSING");
384+
static bool clangAssistedParsing = Config_getBool(CLANG_ASSISTED_PARSING);
385385
if (!clangAssistedParsing) return result;
386386

387387
int sl = strlen(symbol);
@@ -615,7 +615,7 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol,
615615
Definition *d,
616616
const char *text)
617617
{
618-
static bool sourceTooltips = Config_getBool("SOURCE_TOOLTIPS");
618+
static bool sourceTooltips = Config_getBool(SOURCE_TOOLTIPS);
619619
TooltipManager::instance()->addTooltip(d);
620620
QCString ref = d->getReference();
621621
QCString file = d->getOutputFileBase();

0 commit comments

Comments
 (0)